---
title: Get recovery request progress
description: Get progress for a targeted or batch recovery request.
breadcrumbs: Docs > API > Get recovery request progress
---

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

# Get recovery request progress

## v2 (latest)

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

### Overview

Get progress for a targeted or batch recovery request. A `COMPLETED` request can include failed sessions; check individual session statuses for targeted recovery.

This endpoint requires the `rum_rehydration_filter_read` permission.

### Arguments

#### Path Parameters

| Field                   | Type   | Description            |
| ----------------------- | ------ | ---------------------- |
| request_id [*required*] | string | Recovery request UUID. |

### Response

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

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

| Parent field | Field                           | Type      | Description                                                                                                                                                                                                             |
| ------------ | ------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]               | object    | JSON:API resource.                                                                                                                                                                                                      |
| data         | attributes [*required*]         | object    | Recovery progress. Batch-only attributes are omitted for targeted requests; request_type is also omitted for targeted requests.                                                                                         |
| attributes   | created_at [*required*]         | date-time | Creation time.                                                                                                                                                                                                          |
| attributes   | discovery_status                | 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   | error_message                   | string    | Failure details, if present.                                                                                                                                                                                            |
| 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   | failed_sessions [*required*]    | int64     | Failed session count.                                                                                                                                                                                                   |
| attributes   | from                            | int64     | Start of the range in Unix milliseconds. Must be positive and earlier than to.                                                                                                                                          |
| attributes   | processed_sessions [*required*] | int64     | Processed session count.                                                                                                                                                                                                |
| attributes   | query                           | string    | RUM search query. Not blank, at most 4096 bytes for batch creation and count.                                                                                                                                           |
| attributes   | request_type                    | enum      | Query-based batch recovery. Allowed enum values: `batch`.                                                                                                                                                               |
| attributes   | sessions                        | [object]  | Targeted session progress. Omitted when empty or not applicable.                                                                                                                                                        |
| sessions     | application_id [*required*]     | uuid      | Application UUID.                                                                                                                                                                                                       |
| sessions     | error_message                   | string    | Failure details, if present.                                                                                                                                                                                            |
| sessions     | events_recovered [*required*]   | int64     | Recovered event count.                                                                                                                                                                                                  |
| sessions     | session_id [*required*]         | uuid      | Session identifier.                                                                                                                                                                                                     |
| sessions     | status [*required*]             | enum      | Session availability or recovery state. `RECOVERED` indicates that the session is ready to query. Allowed enum values: `AVAILABLE`, `PENDING`, `PROCESSING`, `RECOVERED`, `FAILED`, `RETAINED`, `EXPIRED`, `CANCELLED`. |
| attributes   | sessions_discovered             | int64     | Discovered sessions.                                                                                                                                                                                                    |
| attributes   | sessions_failed                 | int64     | Failed sessions.                                                                                                                                                                                                        |
| attributes   | sessions_processed              | int64     | Processed sessions.                                                                                                                                                                                                     |
| attributes   | slices_completed                | int64     | Completed slices.                                                                                                                                                                                                       |
| attributes   | slices_failed                   | int64     | Failed slices.                                                                                                                                                                                                          |
| attributes   | status [*required*]             | enum      | Recovery request state. Allowed enum values: `PENDING`, `PROCESSING`, `COMPLETED`, `FAILED`, `CANCELLED`, `EXPIRED`.                                                                                                    |
| attributes   | to                              | int64     | End of the range in Unix milliseconds.                                                                                                                                                                                  |
| attributes   | total_sessions                  | int64     | Total targeted sessions. Omitted while a batch total is unknown.                                                                                                                                                        |
| attributes   | total_slices                    | 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_recovery_request`.                                                                                                                                                    |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "created_at": "2026-09-21T12:00:00Z",
      "discovery_status": "QUEUED",
      "error_message": "example",
      "estimated_count": 0,
      "failed_sessions": 0,
      "from": 1789905600000,
      "processed_sessions": 0,
      "query": "service:web",
      "request_type": "batch",
      "sessions": [
        {
          "application_id": "a33671aa-24fd-4dcd-ba4b-5bbdbafe7690",
          "error_message": "example",
          "events_recovered": 0,
          "session_id": "00000000-0000-4000-8000-000000000001",
          "status": "AVAILABLE"
        }
      ],
      "sessions_discovered": 0,
      "sessions_failed": 0,
      "sessions_processed": 0,
      "slices_completed": 0,
      "slices_failed": 0,
      "status": "PENDING",
      "to": 1789992000000,
      "total_sessions": 0,
      "total_slices": 0,
      "updated_at": "2026-09-21T12:00:00Z"
    },
    "id": "11111111-1111-4111-8111-111111111111",
    "type": "rum_recovery_request"
  }
}
```
{% /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
# Path parameters
export request_id="11111111-1111-4111-8111-111111111111"

# 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/${request_id}" \
-H "Accept: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
```
{% /tab %}
{% /tabs %}
