---
title: "Read a replay-validated accepted-run proof."
method: GET
path: "/api/run-proofs/{proofId}"
tags: ["Run Cards"]
---

# Read a replay-validated accepted-run proof.

`GET /api/run-proofs/{proofId}`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/run-proofs/{proofId}`
- Auth: none declared

Revalidates the immutable mapping, Run Card, accepted receipt, exact representation, executable state, scan, license, revocation, runtime, and source bindings before projecting a positive claim.

**Inputs.** Path, query and header fields are listed below. No request body is required.

**Outputs.** See each status below for its media type, schema and headers. A missing record or unavailable capability is not a successful empty result.

**Errors.** API JSON failures use the documented response schema. Read code, message and next; retry only when the response allows it. Auth, invalid input and missing records need a caller change.

**Rate limits.** Public read budgets apply by client IP and route group. This operation can have a smaller route-specific budget. Read Retry-After on 429 or retryable 503 responses.

**Example setup.** Use an identifier returned by the matching list, search or create operation. Sample identifiers are not a promise that a record exists.

## Path parameters

- `proofId` string, required

## Query parameters

- `format` 'html' | 'json' | 'jsonld' | 'badge' | 'citation'

## Response `200`

Current or honestly downgraded accepted-run proof

- union
  - AcceptedRunProof
    - `schema` 'hugging-bay.accepted-run-proof.v1', required
    - `version` '1.0.0', required
    - `proofId` string, required
    - `proofDigest` string, required
    - `title` string, required
    - `description` string, required
    - `generatedAt` string, date-time, required
    - `status` 'current' | 'expired' | 'stale' | 'superseded' | 'revoked' | 'retracted', required
    - `downgradeReason` string, nullable
    - `subject` AcceptedRunProofSafeObject, required
    - `runtime` AcceptedRunProofSafeObject, required
    - `hardwareClass` string, required
    - `acceptedOutcome` AcceptedRunProofSafeObject, required
    - `evidenceStrength` string, required
    - `evidence` AcceptedRunProofSafeObject, required
    - `files` AcceptedRunProofSafeObject[], required
    - `lifecycle` AcceptedRunProofSafeObject, required
    - `uncertainty` string[], required
    - `nextAction` AcceptedRunProofSafeObject, required
    - `claims` AcceptedRunProofSafeObject[], required
  - AcceptedRunProofBadge
    - `schema` 'hugging-bay.accepted-run-proof.projection.v1', required
    - `proofId` string, required
    - `status` 'verified' | 'blocked', required
    - `label` string, required
    - `color` 'green' | 'red', required
    - `hardwareClass` string, required
    - `evidenceStrength` string, required
    - `proofStatus` 'current' | 'expired' | 'stale' | 'superseded' | 'revoked' | 'retracted', required
    - `acceptedRun` unknown, required
    - `evidenceCutoff` string, date-time, required
    - `proofDigest` string, required
    - `canonicalUrl` string, nullable, required

## Other responses

- `304`: Exact ETag match; no response body
- `404`: Proof mapping not found
- `405`: Only GET and HEAD are supported
- `406`: Requested proof representation is unsupported
- `409`: Proof authority binding is permanently divergent
- `503`: Proof authority temporarily unavailable

---

[API](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api.md) · [All operations](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/revisions/865eb0f1b6ef?raw)
