# Add requests


```
POST 
https://api.apify.com/v2/request-queues/:queueId/requests/batch
```


Adds requests to the queue in batch. The maximum requests in batch is limit to 25. The response contains an array of unprocessed and processed requests. If any add operation fails because the request queue rate limit is exceeded or an internal failure occurs, the failed request is returned in the unprocessedRequests response parameter. You can resend these requests to add. It is recommended to use exponential backoff algorithm for these retries. If a request with the same `uniqueKey` was already present in the queue, then it returns an ID of the existing request.

## Request

### Path Parameters

* **queueId** string required

  Queue ID or `username~queue-name`.

  **Example:** `WkzbQMuFYuamGv3YF`

### Query Parameters

* **clientKey** string

  A unique identifier of the client accessing the request queue. It must be a string between 1 and 32 characters long

  **Example:** `client-abc`

  **forefront** string

  Determines if request should be added to the head of the queue or to the end. Default value is `false` (end of queue).

  **Example:** `false`

### Body array**required**

* **id** string

  A unique identifier assigned to the request.

  **Example:** `sbJ7klsdf7ujN9l`

* **uniqueKey** string required

  A unique key used for request de-duplication. Requests with the same unique key are considered identical.

  **Example:** `GET|60d83e70|e3b0c442|https://apify.com`

* **url** string\<uri> required

  The URL of the request.

  **Example:** `https://apify.com`

* **method** string required

  The HTTP method of the request.

  **Example:** `GET`

### Status 201

**Response Headers**




```
{
  "data": {
    "processedRequests": [
      {
        "requestId": "YiKoxjkaS9gjGTqhF",
        "uniqueKey": "http://example.com",
        "wasAlreadyPresent": true,
        "wasAlreadyHandled": false
      }
    ],
    "unprocessedRequests": [
      {
        "uniqueKey": "http://example.com/2",
        "url": "http://example.com/2",
        "method": "GET"
      }
    ]
  }
}
```


**Schema**

* **data** object required

  Result of a batch add operation containing successfully processed and failed requests.

  * **processedRequests** object\[] required

    Requests that were successfully added to the request queue.

    * **requestId** string required

      A unique identifier assigned to the request.

      **Example:** `sbJ7klsdf7ujN9l`

    * **uniqueKey** string required

      A unique key used for request de-duplication. Requests with the same unique key are considered identical.

      **Example:** `GET|60d83e70|e3b0c442|https://apify.com`

    * **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.

      **Example:** `false`

    * **wasAlreadyHandled** boolean required

      Indicates whether a request with the same unique key has already been processed by the request queue.

      **Example:** `false`

  * **unprocessedRequests** object\[] required

    Requests that failed to be added and can be retried.

    * **id** string

      A unique identifier assigned to the request.

      **Example:** `sbJ7klsdf7ujN9l`

    * **uniqueKey** string required

      A unique key used for request de-duplication. Requests with the same unique key are considered identical.

      **Example:** `GET|60d83e70|e3b0c442|https://apify.com`

    * **url** string\<uri> required

      The URL of the request.

      **Example:** `https://apify.com`

    * **method** string required

      The HTTP method of the request.

      **Example:** `GET`

### Status 400

Bad request - invalid input parameters or request body.


```
{
  "error": {
    "type": "invalid-input",
    "message": "Invalid input: The request body contains invalid data."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`
