Veridion Disclosure API · problems
Every error the API can return.
When a request cannot be answered, the API returns an RFC 9457 problem document with a stable code, a type that resolves to the entry below, and a request_id equal to the X-Request-ID header. 27 problems are defined for version 1.20.0. A route cannot emit a code that is not on this page; the build fails.
{
"type": "https://www.veridionmarkets.com/data-api/problems/rate_limited",
"code": "rate_limited",
"title": "Free-tier request budget exceeded.",
"status": 429,
"detail": "The free tier allows 60 requests per hour per IP. ...",
"request_id": "6f1c…"
}HTTP 400
- invalid_transaction_idcaller changes the request
The OGE transaction identifier is invalid.
The path does not carry the stored 64-character lowercase hexadecimal OGE transaction identifier.
Fix the request; do not retry as sent.
- unknown_query_parametercaller changes the request
One or more query parameters are not supported.
The request named a query parameter this operation does not define. The API refuses the request instead of ignoring the parameter, because a silently ignored filter returns the wrong rows under a 200.
Fix the request; do not retry as sent.
- invalid_requestcaller changes the request
One or more query parameters are invalid.
A known parameter carried a value outside its contract: a malformed date, a limit above the tier's cap, an unknown chamber, a badly formed identifier.
Fix the request; do not retry as sent.
- invalid_disclosure_idcaller changes the request
The disclosure identifier is invalid.
The path segment is not shaped like a permanent v1 disclosure_id. This is a syntax check; it says nothing about whether such a record exists.
Fix the request; do not retry as sent.
- invalid_cursorcaller changes the request
The cursor is not one this API issued for this query.
Cursors are signed and carry the query they belong to. A cursor that fails its signature, or that was issued for a different filter set or pull mode, is refused rather than applied to the wrong query.
Restart from page one without a cursor.
HTTP 401
HTTP 403
- full_history_requires_developercaller changes the request
A Developer key is required for historical access.
Anonymous, free and evaluator callers may read only the globally recent 25 serving candidates. Cursors and as_of cannot widen that window.
Fix the request; do not retry as sent.
- insufficient_scopecaller changes the request
This key is not authorized for this Disclosure API endpoint.
The key is valid but its scopes do not include this operation.
Fix the request; do not retry as sent.
HTTP 404
- executive_transaction_not_foundcaller changes the request
No receipt-qualified executive transaction is in this access window.
The transaction has no qualified active row in the caller's pinned snapshot or bounded free window. This does not assert that the filer never disclosed it.
Fix the request; do not retry as sent.
- route_not_foundcaller changes the request
No Disclosure API endpoint exists at this path.
The path is not one this contract defines. Distinct from disclosure_not_found, which means the endpoint exists and the identifier does not. Until 2026-09-06 an undefined path under /api/v1 returned the website's HTML not-found page, so a client that had made a typo received markup where every other failure on this surface returns problem+json.
Fix the request; do not retry as sent.
- disclosure_not_foundcaller changes the request
No disclosure exists for this permanent identifier.
The permanent disclosure_id namespace was searched across active and withdrawn records and nothing matched. Withdrawn identifiers still resolve with their reason, so a 404 means the identifier was never issued.
Fix the request; do not retry as sent.
- no_snapshot_yetVeridion side
No bulk snapshot has been generated yet.
The bulk export is produced daily. This is a pipeline state, not an authorization failure.
Retry later; the request was sound. Every 503 carries Retry-After with the minimum wait.
HTTP 405
- method_not_allowedcaller changes the request
This endpoint answers GET only.
The path exists and the method does not. Every operation in this contract is a read: the API has no endpoint that changes the record, because the record belongs to the government sources it is parsed from. A 405 here is never a permission problem and never a temporary one.
Fix the request; do not retry as sent.
HTTP 409
HTTP 429
- rate_limitedcaller changes the request
Free-tier request budget exceeded.
The anonymous budget stated in X-RateLimit-Policy was used up for this address. Retry-After says how long until the window opens.
Retry after the Retry-After header elapses.
HTTP 503
- executive_identity_ambiguousVeridion side
The executive transaction identity is ambiguous.
More than one accepted current version matched a stored OGE transaction identifier. The API refuses to choose a row.
Retry later; the request was sound. Every 503 carries Retry-After with the minimum wait.
- contract_validation_failedVeridion side
A stored disclosure does not satisfy the public contract.
A row read from the warehouse failed the published schema at serve time. The API refuses to serve a row that does not match its own contract. This is a Veridion defect, not a request problem.
Retry later; the request was sound. Every 503 carries Retry-After with the minimum wait.
- signing_failedVeridion side
The snapshot exists but a download URL could not be signed.
The bulk snapshot is present; the short-lived download link could not be produced.
Retry later; the request was sound. Every 503 carries Retry-After with the minimum wait.
- manifest_timestamp_unreadableVeridion side
The snapshot manifest carries a timestamp this contract cannot serve.
generated_at, snapshot_as_of and artifact_verified_at must each be a readable instant. One was missing or unparseable, so the manifest is withheld rather than served in a form the published schema rejects.
Retry later; the request was sound. Every 503 carries Retry-After with the minimum wait.
Problem documents are returned by every v1 route except where the OpenAPI document declares a legacy error body for an operation. Questions with a request id go to support@veridionmarkets.com.