> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Media Data API job errors

> GET /dca/jobs/{job_id}/hp_errors returns the URL and error reason for every failed input in a Bright Data Media Data API job started with /dca/trigger_hp.

Retrieve the error report for a Bright Data Media Data API job. The report lists every input URL that failed and the reason it failed.

<Note>
  The `job_id` is the `hp_` prefixed ID returned by the [Media Data API trigger endpoint](./media-data-api) (`POST /dca/trigger_hp`). In `trigger_hp` and `hp_errors`, HP stands for high payload. Scraper Studio jobs use a different endpoint for job errors.
</Note>

## Request

Pass the job ID in the path and your API key in the `Authorization` header:

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.brightdata.com/dca/jobs/$JOB_ID/hp_errors" \
    -H "Authorization: Bearer $BRIGHTDATA_API_KEY"
  ```

  ```python Python theme={null}
  import os
  import requests

  job_id = os.environ["JOB_ID"]
  response = requests.get(
      f"https://api.brightdata.com/dca/jobs/{job_id}/hp_errors",
      headers={"Authorization": f"Bearer {os.environ['BRIGHTDATA_API_KEY']}"},
  )
  errors = response.json()
  ```

  ```js Node.js theme={null}
  const jobId = process.env.JOB_ID;
  const response = await fetch(
    `https://api.brightdata.com/dca/jobs/${jobId}/hp_errors`,
    { headers: { Authorization: `Bearer ${process.env.BRIGHTDATA_API_KEY}` } }
  );
  const errors = await response.json();
  ```
</CodeGroup>

The response is an `errors` array. Each item holds the failed `url`, the `error` reason and an internal `consumer` identifier.

### Query parameters

| Name | Type | Required | Description |
| - | - | - | - |
| `skip_normalize` | boolean | No | When `true`, returns full non-normalized error details. Default returns normalized errors. |

## Errors

| Status | Cause | Fix |
| - | - | - |
| `400 Bad Request` | Invalid job ID format | Verify the job ID matches the `hp_` prefixed ID returned by `POST /dca/trigger_hp` |
| `404 Not Found` | Job does not exist or your account does not have access | Confirm the job ID is current and from a job you triggered |
| `500` | Internal server error | Retry with exponential backoff, for example 1s, 2s, 4s |

## When to use this endpoint

* Resubmit only the failed URLs from a previous Media Data API job
* Show the failure reason for each URL in a UI or admin console

## Related

* [Media Data API](./media-data-api): the trigger endpoint that creates the job and returns the `job_id`


## OpenAPI

````yaml api-reference/media-data-api/media-data-api GET /dca/jobs/{job_id}/hp_errors
openapi: 3.1.0
info:
  title: Media Data API
  version: 1.0.0
  description: >-
    Extract video, audio, captions, thumbnails and storyboards from YouTube,
    Vimeo, TikTok and Bilibili and deliver them to your configured storage
    destination.
servers:
  - url: https://api.brightdata.com
security:
  - bearerAuth: []
paths:
  /dca/jobs/{job_id}/hp_errors:
    get:
      summary: Get errors for a Media Data API job
      description: >-
        Retrieves the errors generated during a Media Data API job. The job ID
        must be obtained from the `/dca/trigger_hp` endpoint (HP stands for high
        payload). If the `skip_normalize` query parameter is provided, full
        (non-normalized) error details are returned.
      operationId: getMediaDataJobErrors
      parameters:
        - name: job_id
          in: path
          required: true
          description: Job ID returned from the `/dca/trigger_hp` endpoint
          schema:
            type: string
            example: hp_mn1l61rn1p94ynijur
        - name: skip_normalize
          in: query
          required: false
          description: Return full (non-normalized) error details
          schema:
            type: boolean
      responses:
        '200':
          description: List of errors for the specified job
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          description: URL that failed during processing
                        error:
                          type: string
                          description: Error type or reason
                        consumer:
                          type: string
                          description: Internal consumer identifier
              example:
                errors:
                  - url: www.youtube.com/watch?v=GBaFv4O5H7g
                    error: aborted
                    consumer: dca-hp-so-szakh
                  - url: www.youtube.com/watch?v=dVSRDWxlWBg
                    error: aborted
                    consumer: dca-hp-so-sz5zu
                  - url: www.youtube.com/watch?v=1YrOL8ZqR4Q
                    error: aborted
                    consumer: dca-hp-so-sz6ga
        '400':
          description: Invalid job ID supplied
          content:
            text/plain:
              schema:
                type: string
                example: Invalid job ID supplied
        '404':
          description: Job not found
          content:
            text/plain:
              schema:
                type: string
                example: Job not found
        '500':
          description: Internal server error
          content:
            text/plain:
              schema:
                type: string
                example: Internal server error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Bright Data API key. Find it in the [Bright Data Control
        Panel](https://brightdata.com/cp/api_keys).

````