openapi: 3.0.3 info: title: QStash Dead Letter Queue URL Groups API description: QStash is a serverless message queue and task scheduling REST API from Upstash that delivers HTTP messages to endpoints reliably without requiring any long-lived connections or infrastructure management. Built entirely on stateless HTTP requests, it is designed for serverless and edge runtimes where traditional message brokers are impractical. QStash supports automatic retries, CRON-based scheduling up to one year in advance, URL group broadcasting for fan-out delivery, FIFO queuing, dead-letter queues, and message deduplication. version: '2.0' contact: name: Upstash Support url: https://upstash.com/docs/qstash/overall/getstarted license: name: Upstash Terms of Service url: https://upstash.com/trust/terms.pdf servers: - url: https://qstash.upstash.io/v2 description: QStash production API security: - BearerAuth: [] tags: - name: URL Groups description: Manage URL groups for fan-out delivery paths: /topics/{urlGroupName}/endpoints: post: operationId: upsertUrlGroupEndpoints summary: Create or update URL group endpoints description: Create a URL Group or add/update its endpoints. URL groups allow fan-out message delivery to multiple destinations simultaneously. tags: - URL Groups parameters: - name: urlGroupName in: path required: true description: Name of the URL Group (alphanumeric, underscore, hyphen, and dot characters only) schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UrlGroupUpsert' example: endpoints: - name: endpoint-one url: https://example.com/handler1 - name: endpoint-two url: https://example.com/handler2 responses: '200': description: URL Group endpoints created or updated '401': $ref: '#/components/responses/Unauthorized' /topics/{urlGroupName}: get: operationId: getUrlGroup summary: Get a URL group description: Retrieve configuration and endpoints of a URL Group. tags: - URL Groups parameters: - name: urlGroupName in: path required: true schema: type: string responses: '200': description: URL Group details content: application/json: schema: $ref: '#/components/schemas/UrlGroup' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteUrlGroup summary: Delete a URL group description: Delete a URL Group and all its endpoint configurations. tags: - URL Groups parameters: - name: urlGroupName in: path required: true schema: type: string responses: '200': description: URL Group deleted '404': $ref: '#/components/responses/NotFound' /topics/{urlGroupName}/endpoints/{endpointName}: delete: operationId: deleteUrlGroupEndpoint summary: Remove an endpoint from a URL group description: Remove a specific endpoint from a URL Group. tags: - URL Groups parameters: - name: urlGroupName in: path required: true schema: type: string - name: endpointName in: path required: true schema: type: string responses: '200': description: Endpoint removed '404': $ref: '#/components/responses/NotFound' components: responses: Unauthorized: description: Missing or invalid authentication token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: UrlGroupEndpoint: type: object required: - url properties: name: type: string description: Identifier for this endpoint within the URL Group url: type: string format: uri description: Target URL for this endpoint UrlGroup: type: object properties: name: type: string description: URL Group name endpoints: type: array items: $ref: '#/components/schemas/UrlGroupEndpoint' ErrorResponse: type: object properties: error: type: string description: Human-readable error message UrlGroupUpsert: type: object required: - endpoints properties: endpoints: type: array items: $ref: '#/components/schemas/UrlGroupEndpoint' securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer token obtained from the Upstash console at https://console.upstash.com/qstash. Alternatively, pass as query parameter `qstash_token`. externalDocs: description: QStash Documentation url: https://upstash.com/docs/qstash/overall/getstarted