Attestor API Reference

FieldValue
Source specattestor/openapi/v1.json
OpenAPI version3.1.1
API version1.0.0
Operations70
Path filterAll paths

Operations

GET /anchors

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json
501Not Implementedapplication/json

POST /anchors

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json
409Conflictapplication/json
501Not Implementedapplication/json

GET /anchors/{anchorId}

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
anchorIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

DELETE /anchors/{anchorId}

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
anchorIdpathyes

Responses:

StatusDescriptionContent types
204No Contentapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

PATCH /anchors/{anchorId}

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Parameters:

NameInRequiredDescription
anchorIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

POST /anchors/{anchorId}/revoke-key

PropertyValue
Operation ID-
TagsAnchors
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Parameters:

NameInRequiredDescription
anchorIdpathyes

Responses:

StatusDescriptionContent types
204No Contentapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

GET /api/v1/attestations

Lists attestation entries from the repository with optional filters. Returns a paginated result with continuation token for incremental sync. Requires attestor:read scope.

PropertyValue
Operation IDListAttestations
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/attestations/{uuid}

Retrieves an attestation entry by UUID, including inclusion proof, checkpoint, artifact metadata, and optional mirror status. Equivalent to the Rekor entry endpoint but accessed by attestor UUID alias. Requires attestor:read scope.

PropertyValue
Operation IDGetAttestationByUuid
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
uuidpathyes
refreshqueryno

Responses:

StatusDescriptionContent types
200OK-

POST /api/v1/attestations:export

Exports attestations as a portable bundle package with optional filters by artifact digest, date range, and predicate type. Used for offline transfer and air-gap synchronization. Requires attestor:read scope.

PropertyValue
Operation IDExportAttestationBundle
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/attestations:export-build

Exports the supported build type/ID, invocation, configuration-source, environment, parameter, and timestamp fields as an unsigned SPDX 3.0.1 Build Profile document. The supported request is format=Spdx3 with sign=false. DSSE/signing, Both, builder, and material requests fail closed with 501 feature_not_implemented rather than returning an incomplete document. The authorization policy name is attestor:write; the required canonical scope claim is attest:create.

PropertyValue
Operation IDExportSpdx3BuildAttestation
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
501Signing, DSSE, builder, or material mapping is not implementedapplication/problem+json

POST /api/v1/attestations:import

Imports a portable attestation bundle package into the attestor store. All entries within the bundle are validated before persistence. Returns a summary of imported and skipped entries. Requires attestor:write scope.

PropertyValue
Operation IDImportAttestationBundle
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/attestations:sign

Signs an attestation payload using the configured key and DSSE envelope format. Requires an authenticated principal or configured StellaOps service-to-service bypass. Returns the signed bundle with key metadata and optional Rekor submission details. Requires attestor:write scope.

PropertyValue
Operation IDSignAttestation
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

POST /api/v1/attestor/links

Creates and signs an in-toto link metadata object for a named step, including materials, products, command, environment, and return value. Returns the signed DSSE envelope with optional Rekor entry. Requires attestor:write scope.

PropertyValue
Operation IDCreateInTotoLink
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/attestor/predicates

List all registered predicate types

Returns a paginated list of registered in-toto predicate type schemas from the registry, with optional filters by category and active status. Used to discover supported predicate URIs for attestation creation.

PropertyValue
Operation IDListPredicateTypes
TagsPredicate Registry
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
categoryqueryno
isActivequeryno
limitqueryno
offsetqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/attestor/predicates/{uri}

Get predicate type schema by URI

Retrieves the full schema definition for a predicate type identified by its URI. The URI must be URL-encoded when passed as a path segment. Returns 404 if the predicate type is not registered.

PropertyValue
Operation IDGetPredicateType
TagsPredicate Registry
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
uripathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/buildinfo

API alias for /buildinfo.json (same payload).

PropertyValue
Operation IDStellaOpsBuildInfoApi
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/bundles

PropertyValue
Operation ID-
TagsBundles
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cursorqueryno
limitqueryno
periodEndqueryno
periodStartqueryno
tenantIdqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/bundles

