---
title: "Get Job Page Runs"
method: GET
path: "/api/v0/job-statuses/{job_status_id}/page-runs"
tags: ["Job Status"]
---

# Get Job Page Runs

`GET /api/v0/job-statuses/{job_status_id}/page-runs`

## Request

- Base URL: `https://api.outerport.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outerport.com/api/v0/job-statuses/{job_status_id}/page-runs`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/outerport/apis/outerport-api/docs/api/v0/job-statuses/:job_status_id/page-runs/get.ts> (a function with typed inputs; its response is checked against the schema)

Per-page worker-task runs for a document-processing job. Returns an empty ``page_runs`` for jobs that
do not fan out into ``process_page`` tasks (single-task reprocesses, agent runs, etc.).

## Path parameters

- `job_status_id` string, uuid, required

## Response `200`

Successful Response

- JobPageRunsResponse: Per-page task outcomes for a single job.
  - `job_status_id` string, uuid, required: The job these page runs belong to.
  - `page_runs` JobPageRun[], required: Latest task run per page, page order (empty for non-page jobs).
    - `page_number` integer, nullable: Zero-based page index this task processed.
    - `status` string, required: Hyrex run status of the page's most recent attempt: SUCCESS, FAILED, LOST (worker died), CANCELED, RUNNING, QUEUED, etc.
    - `attempt_number` integer, nullable: Attempt index (>0 means the page was retried).
    - `started` string, date-time, nullable: When the page task started executing.
    - `finished` string, date-time, nullable: When the page task reached a terminal state.
    - `duration_seconds` number, nullable: How long the page took (finished - started), in seconds.
    - `task_name` string, required: Hyrex task name (e.g. process_page).
    - `errors` string[]: Why the page failed: persisted process_page exceptions for this page, or a synthesized note for LOST (worker died) pages.
  - `degraded_components` DegradedComponent[]: Components that finished but recorded a non-fatal warning (e.g. chart graph-gen timed out), which the job status alone does not show.
    - `page_number` integer, nullable: Page the component is on.
    - `component_type` string, required: Component type (chart, table, …).
    - `label` string, nullable: Component label.
    - `warnings` string[], required: Human-readable warnings (the swallowed give-up reasons).
  - `started_at` string, date-time, nullable: Earliest task enqueue/start across the job.
  - `finished_at` string, date-time, nullable: Latest task finish across the job.
  - `duration_seconds` number, nullable: End-to-end job wall-clock (Hyrex span), in seconds.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/outerport/apis/outerport-api.md) - [All operations](https://skmtc.dev/outerport/apis/outerport-api/llms.txt) - [OpenAPI document](https://skmtc.dev/outerport/apis/outerport-api/revisions/08b5bf6f7f18?raw)
