---
title: "Add request"
method: POST
path: "/v2/request-queues/{queueId}/requests"
tags: ["Storage/Request queues/Requests"]
---

# Add request

`POST /v2/request-queues/{queueId}/requests`

Adds request to the queue. Response contains ID of the request and info if
request was already present in the queue or handled.

If request with same `uniqueKey` was already present in the queue then
returns an ID of existing request.

## Path parameters

- `queueId` string, required

## Query parameters

- `clientKey` string
- `forefront` string

## Request body

- RequestBase
  - `uniqueKey` string — A unique key used for request de-duplication. Requests with the same unique key are considered identical.
  - `url` string — The URL of the request.
  - `method` 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'
  - `retryCount` integer — The number of times this request has been retried.
  - `loadedUrl` string, nullable — The final URL that was loaded, after redirects (if any).
  - `payload` union — The request payload, typically used with POST or PUT requests.
    - string
    - object
  - `headers` object, nullable — HTTP headers sent with the request.
  - `userData` RequestUserData — Custom user data attached to the request. Can contain arbitrary fields.
  - `noRetry` boolean, nullable — Indicates whether the request should not be retried if processing fails.
  - `errorMessages` string[], nullable — Error messages recorded from failed processing attempts.
  - `handledAt` string, date-time, nullable — The timestamp when the request was marked as handled, if applicable.

## Response `201`

- AddRequestResponse — Response containing the result of adding a request to the request queue.
  - `data` RequestRegistration, required — Result of registering a request in the request queue, either by adding a new request or updating an existing one.
    - `requestId` string, required — A unique identifier assigned to the request.
    - `wasAlreadyPresent` boolean, required — Indicates whether a request with the same unique key already existed in the request queue. If true, no new request was created.
    - `wasAlreadyHandled` boolean, required — Indicates whether a request with the same unique key has already been processed by the request queue.

## Other responses

- `400` — Bad request - invalid input parameters or request body.
- `401` — Unauthorized - authentication required or invalid token.
- `403` — Forbidden - insufficient permissions to perform this action.
- `404` — Not found - the requested resource does not exist.
- `405` — Method not allowed.
- `413` — Payload too large - the request body exceeds the size limit.
- `415` — Unsupported media type - the Content-Encoding of the request is not supported.
- `429` — Too many requests - rate limit exceeded.

---

[API](https://skmtc.net/apify/apis/apify-api.md) · [All operations](https://skmtc.net/apify/apis/apify-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apify/apify-api/versions/01a71794279b/schema)
