---
title: "Get a single run"
method: GET
path: "/v1/schedules/{schedule_id}/runs/{run_id}"
tags: ["schedules"]
---

# Get a single run

`GET /v1/schedules/{schedule_id}/runs/{run_id}`

## Request

- Base URL: `https://coasty.ai`
- URL: `https://coasty.ai/v1/schedules/{schedule_id}/runs/{run_id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/coasty/apis/coasty-public-api/docs/v1/schedules/:schedule_id/runs/:run_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Scope: `schedules:read`. A run absent from this schedule returns 404 RUN_NOT_FOUND; a store outage returns 503 DB_UNAVAILABLE with Retry-After. Neither surfaces as a bare 500.

## Response `200`

Run.

- ScheduleRunRecord: Durable execution history. It deliberately omits the schedule llm preference, provider credentials, prompts, screenshots, and provider-token totals; read the ScheduleResponse for its non-secret configured preference.
  - `id` string, required
  - `schedule_id` string, required
  - `status` 'queued' | 'running' | 'completed' | 'failed' | 'skipped' | 'cancelled' | 'insufficient_credits', required
  - `trigger` 'cron' | 'manual' | 'triggered' | 'webhook' | 'email' | 'run_at', required
  - `duration_seconds` integer, nullable
  - `credits_charged` integer, nullable: Consumer subscription-credit quota units charged for scheduled execution, not Developer API wallet cents. Zero for test, Unlimited-bypass, and other non-billable runs; no fixed USD conversion.
  - `error` string, nullable
  - `executed_at` string, date-time, required

## Other responses

- `400`: Invalid request body or parameters.
- `401`: Missing, invalid, or revoked API key. Pass `X-API-Key: sk-coasty-live-...` (or test).
- `403`: API key lacks the required scope or tier-feature is unavailable on the caller's plan.
- `404`: Resource not found in this key's namespace.
- `409`: The resource state conflicts with this operation.
- `413`: The request body exceeds the endpoint limit.
- `422`: The JSON shape is valid but one or more values violate the endpoint contract.
- `429`: Rate or concurrency limit exceeded.
- `500`: Unexpected server error. Retry with exponential backoff.
- `502`: An upstream dependency returned an invalid response.
- `503`: A required service is temporarily unavailable.
- `504`: An upstream dependency timed out.

---

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