# Queues API

Source: https://frameleaf.app/docs/api/reference/queues/

Use your own server and its scoped API keys.

## List all queues

GET /api/queues

Retrieves a list of queues.

```json
{
  "description": "Retrieves a list of queues.",
  "operationId": "getQueues",
  "parameters": [],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/QueueResponseDto"
            },
            "type": "array"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "List all queues",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queue.read"
}
```

## Retrieve a queue

GET /api/queues/{name}

Retrieves a specific queue by its name.

```json
{
  "description": "Retrieves a specific queue by its name.",
  "operationId": "getQueue",
  "parameters": [
    {
      "name": "name",
      "required": true,
      "in": "path",
      "schema": {
        "$ref": "#/components/schemas/QueueName"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueueResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve a queue",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queue.read"
}
```

## Update a queue

PUT /api/queues/{name}

Change the paused status of a specific queue.

```json
{
  "description": "Change the paused status of a specific queue.",
  "operationId": "updateQueue",
  "parameters": [
    {
      "name": "name",
      "required": true,
      "in": "path",
      "schema": {
        "$ref": "#/components/schemas/QueueName"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/QueueUpdateDto"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueueResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Update a queue",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queue.update"
}
```

## Empty a queue

DELETE /api/queues/{name}/jobs

Removes all jobs from the specified queue.

```json
{
  "description": "Removes all jobs from the specified queue.",
  "operationId": "emptyQueue",
  "parameters": [
    {
      "name": "name",
      "required": true,
      "in": "path",
      "schema": {
        "$ref": "#/components/schemas/QueueName"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/QueueDeleteDto"
        }
      }
    },
    "required": true
  },
  "responses": {
    "204": {
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Empty a queue",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queueJob.delete"
}
```

## Retry failed queue jobs

POST /api/queues/{name}/jobs/retry-failed

Puts every failed job of the specified queue back in the queue with its saved data.

```json
{
  "description": "Puts every failed job of the specified queue back in the queue with its saved data.",
  "operationId": "retryFailedQueueJobs",
  "parameters": [
    {
      "name": "name",
      "required": true,
      "in": "path",
      "schema": {
        "$ref": "#/components/schemas/QueueName"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueueRetryFailedResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retry failed queue jobs",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queueJob.create"
}
```

## Retrieve queue statistics for an account

GET /api/queues/{name}/statistics

Counts, per state, the jobs of the specified queue that work on one account's items. At most 1,000 jobs of each state are read; `truncated` marks lower bounds.

```json
{
  "description": "Counts, per state, the jobs of the specified queue that work on one account's items. At most 1,000 jobs of each state are read; `truncated` marks lower bounds.",
  "operationId": "getQueueOwnerStatistics",
  "parameters": [
    {
      "name": "name",
      "required": true,
      "in": "path",
      "schema": {
        "$ref": "#/components/schemas/QueueName"
      }
    },
    {
      "name": "ownerId",
      "required": true,
      "in": "query",
      "description": "The account whose jobs are counted",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueueOwnerStatisticsResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve queue statistics for an account",
  "tags": [
    "Queues"
  ],
  "x-frameleaf-admin-only": true,
  "x-frameleaf-permission": "queueJob.read"
}
```
