---
title: "Status of one PDF report"
method: GET
path: "/projects/{project_id}/reports/{report_id}"
tags: ["Reports"]
---

# Status of one PDF report

`GET /projects/{project_id}/reports/{report_id}`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/projects/{project_id}/reports/{report_id}`
- Auth: HTTP bearer

Returns one report's status. Reports usually take less than a minute; poll every few seconds while it is queued or running. A failed report has an error with a message to show the person.

## Path parameters

- `project_id` string, required: The project: its id, its brand domain (for example nike.example) or its exact project or brand name. Unknown or ambiguous references return not_found; call list_projects then.
- `report_id` string, required: The report id from create_report or list_reports.

## Response `200`

Status of one PDF report

- object
  - `id` string, required
  - `project_id` string, required
  - `status` 'queued' | 'running' | 'ready' | 'failed' | 'expired', required: queued and running: still generating. ready: download it. failed: see error. expired: the file was deleted; request it again.
  - `error` object, nullable, required
    - `code` 'too_large' | 'unavailable' | 'generation_failed', required
    - `message` string, required
  - `window` object, nullable, required: The local calendar days the report covers, in its time zone.
    - `from` string, required
    - `to` string, required
    - `time_zone` string, required
  - `filters` object, required: Applied filters by dimension; empty when every observation is included.
    - `engine` string[]
    - `device` string[]
    - `os` string[]
    - `country` string[]
    - `location` string[]
  - `requested_at` string, required
  - `completed_at` string, nullable, required
  - `expires_at` string, required: When a ready report's file is deleted, 7 days after it was generated.
  - `page_count` integer, nullable, required
  - `size_bytes` integer, nullable, required
  - `branding` object, required: The branding the file was requested with.
    - `kind` 'default' | 'agency', required
    - `agency_name` string, nullable, required
    - `prepared_for` string, nullable, required
  - `request_id` string

## Other responses

- `400`: Invalid parameters, cursor or body.
- `401`: Missing, invalid, expired or revoked credential.
- `403`: The credential lacks the write scope, the plan does not include the API, or the allowance is used up.
- `404`: Unknown project, keyword or run in this account.
- `409`: The idempotency key was already used for a different request.
- `429`: Rate limit reached. Retry after the Retry-After seconds.
- `503`: The requested service or file is temporarily unavailable.

---

[API](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api.md) · [All operations](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/revisions/e1a4a40b11a9?raw)