PropertyValue
Operation ID-
TagsBundles
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json

GET /api/v1/bundles/{bundleId}

PropertyValue
Operation ID-
TagsBundles
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
bundleIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json

GET /api/v1/bundles/{bundleId}/attestations/{entryId}

PropertyValue
Operation ID-
TagsBundles
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
bundleIdpathyes
entryIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json

POST /api/v1/bundles/{bundleId}/verify

PropertyValue
Operation ID-
TagsBundles
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
bundleIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json

Runtime status (2026-07-17): The five /api/v1/chains/* shapes below belong to the excluded ChainController prototype. They are not registered in the production host and therefore return 404. The response tables document the prototype contract, not a live API.

Prototype: GET /api/v1/chains/artifact/{artifactDigest}

PropertyValue
Operation ID-
TagsChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
artifactDigestpathyes
chainqueryno
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

Prototype: GET /api/v1/chains/{attestationId}

PropertyValue
Operation ID-
TagsChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
attestationIdpathyes
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

Prototype: GET /api/v1/chains/{attestationId}/downstream

PropertyValue
Operation ID-
TagsChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
attestationIdpathyes
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

Prototype: GET /api/v1/chains/{attestationId}/graph

PropertyValue
Operation ID-
TagsChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
attestationIdpathyes
formatqueryno
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

Prototype: GET /api/v1/chains/{attestationId}/upstream

PropertyValue
Operation ID-
TagsChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
attestationIdpathyes
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

Runtime status (2026-07-20): The four /api/v1/proofs/* shapes below are active. Non-testing runtime uses an Attestor-owned tenant-partitioned PostgreSQL projection; authenticated tenant context is mandatory. The chain route returns deterministic ProofChainResponse JSON or RFC 7807 404 with title No proof chain found. for an honest empty subject. Subject routes require a strict 64-hex SHA-256 digest.

GET /api/v1/proofs/id/{proofId}

PropertyValue
Operation ID-
TagsProofChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
proofIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

GET /api/v1/proofs/id/{proofId}/verify

PropertyValue
Operation ID-
TagsProofChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
proofIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

GET /api/v1/proofs/{subjectDigest}

PropertyValue
Operation ID-
TagsProofChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
subjectDigestpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

GET /api/v1/proofs/{subjectDigest}/chain

PropertyValue
Operation ID-
TagsProofChain
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
subjectDigestpathyes
maxDepthqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json, text/json, text/plain
400Bad Requestapplication/json, text/json, text/plain
404Not Foundapplication/json, text/json, text/plain

POST /api/v1/rekor/entries

Submits an attestation entry to the configured transparency log. Requires an authenticated principal or configured StellaOps service-to-service bypass. Returns the entry details including UUID, log index, and inclusion proof. Requires attestor:write scope.

PropertyValue
Operation IDSubmitRekorEntry
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-
400Validation failure. Code tenant_required when the submission carries no tenant (see below).application/problem+json

Tenant requirement (internal / bypass submissions) — SPRINT_20260721_004. Every submission MUST resolve to a tenant; the Attestor hard-rejects a tenantless submission with 400 ProblemDetails code = "tenant_required" (no silent default tenant is ever injected). The tenant is resolved as: the caller’s tenant claim (authenticated principals) or, for an internal tokenless bypass submission (authorized via Authority:ResourceServer:BypassNetworks, no bearer token, hence an anonymous principal), the caller-supplied X-StellaOps-TenantIdheader. The header is honored only for anonymous bypass callers — for an authenticated principal the tenant always comes from its claim and the header is ignored, so it cannot be used to spoof a tenant. Internal producers (Scanner scan-result, Findings.Ledger VEX-override, ReleaseOrchestrator deployment, Excititor VEX-observation) send this header; if it is absent the submission 400s and the caller degrades the evidence to self-signed/unsigned rather than anchoring.

GET /api/v1/rekor/entries/{uuid}

Retrieves a Rekor transparency log entry by UUID, including inclusion proof, checkpoint, and artifact metadata. Set refresh=true to bypass cache and fetch the latest state from Rekor. Requires attestor:read scope.

PropertyValue
Operation IDGetRekorEntry
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
uuidpathyes
refreshqueryno

Responses:

StatusDescriptionContent types
200OK-

POST /api/v1/rekor/verify

Verifies an attestation against the Rekor transparency log, checking inclusion proof, checkpoint consistency, and signature validity. Returns a structured verification result with per-check diagnostics. Requires attestor:verify scope.

PropertyValue
Operation IDVerifyRekorEntry
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

POST /api/v1/rekor/verify:bulk

Enqueues a bulk attestation verification job for processing multiple entries asynchronously. Returns 202 Accepted with the job ID and a polling URL. Queue depth is enforced by quota configuration. Requires attestor:write scope.

PropertyValue
Operation IDCreateBulkVerificationJob
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/rekor/verify:bulk/{jobId}

Returns the current status and results of a bulk attestation verification job by job ID. The job is only visible to the principal that submitted it. Returns 404 for unknown or unauthorized job IDs. Requires attestor:write scope.

PropertyValue
Operation IDGetBulkVerificationJob
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
jobIdpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/transparency/exchange/batches

Lists manual schedule/import and connected-sync batch status metadata without returning package bytes. Requires attestor:read scope.

PropertyValue
Operation IDListTransparencyExchangeBatches
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
directionqueryno
limitqueryno
manifestDigestqueryno
operatorLabelqueryno
targetIdqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

GET /api/v1/transparency/exchange/batches/{batchId}

Gets manual schedule/import or connected-sync batch status metadata by batch id. Requires attestor:read scope.

PropertyValue
Operation IDGetTransparencyExchangeBatch
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
batchIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/transparency/exchange/imports:apply

Validates and applies a returned external transparency import file, attaching mirror receipts only to matching local entries. Requires attestor:write scope.

PropertyValue
Operation IDApplyTransparencyExchangeImport
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

POST /api/v1/transparency/exchange/imports:validate

Validates a returned external transparency import file before sealed-site apply. Requires attestor:write scope.

PropertyValue
Operation IDValidateTransparencyExchangeImport
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

POST /api/v1/transparency/exchange/relay-imports

Validates a schedule file and produces a deterministic signed import file containing external mirror receipts. Requires attestor:write scope.

PropertyValue
Operation IDCreateTransparencyExchangeRelayImport
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

POST /api/v1/transparency/exchange/schedules

Creates a deterministic manual schedule file for sealed-site external transparency mirror exchange. Requires attestor:write scope.

PropertyValue
Operation IDCreateTransparencyExchangeSchedule
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

GET /api/v1/transparency/external-sync/reports

Lists connected-window external transparency sync reports for CLI/UI readback. Requires attestor:read scope.

PropertyValue
Operation IDListExternalTransparencySyncReports
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
limitqueryno
operatorLabelqueryno
targetIdqueryno
targetNamequeryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/transparency/external-sync/reports/{batchId}

Gets one connected-window external transparency sync report by batch id. Requires attestor:read scope.

PropertyValue
Operation IDGetExternalTransparencySyncReport
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
batchIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/transparency/external-sync:run

Runs a bounded connected-window sync from Stella local transparency receipts to configured external Rekor-compatible mirror targets. The worker remains separately disabled unless explicitly enabled. Requires attestor:write scope.

PropertyValue
Operation IDRunExternalTransparencySync
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
409Conflict-

GET /api/v1/transparency/targets

Lists operator-approved external transparency mirror targets with per-target status. Requires attestor:read scope.

PropertyValue
Operation IDListExternalTransparencyTargets
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
enabledqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/transparency/targets

Creates or updates an operator-approved external transparency target. The API stores only endpoint metadata and secret references, never raw credentials. Requires attestor:write scope.

PropertyValue
Operation IDUpsertExternalTransparencyTarget
TagsStellaOps.Attestor.WebService
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Request-

GET /api/v1/transparency/targets/{targetId}

Gets one external transparency mirror target with status counters and last error metadata. Requires attestor:read scope.

PropertyValue
Operation IDGetExternalTransparencyTarget
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
targetIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/transparency/targets/{targetId}:disable

Disables an existing external transparency target. Existing local transparency receipts remain authoritative. Requires attestor:write scope.

PropertyValue
Operation IDDisableExternalTransparencyTarget
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
targetIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/transparency/targets/{targetId}:enable

Enables an existing external transparency target for connected sync or manual exchange selection. Requires attestor:write scope.

PropertyValue
Operation IDEnableExternalTransparencyTarget
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
targetIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/verdicts/{verdictId}

PropertyValue
Operation ID-
TagsVerdict
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
verdictIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
403Forbiddenapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

GET /api/v1/watchlist

List watchlist entries

Returns all watchlist entries for the tenant, optionally including global entries.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
includeGlobalqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/watchlist

Create watchlist entry

Creates a new watchlist entry for monitoring identity appearances.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json

GET /api/v1/watchlist/alerts

List recent alerts

Returns recent alerts generated by watchlist matches.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
limitqueryno
severityqueryno
sincequeryno

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/watchlist/{id}

Get watchlist entry

Returns a single watchlist entry by ID.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

PUT /api/v1/watchlist/{id}

Update watchlist entry

Updates an existing watchlist entry.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Found-

DELETE /api/v1/watchlist/{id}

Delete watchlist entry

Deletes a watchlist entry.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
204No Content-
404Not Found-

POST /api/v1/watchlist/{id}/test

Test watchlist pattern

Tests if a sample identity matches the watchlist entry pattern.

PropertyValue
Operation ID-
TagsWatchlist
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /buildinfo.json

Image build provenance (module, gitSha, gitCommitTime, imageBuiltAt, branch) for drift detection.

PropertyValue
Operation IDStellaOpsBuildInfoFile
TagsStellaOps.Attestor.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

POST /internal/api/v1/attestations/verdict

PropertyValue
Operation ID-
TagsVerdict
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json
500Internal Server Errorapplication/json
501Not Implementedapplication/json

POST /internal/api/v1/exceptions/recheck-status

PropertyValue
Operation ID-
TagsException
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json

POST /internal/api/v1/exceptions/renew

PropertyValue
Operation ID-
TagsException
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json
500Internal Server Errorapplication/json

POST /internal/api/v1/exceptions/sign

PropertyValue
Operation ID-
TagsException
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json
500Internal Server Errorapplication/json

POST /internal/api/v1/exceptions/verify

PropertyValue
Operation ID-
TagsException
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json

Runtime status (2026-07-17): The bare /proofs/{entry}/* routes are retained as fail-closed retirement diagnostics. Valid authorized requests return 501 application/problem+json with code=feature_not_implemented; malformed mutations can return 400, and missing write authority returns 403. The historical success rows below are not implemented.

GET /proofs/{entry}/receipt

PropertyValue
Operation ID-
TagsProofs
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
entrypathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/problem+json

GET /proofs/{entry}/spine

PropertyValue
Operation ID-
TagsProofs
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
entrypathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/problem+json

POST /proofs/{entry}/spine

PropertyValue
Operation ID-
TagsProofs
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Parameters:

NameInRequiredDescription
entrypathyes

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
422Unprocessable Entityapplication/json
501Not Implementedapplication/problem+json

GET /proofs/{entry}/vex

PropertyValue
Operation ID-
TagsProofs
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
entrypathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/problem+json

GET /verify/envelope/{envelopeHash}

PropertyValue
Operation ID-
TagsVerify
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
envelopeHashpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

GET /verify/rekor/{envelopeHash}

PropertyValue
Operation ID-
TagsVerify
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
envelopeHashpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json

POST /verify/{proofBundleId}

PropertyValue
Operation ID-
TagsVerify
AuthNot declared
Request bodyapplication/*+json, application/json, text/json

Parameters:

NameInRequiredDescription
proofBundleIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
501Not Implementedapplication/json