---
title: "Accept a degraded run"
method: POST
path: "/v1/runs/{run_id}:accept"
tags: ["Runs"]
---

# Accept a degraded run

`POST /v1/runs/{run_id}:accept`

## Request

- Base URL: `https://sourcefinch.com`
- URL: `https://sourcefinch.com/v1/runs/{run_id}:accept`
- Auth: HTTP bearer

Confirms a degraded run (its output departed from recent healthy runs) is correct. It becomes current and joins future baselines. Only the newest output of a source can be accepted.

## Path parameters

- `run_id` string, uuid, required

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string
- `SourceFinch-Project` string, uuid

## Request body

- object: Empty body. Send an Idempotency-Key header to make retries safe.

## Response `200`

The accepted run

- Run
  - `id` string, uuid, required
  - `source_id` string, uuid, required
  - `source_version` integer, nullable, required
  - `status` 'queued' | 'running' | 'success' | 'degraded' | 'failed' | 'blocked', required
  - `trigger` 'manual' | 'schedule' | 'api', required
  - `attempt` integer, required
  - `created_at` string, required: ISO-8601 timestamp (UTC)
  - `completed_at` string, nullable, required: ISO-8601 timestamp (UTC)
  - `error` string, nullable, required
  - `validation` object, nullable, required
  - `health` object, nullable, required
  - `metrics` object, nullable, required
  - `changes` object, nullable, required
  - `acquisition_path` 'official_api' | 'bulk_file' | 'open_data_portal' | 'licensed_feed' | 'publisher_partnership' | 'pay_per_crawl' | 'public_web' | 'customer_authorized' | 'records_request' | 'manual_upload', required
  - `usage_rights` UsageRights, required: Usage rights snapshotted at capture (documented provenance and terms posture; not legal advice)
    - `basis` 'catalog' | 'private_recipe', required
    - `licence_basis` 'public_domain_gov' | 'open_data_licence' | 'site_terms' | 'licensed_feed' | 'customer_supplied' | 'unknown', required
    - `licence_id` string, nullable
    - `commercial_use` 'allowed' | 'restricted' | 'prohibited' | 'unknown', required
    - `redistribution` 'allowed' | 'restricted' | 'prohibited' | 'unknown', required
    - `attribution_required` boolean, required
    - `attribution_text` string, nullable
    - `terms_snapshot_sha256` string, nullable
    - `reviewed_at` string, nullable: ISO-8601 timestamp (UTC)
    - `usage_rights_id` string, uuid
    - `version` integer
  - `failure_class` 'transient_network' | 'origin_5xx' | 'rate_limited' | 'robots_unavailable' | 'robots_disallowed' | 'blocked_challenge' | 'http_4xx' | 'payment_required' | 'redirect_blocked' | 'budget_exceeded' | 'policy_refused' | 'extraction_failed' | 'validation_failed', required
  - `compliance` object, nullable, required: Compliance state at capture: acquisition path, usage rights, terms posture, robots.txt hash and verdict, AI/TDM signals, crawler identity, pay-per-crawl

## Other responses

- `401`: Problem details; `code` is `unauthenticated`
- `403`: Problem details; `code` is `forbidden`
- `404`: Problem details; `code` is `not_found`
- `409`: Problem details; `code` is `policy` or `conflict`
- `422`: Problem details; `code` is `idempotency_mismatch`
- `429`: Problem details; `code` is `rate_limited`
- `500`: Problem details; `code` is `internal`

---

[API](https://skmtc.dev/sourcefinch/apis/sourcefinch-api.md) · [All operations](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/revisions/190cbe57a5e8?raw)
