> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quedup.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

# API Overview

The QuedUp API is a RESTful API that allows you to create, manage, and monitor scheduled jobs programmatically. All API requests use HTTPS and require authentication via API keys.

## Base URL

All API requests should be made to:

```
https://api.quedup.dev
```

## Authentication

QuedUp uses API key authentication for all API requests. API keys provide full access to your organization's jobs and should be kept secure.

### Getting Your API Key

1. Sign in to the [QuedUp Dashboard](https://app.quedup.dev)
2. Navigate to **API Keys** in the sidebar
3. Click **Create New Key** to generate a new API key
4. Copy the key immediately—it won't be shown again

### Using Your API Key

Include your API key in the `Authorization` header of every request using the Bearer token format:

```bash theme={null}
Authorization: Bearer qup_your_api_key_here
```

### Example Request

```bash theme={null}
curl -X GET https://api.quedup.dev/jobs \
  -H "Authorization: Bearer qup_your_api_key_here"
```

### Security Best Practices

* **Never commit API keys** to version control
* **Rotate keys regularly** by creating new keys and deleting old ones
* **Use environment variables** to store API keys in your applications
* **Restrict key access** to only the services that need it
* **Delete unused keys** to minimize attack surface

## Request Format

### Headers

All requests must include:

* `Authorization: Bearer <your_api_key>` - Required for authentication
* `Content-Type: application/json` - Required for POST/PUT/PATCH requests

### Example Request

```bash theme={null}
curl -X POST https://api.quedup.dev/jobs \
  -H "Authorization: Bearer qup_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Scheduled Job",
    "url": "https://api.yourapp.com/webhook",
    "method": "POST",
    "schedule": "0 2 * * *"
  }'
```

## Response Format

### Success Responses

Successful requests return HTTP status codes in the `2xx` range:

* `200 OK` - Request succeeded
* `201 Created` - Resource created successfully

Response bodies are JSON objects containing the requested data.

### Error Responses

Error responses include:

* HTTP status code indicating the error type
* JSON body with error details:

```json theme={null}
{
  "message": "Error description",
  "code": "error_code"
}
```

### Common HTTP Status Codes

| Status Code | Description                               |
| :---------- | :---------------------------------------- |
| `200`       | Success                                   |
| `201`       | Created                                   |
| `400`       | Bad Request - Invalid request parameters  |
| `401`       | Unauthorized - Invalid or missing API key |
| `404`       | Not Found - Resource doesn't exist        |
| `429`       | Too Many Requests - Rate limit exceeded   |
| `500`       | Internal Server Error - Server error      |

## Rate Limits

API requests are subject to rate limits to ensure fair usage. Rate limit information is included in response headers:

* `X-RateLimit-Limit` - Maximum requests allowed
* `X-RateLimit-Remaining` - Requests remaining in current window
* `X-RateLimit-Reset` - Time when the rate limit resets

If you exceed the rate limit, you'll receive a `429 Too Many Requests` response.

## Next Steps

* **[Explore the API Endpoints](/api-reference)** - Browse all available endpoints
* **[Getting Started Guide](/getting-started)** - Create your first job
* **[Integration Guide](/integration-guide)** - Code examples for popular languages
