---
title: List batch recovery requests
description: List batch recovery requests for your organization.
breadcrumbs: Docs > API > List batch recovery requests
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# List batch recovery requests

## v2 (latest)

| Datadog site      | API endpoint                                                  |
| ----------------- | ------------------------------------------------------------- |
| app.datadoghq.com | GET https://api.datadoghq.com/api/v2/rum/recover/requests     |
| us3.datadoghq.com | GET https://api.us3.datadoghq.com/api/v2/rum/recover/requests |
| us5.datadoghq.com | GET https://api.us5.datadoghq.com/api/v2/rum/recover/requests |
| app.datadoghq.eu  | GET https://api.datadoghq.eu/api/v2/rum/recover/requests      |
| ap1.datadoghq.com | GET https://api.ap1.datadoghq.com/api/v2/rum/recover/requests |
| ap2.datadoghq.com | GET https://api.ap2.datadoghq.com/api/v2/rum/recover/requests |
| uk1.datadoghq.com | GET https://api.uk1.datadoghq.com/api/v2/rum/recover/requests |
| app.ddog-gov.com  | GET https://api.ddog-gov.com/api/v2/rum/recover/requests      |
| us2.ddog-gov.com  | GET https://api.us2.ddog-gov.com/api/v2/rum/recover/requests  |

### Overview

List batch recovery requests for your organization. Set `type=batch`. Optional `from` and `to` bounds filter request creation time; `query` filters the queries stored on recovery requests.
A filtered page can be empty or contain fewer than `limit` results and still include `meta.next_cursor`. Continue until the cursor is absent, keeping the filters unchanged between pages.

This endpoint requires the `rum_rehydration_index` permission.

### Arguments

#### Query Strings

| Field             | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type [*required*] | enum    | Must equal batch. Allowed enum values: `batch`.                                                                                                                                                                                                                                                                                                                                                                                             |
| limit             | integer | Number of results returned per page, at most 100 (default 50). Omitted, zero, or negative values use 50. Invalid integers return 400. Default: `50`.                                                                                                                                                                                                                                                                                        |
| cursor            | string  | Opaque next-page cursor. Keep type, from, to, and query unchanged between pages.                                                                                                                                                                                                                                                                                                                                                            |
| from              | integer | Start of the request creation-time range in Unix milliseconds, inclusive. This filters created_at, not the time range of the sessions being recovered. Must be earlier than to when both are provided.                                                                                                                                                                                                                                      |
| to                | integer | End of the request creation-time range in Unix milliseconds, exclusive. This filters created_at, not the time range of the sessions being recovered. Must be later than from when both are provided.                                                                                                                                                                                                                                        |
| query             | string  | Filter recovery requests whose stored query selects matching facet values. Supports facet:value and facet:(A OR B) terms combined with AND, including * and ? wildcards in filter values. Attribute facets keep their leading @. At most 4096 bytes. Exclusions, repeated facets, free text, ranges, and OR between terms return 400. Stored queries that cannot be matched unambiguously are excluded. Blank values apply no query filter. |

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
JSON:API document.

| Parent field | Field                            | Type      | Description                                                                                                                                                                                                       |
| ------------ | -------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]                | [object]  | Batch requests ordered newest first. A filtered page can be empty while meta.next_cursor is present.                                                                                                              |
| data         | attributes [*required*]          | object    | Batch recovery progress. Status updates can appear here before they appear in request details.                                                                                                                    |
| attributes   | created_at [*required*]          | date-time | Creation time.                                                                                                                                                                                                    |
| attributes   | discovery_status [*required*]    | enum      | Batch discovery state. QUEUED indicates that the request is waiting for processing capacity. Allowed enum values: `QUEUED`, `PENDING`, `SLICING`, `DISCOVERED`, `PROCESSING`, `COMPLETED`, `FAILED`, `CANCELLED`. |
| attributes   | estimated_count                  | int64     | Batch estimate stored at creation, when present. New batches use a fresh server estimate; older batches may contain a client-supplied estimate.                                                                   |
| attributes   | from [*required*]                | int64     | Start of the range in Unix milliseconds. Must be positive and earlier than to.                                                                                                                                    |
| attributes   | query [*required*]               | string    | RUM search query. Not blank, at most 4096 bytes for batch creation and count.                                                                                                                                     |
| attributes   | sessions_discovered [*required*] | int64     | Discovered sessions.                                                                                                                                                                                              |
| attributes   | sessions_failed [*required*]     | int64     | Failed sessions.                                                                                                                                                                                                  |
| attributes   | sessions_processed [*required*]  | int64     | Processed sessions.                                                                                                                                                                                               |
| attributes   | slices_completed [*required*]    | int64     | Completed slices.                                                                                                                                                                                                 |
| attributes   | slices_failed [*required*]       | int64     | Failed slices.                                                                                                                                                                                                    |
| attributes   | status [*required*]              | enum      | Recovery request state. Allowed enum values: `PENDING`, `PROCESSING`, `COMPLETED`, `FAILED`, `CANCELLED`, `EXPIRED`.                                                                                              |
| attributes   | to [*required*]                  | int64     | End of the range in Unix milliseconds.                                                                                                                                                                            |
| attributes   | total_slices [*required*]        | int64     | Total discovery slices.                                                                                                                                                                                           |
| attributes   | updated_at [*required*]          | date-time | Last update time.                                                                                                                                                                                                 |
| data         | id [*required*]                  | string    | Resource identifier.                                                                                                                                                                                              |
| data         | type [*required*]                | enum      | JSON:API resource type. Allowed enum values: `rum_batch_recovery_request`.                                                                                                                                        |
|              | meta [*required*]                | object    | Batch-list pagination metadata.                                                                                                                                                                                   |
| meta         | next_cursor                      | string    | Opaque next-page cursor. Omitted on the final page.                                                                                                                                                               |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": [
    {
      "attributes": {
        "created_at": "2026-09-21T12:00:00Z",
        "discovery_status": "QUEUED",
        "estimated_count": 0,
        "from": 1789905600000,
        "query": "service:web",
        "sessions_discovered": 0,
        "sessions_failed": 0,
        "sessions_processed": 0,
        "slices_completed": 0,
        "slices_failed": 0,
        "status": "PENDING",
        "to": 1789992000000,
        "total_slices": 0,
        "updated_at": "2026-09-21T12:00:00Z"
      },
      "id": "11111111-1111-4111-8111-111111111111",
      "type": "rum_batch_recovery_request"
    }
  ],
  "meta": {
    "next_cursor": "example"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="401" %}
Unauthorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type  | Description                                                                                   |
| ------------------- | ----- | --------------------------------------------------------------------------------------------- |
| errors [*required*] | [any] | Errors as plain-text messages or JSON:API error objects containing status, title, and detail. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Forbidden"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type  | Description                                                                                   |
| ------------------- | ----- | --------------------------------------------------------------------------------------------- |
| errors [*required*] | [any] | Errors as plain-text messages or JSON:API error objects containing status, title, and detail. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Forbidden"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="404" %}
Not Found

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too Many Requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type  | Description                                                                                   |
| ------------------- | ----- | --------------------------------------------------------------------------------------------- |
| errors [*required*] | [any] | Errors as plain-text messages or JSON:API error objects containing status, title, and detail. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Forbidden"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Required query arguments
export type="batch"

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
export DD_API_KEY="<DD_API_KEY>"
export DD_APP_KEY="<DD_APP_KEY>"

curl -X GET "https://api.${DD_SITE}/api/v2/rum/recover/requests?type=${type}" \
-H "Accept: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
```
{% /tab %}
{% /tabs %}
