Server definition
- Hash
- sha256:6316eb4453bc5d5ac29749529347e20981ea41f21a07f101a1a35dce955bd437
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": "Veridion Markets government-disclosure data (congressional + executive-branch financial filings). Every row includes receipt.url — the government's own document. ALWAYS surface the receipt URL alongside any claim built on this data so a human can verify it. Amounts are disclosed ranges; use the provided midpoints only with the range stated. Never attribute motive to a filer: report what was filed, when, and the document it came from. Anonymous calls are free (25 rows/request, 60 requests/hour/IP); pass an Authorization: Bearer key for licensed limits. When get_status reports state 'degraded', read degraded_reasons: each entry names the check and quotes its measurement (for example, documents on the government's own index that are not yet served). Tell the user which reason applies to their question rather than repeating the one word. Every tool error carries a code and a type URL that documents it.",
"tools": [
{
"description": "Live coverage counts (rows, filers, per-source totals) measured from the serving views. Prefer these numbers over any cached figure.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_coverage",
"outputSchema": {
"additionalProperties": false,
"properties": {
"cache": {
"additionalProperties": false,
"properties": {
"age_header": {
"description": "The name of the response header that reports how long a cache held this body, or null when no cache is permitted to hold it, as here. Public record responses name the Age header.",
"type": "null"
},
"browser_max_age_seconds": {
"const": 0,
"description": "Seconds a browser or client cache may reuse this body without revalidating; 0, the max-age the Cache-Control header carries.",
"type": "number"
},
"cdn_max_age_seconds": {
"const": 0,
"description": "Seconds the CDN may reuse this body; 0, because CDN-Cache-Control is no-store. Public record responses declare a nonzero value here; measurements never do.",
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 0,
"description": "The upper bound on how old this body can be when it reaches a client, counted from generated_at; 0 for a measurement, and the same number the X-Veridion-Cache-Max-Staleness header carries.",
"type": "number"
},
"policy": {
"const": "no-store",
"description": "The cache contract this response was served under; always no-store for a measurement. Rendered as Cache-Control: no-store, max-age=0 with CDN-Cache-Control and Vercel-CDN-Cache-Control: no-store, and echoed in X-Veridion-Cache-Policy.",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header"
],
"type": "object"
},
"congress": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Nonnegative whole seconds from summary measured_at to response generation; null without a valid summary timestamp."
},
"amount_disclosed_pct": {
"description": "100 times amount_disclosed_rows divided by warehouse_rows, rounded to one decimal place; null for zero warehouse rows. Both counts include superseded rows.",
"type": [
"number",
"null"
]
},
"amount_disclosed_rows": {
"description": "Rows with amount_mid, or both amount_low and amount_high from which the summary derives a midpoint; not a count of exact transaction values. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"as_of": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"by_chamber": {
"additionalProperties": false,
"properties": {
"house": {
"additionalProperties": false,
"properties": {
"amount_disclosed_rows": {
"description": "House rows with amount_mid or both amount bounds; subset of by_chamber.house.rows. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"rows": {
"description": "Rows with warehouse chamber exactly House. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"rows",
"amount_disclosed_rows"
],
"type": "object"
},
"senate": {
"additionalProperties": false,
"properties": {
"amount_disclosed_rows": {
"description": "Senate rows with amount_mid or both amount bounds; subset of by_chamber.senate.rows. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"rows": {
"description": "Rows with warehouse chamber exactly Senate. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"rows",
"amount_disclosed_rows"
],
"type": "object"
}
},
"required": [
"house",
"senate"
],
"type": "object"
},
"deprecated_fields": {
"items": {
"type": "string"
},
"type": "array"
},
"detail": {
"type": [
"string",
"null"
]
},
"document_reference_definitions": {
"additionalProperties": false,
"properties": {
"first_party_verified_rows": {
"minLength": 1,
"type": "string"
},
"first_party_verified_rows_including_superseded": {
"description": "Definition of the retained receipt-marker count, explicitly including superseded rows; carried in the payload so its population does not depend on consulting external documentation.",
"minLength": 1,
"type": "string"
},
"licensed_feed_document_reference_rows": {
"minLength": 1,
"type": "string"
},
"licensed_feed_rows": {
"minLength": 1,
"type": "string"
},
"no_document_reference_rows": {
"minLength": 1,
"type": "string"
}
},
"required": [
"first_party_verified_rows",
"first_party_verified_rows_including_superseded",
"licensed_feed_document_reference_rows",
"licensed_feed_rows",
"no_document_reference_rows"
],
"type": "object"
},
"expected_max_age_seconds": {
"description": "Configured six-hour operational budget for the four-hour summary job, in seconds; not a measured count or contractual service commitment.",
"minimum": 0,
"type": "number"
},
"field_successors": {
"additionalProperties": false,
"properties": {
"first_party_verified_rows": {
"const": "first_party_verified_rows_including_superseded",
"description": "Replacement field for the deprecated first_party_verified_rows alias; both names return the same retained count, not a newly measured live count.",
"type": "string"
},
"licensed_feed_rows": {
"const": "licensed_feed_document_reference_rows",
"type": "string"
}
},
"required": [
"first_party_verified_rows",
"licensed_feed_rows"
],
"type": "object"
},
"first_party_verified_rows": {
"deprecated": true,
"description": "Deprecated compatibility alias for first_party_verified_rows_including_superseded. Retained receipt-linked congressional warehouse rows including superseded rows, not live or served rows; the value is unchanged.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer",
"x-veridion-successor": "first_party_verified_rows_including_superseded"
},
"first_party_verified_rows_including_superseded": {
"description": "Retained congressional warehouse rows marked receipt-linked by Veridion, including superseded rows. The summary asserts equality to the first-party collection-channel count; this is not a live-row or served-row count.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"last_90_days": {
"additionalProperties": false,
"properties": {
"rows": {
"description": "Rows passing the summary's publishable-date predicate with transaction_date or filing_date on or after the summary date minus 90 days. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unique_filings": {
"description": "Distinct valid trimmed HTTPS document URL strings among last_90_days.rows; not distinct document IDs or live URLs. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unique_members": {
"description": "Distinct nonempty canonical member identifiers among last_90_days.rows, using member_slug or the summary's normalized name fallback. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"rows",
"unique_filings",
"unique_members"
],
"type": "object"
},
"licensed_feed_document_reference_rows": {
"description": "Retained congressional warehouse rows without a first-party receipt-link marker but with a trimmed valid HTTPS document URL. Includes superseded rows; the name does not establish collection-channel identity or URL liveness.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"licensed_feed_rows": {
"deprecated": true,
"description": "Deprecated compatibility alias for licensed_feed_document_reference_rows: retained rows without a first-party receipt-link marker but with a valid HTTPS URL, including superseded rows. Not the total licensed-feed population.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer",
"x-veridion-successor": "licensed_feed_document_reference_rows"
},
"measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"no_document_reference_rows": {
"description": "Rows with neither a first-party receipt-link marker nor a valid trimmed HTTPS document URL. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"population_basis": {
"description": "All retained congressional warehouse rows, including superseded rows and all collection channels, counted by the persisted summary at measured_at; not currently live rows or rows served by the API. last_90_days additionally requires publishable dates and a transaction or filing date within the summary's 90-day lookback; it still includes superseded rows. This block excludes OGE and SEC.",
"minLength": 1,
"type": "string"
},
"receipt_linked_rows": {
"deprecated": true,
"description": "Deprecated count of retained rows with a valid trimmed HTTPS document URL, including superseded rows. Not evidence of a first-party retrieval or a resolved URL.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"state": {
"const": "ready",
"type": "string"
},
"threshold_basis": {
"minLength": 1,
"type": "string"
},
"unique_filings": {
"description": "Distinct trimmed HTTPS document URL strings, not distinct document IDs and not a URL-resolution test. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unique_members": {
"description": "Distinct nonempty member identifiers, using member_slug or the summary's normalized member-name fallback. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unique_tickers": {
"description": "Distinct nonempty ticker strings after trimming and uppercasing; not a count of resolved issuers. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"warehouse_rows": {
"description": "All retained congressional warehouse rows across all collection channels. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"population_basis",
"measured_at",
"as_of",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"detail",
"state",
"warehouse_rows",
"unique_members",
"unique_tickers",
"unique_filings",
"first_party_verified_rows_including_superseded",
"first_party_verified_rows",
"licensed_feed_document_reference_rows",
"licensed_feed_rows",
"no_document_reference_rows",
"document_reference_definitions",
"receipt_linked_rows",
"deprecated_fields",
"field_successors",
"amount_disclosed_rows",
"amount_disclosed_pct",
"by_chamber",
"last_90_days"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Nonnegative whole seconds from summary measured_at to response generation; null without a valid summary timestamp."
},
"as_of": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"detail": {
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"description": "Configured six-hour operational budget for the four-hour summary job, in seconds; not a measured count or contractual service commitment.",
"minimum": 0,
"type": "number"
},
"measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"population_basis": {
"description": "All retained congressional warehouse rows, including superseded rows and all collection channels, counted by the persisted summary at measured_at; not currently live rows or rows served by the API. last_90_days additionally requires publishable dates and a transaction or filing date within the summary's 90-day lookback; it still includes superseded rows. This block excludes OGE and SEC.",
"minLength": 1,
"type": "string"
},
"state": {
"const": "stale",
"type": "string"
},
"threshold_basis": {
"minLength": 1,
"type": "string"
}
},
"required": [
"population_basis",
"measured_at",
"as_of",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"detail",
"state"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Nonnegative whole seconds from summary measured_at to response generation; null without a valid summary timestamp."
},
"as_of": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"detail": {
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"description": "Configured six-hour operational budget for the four-hour summary job, in seconds; not a measured count or contractual service commitment.",
"minimum": 0,
"type": "number"
},
"measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"population_basis": {
"description": "All retained congressional warehouse rows, including superseded rows and all collection channels, counted by the persisted summary at measured_at; not currently live rows or rows served by the API. last_90_days additionally requires publishable dates and a transaction or filing date within the summary's 90-day lookback; it still includes superseded rows. This block excludes OGE and SEC.",
"minLength": 1,
"type": "string"
},
"state": {
"const": "unavailable",
"type": "string"
},
"threshold_basis": {
"minLength": 1,
"type": "string"
}
},
"required": [
"population_basis",
"measured_at",
"as_of",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"detail",
"state"
],
"type": "object"
}
]
},
"dataset": {
"const": "veridion-disclosure-api",
"type": "string"
},
"description": {
"minLength": 1,
"type": "string"
},
"exclusions": {
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"generated_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"house_clerk_ptr_completeness": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"description": "Elapsed nonnegative seconds since completion of the selected index reconciliation, not since response generation or the serving read.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"clerk_published_documents": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of published PTR DocIDs across the twelve archive years in the selected completed run, emitted only after equality with its distinct indexed DocID count is verified."
},
"detail": {
"type": "null"
},
"documents_held": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of the selected run's held-document counts. A held PDF need not yield a row the API admits; use documents_served for that stage."
},
"documents_served": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Distinct indexed House PTR DocIDs with an active house_clerk version at served_measured_at, restricted to this reconciliation run and, for a yearly entry, its archive year. Null when any stage cannot be verified."
},
"expected_max_age_seconds": {
"const": 172800,
"description": "Configured maximum reconciliation age in seconds before document counts are withheld.",
"type": "number"
},
"held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_held divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Acquisition coverage, not what disclosures returns. Null when the complete funnel cannot be measured."
},
"measured_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"measurement_definition": {
"minLength": 1,
"type": "string"
},
"missing_document_ids_retained": {
"const": true,
"type": "boolean"
},
"rate_basis": {
"additionalProperties": false,
"description": "Both rates divide their named document count by the published count in this object; ratios are 0 to 1, not percentages.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate"
],
"type": "object"
},
"rows_examined": {
"description": "Sum of indexed PTR DocIDs examined across the selected run's archive years, asserted to match the published-document total; not transaction rows.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"run_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "The completed reconciliation selected by the shared funnel RPC; every archive-year count uses this run, never a union of runs."
},
"series": {
"additionalProperties": false,
"description": "Private append-only reconciliation-run history exposed as document counts and explicit gaps. Historical replays are labeled separately from contemporaneous captures.",
"properties": {
"entries": {
"description": "One entry per completed run, oldest first. Absent entries mark gaps explicitly; no interpolation or silent zero filling.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"basis": {
"description": "completion_capture pins the visible generation in the finalization transaction; retained_generation_replay derives a past point from the greatest retained generation activated by completed_at, not from current active rows.",
"enum": [
"completion_capture",
"retained_generation_replay"
],
"type": "string"
},
"clerk_published_documents": {
"description": "Distinct type-P DocIDs across this completed run's twelve annual Clerk indexes, verified equal to the summed annual counts.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"completed_at": {
"description": "The run's first succeeded finalization event timestamp; the series is ordered by this instant, then run_id.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"computed_at": {
"description": "Actual instant the private ledger point was computed, including today's instant for a historical replay; never backdated to completion.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"documents_held": {
"description": "Sum of that run's immutable annual held-document counts, not today's acquisition count.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"documents_served": {
"description": "Distinct indexed House DocIDs whose row-version interval contains snapshot_generation; repeated rows for one document count once.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"held_rate": {
"description": "documents_held / clerk_published_documents, to twelve fractional places; the integer counts are authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rate_basis": {
"additionalProperties": false,
"description": "Three distinct ratios: held/published, served/published and served/held. Each references counts in this same entry.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_of_held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"served_of_held_rate"
],
"type": "object"
},
"reason": {
"description": "Null because all counts were derived; absent entries carry an explanation instead.",
"type": "null"
},
"run_id": {
"description": "Completed twelve-year reconciliation run identified by its immutable finalization event.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"served_of_held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served / documents_held, to twelve fractional places; null when no documents were held."
},
"served_rate": {
"description": "documents_served / clerk_published_documents, to twelve fractional places; the integer counts are authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"snapshot_generation": {
"description": "Retained temporal generation used for the served-document intersection. Later generations do not change this point.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"state": {
"const": "measured",
"description": "All three counts were derived and stored together; not a partial historical estimate.",
"type": "string"
}
},
"required": [
"run_id",
"completed_at",
"rate_basis",
"state",
"computed_at",
"snapshot_generation",
"basis",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"served_of_held_rate",
"reason"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"basis": {
"description": "No measurement or replay basis was established.",
"type": "null"
},
"clerk_published_documents": {
"description": "Withheld with the other stages rather than presenting a partial funnel.",
"type": "null"
},
"completed_at": {
"description": "The run's first succeeded finalization event timestamp; the series is ordered by this instant, then run_id.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"computed_at": {
"description": "No computation instant is invented for an absent point.",
"type": "null"
},
"documents_held": {
"description": "Withheld with the other stages rather than presenting a partial funnel.",
"type": "null"
},
"documents_served": {
"description": "Not derivable; current active versions are never substituted for past served counts.",
"type": "null"
},
"held_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"rate_basis": {
"additionalProperties": false,
"description": "Three distinct ratios: held/published, served/published and served/held. Each references counts in this same entry.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_of_held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"served_of_held_rate"
],
"type": "object"
},
"reason": {
"description": "Why the completed run has no complete, derivable ledger point.",
"minLength": 1,
"type": "string"
},
"run_id": {
"description": "Completed twelve-year reconciliation run identified by its immutable finalization event.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"served_of_held_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"served_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"snapshot_generation": {
"description": "No retained serving generation was established for this point.",
"type": "null"
},
"state": {
"const": "absent",
"description": "The run completed, but no complete point is derivable or recorded; never plotted as zero.",
"type": "string"
}
},
"required": [
"run_id",
"completed_at",
"rate_basis",
"state",
"computed_at",
"snapshot_generation",
"basis",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"served_of_held_rate",
"reason"
],
"type": "object"
}
]
},
"type": "array"
},
"reason": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "Series-level read or validation refusal; null for a successful read, even if some historical entries are absent."
},
"state": {
"description": "Whether the series reader succeeded, not whether the live funnel is fresh or every historical run has a point.",
"enum": [
"measured",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"entries",
"reason"
],
"type": "object"
},
"served_measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Database statement instant for the active-version count. measured_at separately records when the held/index reconciliation completed; these instants are not interchangeable."
},
"served_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Measures API document coverage, not held coverage. Null when the complete funnel cannot be measured."
},
"source_year_end": {
"const": 2026,
"description": "Last configured Clerk archive year included in this complete-run measurement.",
"type": "number"
},
"source_year_start": {
"const": 2015,
"description": "First configured Clerk archive year included in this complete-run measurement.",
"type": "number"
},
"source_years": {
"const": 12,
"description": "Configured number of required archive years, source_year_end minus source_year_start plus one; all must reconcile before counts publish.",
"type": "number"
},
"state": {
"const": "measured",
"type": "string"
},
"years": {
"items": {
"additionalProperties": false,
"properties": {
"clerk_published_documents": {
"description": "PTR DocIDs on this archive year's official index in the selected completed run. Denominator is filed documents, not warehouse rows or all historical index runs.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"detail": {
"type": "null"
},
"documents_held": {
"description": "Indexed PTR DocIDs matched to held documents in this archive year and run, regardless of whether any transaction row is served.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"documents_missing": {
"description": "clerk_published_documents minus documents_held in this archive year and run, reconciled to the missing-reason document counts.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"documents_served": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Distinct indexed House PTR DocIDs with an active house_clerk version at served_measured_at, restricted to this reconciliation run and, for a yearly entry, its archive year. Null when any stage cannot be verified."
},
"held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_held divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Acquisition coverage, not what disclosures returns. Null when the complete funnel cannot be measured."
},
"missing_by_classification": {
"additionalProperties": false,
"properties": {
"attempted_failed": {
"description": "Missing indexed PTR DocIDs with recorded retrieval attempts and no held match in the selected reconciliation year. Document count; no superseded-row filter applies.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"never_attempted": {
"description": "Missing indexed PTR DocIDs with no recorded retrieval attempt in the selected reconciliation year. Document count, not warehouse row count; no superseded-row filter applies.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"present_under_different_identifier": {
"description": "Missing indexed PTR DocIDs classified by the reconciliation as held under another identifier for this archive year. Document count, not admitted rows; no superseded-row filter applies.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"never_attempted",
"attempted_failed",
"present_under_different_identifier"
],
"type": "object"
},
"rate": {
"description": "documents_held divided by clerk_published_documents for this archive year. Counts are authoritative; a value of 1 is emitted only when documents_missing is exactly zero.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rate_basis": {
"additionalProperties": false,
"description": "The legacy rate is a held-rate alias, not a served rate; every divisor and dividend is named here.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"rate"
],
"type": "object"
},
"rows_examined": {
"description": "Indexed PTR DocIDs examined for this archive year in the selected completed run; asserted equal to clerk_published_documents, not parsed transaction rows.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"served_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Measures API document coverage, not held coverage. Null when the complete funnel cannot be measured."
},
"state": {
"const": "measured",
"type": "string"
},
"year": {
"description": "Annual Clerk archive year selected in the completed reconciliation, not the transaction year or filing-date bucket.",
"maximum": 2026,
"minimum": 2015,
"type": "integer"
}
},
"required": [
"year",
"state",
"rows_examined",
"clerk_published_documents",
"documents_held",
"documents_missing",
"documents_served",
"held_rate",
"served_rate",
"rate_basis",
"rate",
"missing_by_classification",
"detail"
],
"type": "object"
},
"maxItems": 12,
"minItems": 12,
"type": "array"
}
},
"required": [
"series",
"run_id",
"served_measured_at",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"rate_basis",
"state",
"measured_at",
"age_seconds",
"expected_max_age_seconds",
"rows_examined",
"source_year_start",
"source_year_end",
"source_years",
"measurement_definition",
"missing_document_ids_retained",
"years",
"detail"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"type": "null"
},
"clerk_published_documents": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of published PTR DocIDs across the twelve archive years in the selected completed run, emitted only after equality with its distinct indexed DocID count is verified."
},
"detail": {
"minLength": 1,
"type": "string"
},
"documents_held": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of the selected run's held-document counts. A held PDF need not yield a row the API admits; use documents_served for that stage."
},
"documents_served": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Distinct indexed House PTR DocIDs with an active house_clerk version at served_measured_at, restricted to this reconciliation run and, for a yearly entry, its archive year. Null when any stage cannot be verified."
},
"expected_max_age_seconds": {
"const": 172800,
"description": "Configured maximum reconciliation age in seconds, even when no eligible measurement is available.",
"type": "number"
},
"held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_held divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Acquisition coverage, not what disclosures returns. Null when the complete funnel cannot be measured."
},
"measured_at": {
"type": "null"
},
"measurement_definition": {
"minLength": 1,
"type": "string"
},
"missing_document_ids_retained": {
"type": "null"
},
"rate_basis": {
"additionalProperties": false,
"description": "Both rates divide their named document count by the published count in this object; ratios are 0 to 1, not percentages.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate"
],
"type": "object"
},
"rows_examined": {
"const": 0,
"description": "No complete verified reconciliation examination; sentinel zero is not a measured empty index. Funnel counts and rates are null.",
"type": "number"
},
"run_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "The completed reconciliation selected by the shared funnel RPC; every archive-year count uses this run, never a union of runs."
},
"series": {
"additionalProperties": false,
"description": "Private append-only reconciliation-run history exposed as document counts and explicit gaps. Historical replays are labeled separately from contemporaneous captures.",
"properties": {
"entries": {
"description": "One entry per completed run, oldest first. Absent entries mark gaps explicitly; no interpolation or silent zero filling.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"basis": {
"description": "completion_capture pins the visible generation in the finalization transaction; retained_generation_replay derives a past point from the greatest retained generation activated by completed_at, not from current active rows.",
"enum": [
"completion_capture",
"retained_generation_replay"
],
"type": "string"
},
"clerk_published_documents": {
"description": "Distinct type-P DocIDs across this completed run's twelve annual Clerk indexes, verified equal to the summed annual counts.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"completed_at": {
"description": "The run's first succeeded finalization event timestamp; the series is ordered by this instant, then run_id.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"computed_at": {
"description": "Actual instant the private ledger point was computed, including today's instant for a historical replay; never backdated to completion.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"documents_held": {
"description": "Sum of that run's immutable annual held-document counts, not today's acquisition count.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"documents_served": {
"description": "Distinct indexed House DocIDs whose row-version interval contains snapshot_generation; repeated rows for one document count once.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"held_rate": {
"description": "documents_held / clerk_published_documents, to twelve fractional places; the integer counts are authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rate_basis": {
"additionalProperties": false,
"description": "Three distinct ratios: held/published, served/published and served/held. Each references counts in this same entry.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_of_held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"served_of_held_rate"
],
"type": "object"
},
"reason": {
"description": "Null because all counts were derived; absent entries carry an explanation instead.",
"type": "null"
},
"run_id": {
"description": "Completed twelve-year reconciliation run identified by its immutable finalization event.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"served_of_held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served / documents_held, to twelve fractional places; null when no documents were held."
},
"served_rate": {
"description": "documents_served / clerk_published_documents, to twelve fractional places; the integer counts are authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"snapshot_generation": {
"description": "Retained temporal generation used for the served-document intersection. Later generations do not change this point.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"state": {
"const": "measured",
"description": "All three counts were derived and stored together; not a partial historical estimate.",
"type": "string"
}
},
"required": [
"run_id",
"completed_at",
"rate_basis",
"state",
"computed_at",
"snapshot_generation",
"basis",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"served_of_held_rate",
"reason"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"basis": {
"description": "No measurement or replay basis was established.",
"type": "null"
},
"clerk_published_documents": {
"description": "Withheld with the other stages rather than presenting a partial funnel.",
"type": "null"
},
"completed_at": {
"description": "The run's first succeeded finalization event timestamp; the series is ordered by this instant, then run_id.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"type": "string"
},
"computed_at": {
"description": "No computation instant is invented for an absent point.",
"type": "null"
},
"documents_held": {
"description": "Withheld with the other stages rather than presenting a partial funnel.",
"type": "null"
},
"documents_served": {
"description": "Not derivable; current active versions are never substituted for past served counts.",
"type": "null"
},
"held_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"rate_basis": {
"additionalProperties": false,
"description": "Three distinct ratios: held/published, served/published and served/held. Each references counts in this same entry.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_of_held_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "documents_held",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Division rule for this series entry, not a different run or the current corpus.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling integer document count used as divisor; zero withholds the rate.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling integer document count used as dividend.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"served_of_held_rate"
],
"type": "object"
},
"reason": {
"description": "Why the completed run has no complete, derivable ledger point.",
"minLength": 1,
"type": "string"
},
"run_id": {
"description": "Completed twelve-year reconciliation run identified by its immutable finalization event.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"served_of_held_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"served_rate": {
"description": "No rate is emitted for an absent point.",
"type": "null"
},
"snapshot_generation": {
"description": "No retained serving generation was established for this point.",
"type": "null"
},
"state": {
"const": "absent",
"description": "The run completed, but no complete point is derivable or recorded; never plotted as zero.",
"type": "string"
}
},
"required": [
"run_id",
"completed_at",
"rate_basis",
"state",
"computed_at",
"snapshot_generation",
"basis",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"served_of_held_rate",
"reason"
],
"type": "object"
}
]
},
"type": "array"
},
"reason": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "Series-level read or validation refusal; null for a successful read, even if some historical entries are absent."
},
"state": {
"description": "Whether the series reader succeeded, not whether the live funnel is fresh or every historical run has a point.",
"enum": [
"measured",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"entries",
"reason"
],
"type": "object"
},
"served_measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Database statement instant for the active-version count. measured_at separately records when the held/index reconciliation completed; these instants are not interchangeable."
},
"served_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Measures API document coverage, not held coverage. Null when the complete funnel cannot be measured."
},
"source_year_end": {
"const": 2026,
"description": "Last configured archive year required for a complete reconciliation, not proof that its index was fetched.",
"type": "number"
},
"source_year_start": {
"const": 2015,
"description": "First configured archive year required for a complete reconciliation, not proof that its index was fetched.",
"type": "number"
},
"source_years": {
"const": 12,
"description": "Configured required archive-year count, source_year_end minus source_year_start plus one; not successfully measured years.",
"type": "number"
},
"state": {
"const": "unevaluated",
"type": "string"
},
"years": {
"items": {
"additionalProperties": false,
"properties": {
"clerk_published_documents": {
"type": "null"
},
"detail": {
"minLength": 1,
"type": "string"
},
"documents_held": {
"type": "null"
},
"documents_missing": {
"type": "null"
},
"documents_served": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Distinct indexed House PTR DocIDs with an active house_clerk version at served_measured_at, restricted to this reconciliation run and, for a yearly entry, its archive year. Null when any stage cannot be verified."
},
"held_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_held divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Acquisition coverage, not what disclosures returns. Null when the complete funnel cannot be measured."
},
"missing_by_classification": {
"type": "null"
},
"rate": {
"type": "null"
},
"rate_basis": {
"additionalProperties": false,
"description": "The legacy rate is a held-rate alias, not a served rate; every divisor and dividend is named here.",
"properties": {
"held_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_held",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
},
"served_rate": {
"additionalProperties": false,
"description": "Machine-readable division rule; both referenced fields occur in this same coverage object.",
"properties": {
"denominator": {
"const": "clerk_published_documents",
"description": "Name of the sibling Clerk-index document count used as the denominator, never the held count.",
"type": "string"
},
"numerator": {
"const": "documents_served",
"description": "Name of the sibling document count divided to produce this rate.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"held_rate",
"served_rate",
"rate"
],
"type": "object"
},
"rows_examined": {
"const": 0,
"description": "No verified document examination for this archive year; sentinel zero is not a measured empty index. Document counts are null.",
"type": "number"
},
"served_rate": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "documents_served divided by clerk_published_documents, to twelve fractional places; the integer counts are authoritative. Measures API document coverage, not held coverage. Null when the complete funnel cannot be measured."
},
"state": {
"const": "unevaluated",
"type": "string"
},
"year": {
"description": "Configured Clerk archive year awaiting measurement, not an observed transaction or filing year.",
"maximum": 2026,
"minimum": 2015,
"type": "integer"
}
},
"required": [
"year",
"state",
"rows_examined",
"clerk_published_documents",
"documents_held",
"documents_missing",
"documents_served",
"held_rate",
"served_rate",
"rate_basis",
"rate",
"missing_by_classification",
"detail"
],
"type": "object"
},
"maxItems": 12,
"minItems": 12,
"type": "array"
}
},
"required": [
"series",
"run_id",
"served_measured_at",
"clerk_published_documents",
"documents_held",
"documents_served",
"held_rate",
"served_rate",
"rate_basis",
"state",
"measured_at",
"age_seconds",
"expected_max_age_seconds",
"rows_examined",
"source_year_start",
"source_year_end",
"source_years",
"measurement_definition",
"missing_document_ids_retained",
"years",
"detail"
],
"type": "object"
}
],
"description": "Held and served coverage from one completed House Clerk PTR index run, both read through the same funnel helper as /data-api. Aggregate rates are withheld if archive-year totals disagree with distinct indexed documents. These are archive-year scopes, not filing-date buckets. Every rate names its sibling numerator and denominator in rate_basis. House PTR type P only, for the stated archive years; not Senate eFD, other filing types, or a claim that the Clerk's index is complete. measurement_definition carries this boundary even when counts are unavailable."
},
"notice": {
"minLength": 1,
"type": "string"
},
"provenance": {
"additionalProperties": false,
"properties": {
"by_collection_channel": {
"additionalProperties": false,
"properties": {
"house_clerk_direct_ocr": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows carrying the first-party House parser collection label. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
},
"licensed_bulk_feed": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of the two licensed-provider collection-label counts; null if either read failed. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
},
"senate_efd_direct": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows carrying the first-party Senate eFD collection label. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
}
},
"required": [
"house_clerk_direct_ocr",
"senate_efd_direct",
"licensed_bulk_feed"
],
"type": "object"
},
"by_receipt_office": {
"additionalProperties": false,
"properties": {
"us_house_clerk": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows whose pdf_url contains disclosures-clerk.house.gov, case-insensitive. Substring test only, not validated hostname, first-party retrieval or URL resolution. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
},
"us_senate_efd": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows whose pdf_url contains senate.gov, case-insensitive. Substring test only, not validated hostname, first-party retrieval or URL resolution. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
}
},
"required": [
"us_house_clerk",
"us_senate_efd"
],
"type": "object"
},
"deprecated_fields": {
"items": {
"type": "string"
},
"type": "array"
},
"field_successors": {
"additionalProperties": false,
"properties": {
"third_party_rows": {
"const": "licensed_feed_rows_total",
"type": "string"
}
},
"required": [
"third_party_rows"
],
"type": "object"
},
"licensed_feed_rows_total": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of the two licensed-provider collection-label counts, including superseded rows and rows without a document URL. Separate retained-warehouse reads, not a served count; null if either read failed."
},
"measured_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"population_basis": {
"description": "All retained congressional warehouse rows, including superseded rows, counted by current collection labels and URL substrings in separate reads at measured_at. These are not live-row or served-row counts, not an atomic snapshot, and not a receipt-resolution test. OGE and SEC are outside this population.",
"minLength": 1,
"type": "string"
},
"self_collected_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Sum of House parser and Senate eFD collection-label counts; null if either read failed. This is collection provenance, not serving admission. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
},
"state": {
"enum": [
"measured",
"unavailable"
],
"type": "string"
},
"third_party_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"deprecated": true,
"description": "Deprecated compatibility alias for licensed_feed_rows_total: sum of the licensed-provider collection-label counts, including superseded rows; null if either read failed. Not a served count.",
"x-veridion-successor": "licensed_feed_rows_total"
},
"total_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "All retained congressional warehouse rows across all collection channels. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
},
"unattributed_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Maximum of zero and total_rows minus self_collected_rows minus licensed_feed_rows_total; null if any input is unavailable. Arithmetic remainder, not a separate label census. Includes superseded congressional warehouse rows; separate exact-count read, null on read failure. Not a served count."
}
},
"required": [
"state",
"population_basis",
"total_rows",
"measured_at",
"by_collection_channel",
"self_collected_rows",
"licensed_feed_rows_total",
"third_party_rows",
"unattributed_rows",
"deprecated_fields",
"field_successors",
"by_receipt_office"
],
"type": "object"
},
"provenance_field_coverage": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"detail": {
"type": "null"
},
"fields": {
"items": {
"additionalProperties": false,
"properties": {
"examined": {
"description": "All active serving versions for this source with valid_to unset. The rate denominator; separate from warehouse history including superseded rows.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"field": {
"const": "source_line_number",
"type": "string"
},
"null_interpretation": {
"enum": [
"gap",
"not_applicable"
],
"type": "string"
},
"populated": {
"description": "Active serving versions for this source with source_line_number non-null. Closed versions are excluded; counts a field, not a resolved receipt URL.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"rate": {
"description": "populated divided by examined. The integer denominator and numerator remain authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rate_basis": {
"additionalProperties": false,
"description": "Names the counts behind each published field-coverage rate in this same object.",
"properties": {
"rate": {
"additionalProperties": false,
"description": "Machine-readable division rule for the sibling rate.",
"properties": {
"denominator": {
"const": "examined",
"description": "The examined sibling count supplies this rate's denominator.",
"type": "string"
},
"numerator": {
"const": "populated",
"description": "The populated sibling count supplies this rate's numerator.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"rate"
],
"type": "object"
},
"reason": {
"minLength": 1,
"type": "string"
},
"source_system": {
"enum": [
"house_clerk",
"senate_efd"
],
"type": "string"
}
},
"required": [
"source_system",
"field",
"populated",
"examined",
"rate",
"null_interpretation",
"rate_basis",
"reason"
],
"type": "object"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"house_clerk_gap_classes": {
"items": {
"additionalProperties": false,
"properties": {
"affected_rows": {
"description": "Active House serving rows with null source_line_number in this reason class: fallback parser or named parser output. Closed versions excluded; both classes must sum to the House field gap.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"classification": {
"minLength": 1,
"type": "string"
},
"reason": {
"enum": [
"warehouse_fallback_without_line_provenance",
"parser_output_without_line_provenance"
],
"type": "string"
}
},
"required": [
"reason",
"affected_rows",
"classification"
],
"type": "object"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"house_clerk_gap_register": {
"items": {
"additionalProperties": false,
"properties": {
"affected_rows": {
"description": "Active House serving rows in the complete bounded parser-gap read for this document, with a named non-fallback parser but null source_line_number; closed versions excluded.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"document_id": {
"minLength": 1,
"type": "string"
},
"parser_versions": {
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 1,
"type": "array"
},
"reason": {
"const": "parser_output_without_line_provenance",
"type": "string"
}
},
"required": [
"document_id",
"affected_rows",
"parser_versions",
"reason"
],
"type": "object"
},
"type": "array"
},
"measured_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"population_basis": {
"description": "Active House Clerk and Senate eFD serving versions with valid_to unset; closed versions are excluded. Counts are separate reads, not a generation-pinned snapshot. The bounded parser-gap register must contain every counted parser gap or rates are withheld. These counts do not test URL resolution.",
"minLength": 1,
"type": "string"
},
"rows_examined": {
"description": "Sum of the House and Senate active-version examined counts. OGE, SEC and closed temporal versions are excluded; not independent document count.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"state": {
"const": "measured",
"type": "string"
}
},
"required": [
"state",
"population_basis",
"measured_at",
"rows_examined",
"fields",
"house_clerk_gap_classes",
"house_clerk_gap_register",
"detail"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"detail": {
"minLength": 1,
"type": "string"
},
"fields": {
"items": {
"additionalProperties": false,
"properties": {
"examined": {
"description": "All active serving versions for this source with valid_to unset. The rate denominator; separate from warehouse history including superseded rows.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"field": {
"const": "source_line_number",
"type": "string"
},
"null_interpretation": {
"enum": [
"gap",
"not_applicable"
],
"type": "string"
},
"populated": {
"description": "Active serving versions for this source with source_line_number non-null. Closed versions are excluded; counts a field, not a resolved receipt URL.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"rate": {
"description": "populated divided by examined. The integer denominator and numerator remain authoritative.",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"rate_basis": {
"additionalProperties": false,
"description": "Names the counts behind each published field-coverage rate in this same object.",
"properties": {
"rate": {
"additionalProperties": false,
"description": "Machine-readable division rule for the sibling rate.",
"properties": {
"denominator": {
"const": "examined",
"description": "The examined sibling count supplies this rate's denominator.",
"type": "string"
},
"numerator": {
"const": "populated",
"description": "The populated sibling count supplies this rate's numerator.",
"type": "string"
}
},
"required": [
"numerator",
"denominator"
],
"type": "object"
}
},
"required": [
"rate"
],
"type": "object"
},
"reason": {
"minLength": 1,
"type": "string"
},
"source_system": {
"enum": [
"house_clerk",
"senate_efd"
],
"type": "string"
}
},
"required": [
"source_system",
"field",
"populated",
"examined",
"rate",
"null_interpretation",
"rate_basis",
"reason"
],
"type": "object"
},
"maxItems": 0,
"minItems": 0,
"type": "array"
},
"house_clerk_gap_classes": {
"items": {
"additionalProperties": false,
"properties": {
"affected_rows": {
"description": "Active House serving rows with null source_line_number in this reason class: fallback parser or named parser output. Closed versions excluded; both classes must sum to the House field gap.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"classification": {
"minLength": 1,
"type": "string"
},
"reason": {
"enum": [
"warehouse_fallback_without_line_provenance",
"parser_output_without_line_provenance"
],
"type": "string"
}
},
"required": [
"reason",
"affected_rows",
"classification"
],
"type": "object"
},
"maxItems": 0,
"minItems": 0,
"type": "array"
},
"house_clerk_gap_register": {
"items": {
"additionalProperties": false,
"properties": {
"affected_rows": {
"description": "Active House serving rows in the complete bounded parser-gap read for this document, with a named non-fallback parser but null source_line_number; closed versions excluded.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"document_id": {
"minLength": 1,
"type": "string"
},
"parser_versions": {
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 1,
"type": "array"
},
"reason": {
"const": "parser_output_without_line_provenance",
"type": "string"
}
},
"required": [
"document_id",
"affected_rows",
"parser_versions",
"reason"
],
"type": "object"
},
"maxItems": 0,
"minItems": 0,
"type": "array"
},
"measured_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"population_basis": {
"description": "Active House Clerk and Senate eFD serving versions with valid_to unset; closed versions are excluded. Counts are separate reads, not a generation-pinned snapshot. The bounded parser-gap register must contain every counted parser gap or rates are withheld. These counts do not test URL resolution.",
"minLength": 1,
"type": "string"
},
"rows_examined": {
"description": "Active House plus Senate row counts when both were measured before a later validation failed; zero is also the legacy no-examination sentinel, not evidence of an empty corpus. Rates are withheld.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"state": {
"const": "unavailable",
"type": "string"
}
},
"required": [
"state",
"population_basis",
"measured_at",
"rows_examined",
"fields",
"house_clerk_gap_classes",
"house_clerk_gap_register",
"detail"
],
"type": "object"
}
]
},
"provenance_reconciliation": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"detail": {
"type": "null"
},
"licensed_feed_document_reference_rows": {
"description": "Summary count without a first-party receipt-link marker but with a valid HTTPS URL, carried after arithmetic reconciliation; not a row-level collection-channel match. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"licensed_feed_rows_total": {
"description": "Collection-channel licensed total carried from provenance after the two partitions reconcile; independently timed measurement. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"licensed_feed_rows_without_document_reference": {
"description": "licensed_feed_rows_total minus licensed_feed_document_reference_rows after partition checks; an arithmetic bridge, not a joined row census. Includes superseded warehouse rows at the summary measurement, not only live or served rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"licensed_feed_rows_without_document_reference_pct_of_licensed_feed": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "100 times licensed_feed_rows_without_document_reference divided by licensed_feed_rows_total, rounded to one decimal place; null for zero denominator. Both include superseded rows."
},
"licensed_feed_rows_without_document_reference_pct_of_warehouse": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "100 times licensed_feed_rows_without_document_reference divided by rows_examined, rounded to one decimal place; null for zero denominator. Both include superseded rows."
},
"measurement_timestamps": {
"additionalProperties": false,
"properties": {
"collection_ownership": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"receipt_reference": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
}
},
"required": [
"receipt_reference",
"collection_ownership"
],
"type": "object"
},
"population_basis": {
"description": "Arithmetic reconciliation of the two retained congressional warehouse partitions, both including superseded rows, at their separately reported measurement timestamps. Matching totals are not proof of row-level identity or an explanation of the warehouse-to-serving gap. Unavailable bridge counts are withheld.",
"minLength": 1,
"type": "string"
},
"reason": {
"minLength": 1,
"type": "string"
},
"relationships": {
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 2,
"type": "array"
},
"rows_examined": {
"description": "Retained congressional warehouse rows in the collection-channel total, including superseded rows, after arithmetic agreement with the separately timed summary; not a row-level join.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"state": {
"const": "reconciled",
"type": "string"
}
},
"required": [
"state",
"population_basis",
"rows_examined",
"measurement_timestamps",
"licensed_feed_rows_total",
"licensed_feed_document_reference_rows",
"licensed_feed_rows_without_document_reference",
"licensed_feed_rows_without_document_reference_pct_of_licensed_feed",
"licensed_feed_rows_without_document_reference_pct_of_warehouse",
"reason",
"relationships",
"detail"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"detail": {
"minLength": 1,
"type": "string"
},
"measurement_timestamps": {
"additionalProperties": false,
"properties": {
"collection_ownership": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"receipt_reference": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"receipt_reference",
"collection_ownership"
],
"type": "object"
},
"population_basis": {
"description": "Arithmetic reconciliation of the two retained congressional warehouse partitions, both including superseded rows, at their separately reported measurement timestamps. Matching totals are not proof of row-level identity or an explanation of the warehouse-to-serving gap. Unavailable bridge counts are withheld.",
"minLength": 1,
"type": "string"
},
"rows_examined": {
"description": "Available retained collection total, else available summary warehouse total, else the legacy zero sentinel for an unmeasured population. Includes superseded rows when measured; zero here does not establish an empty warehouse.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"state": {
"const": "unavailable",
"type": "string"
}
},
"required": [
"state",
"population_basis",
"rows_examined",
"measurement_timestamps",
"detail"
],
"type": "object"
}
]
},
"request_access": {
"format": "uri",
"type": "string"
},
"serving": {
"additionalProperties": false,
"description": "Rows /v1/disclosures returns right now, counted from the serving view at read time after every exclusion. Not the count of rows that qualify. Every count is nullable because the measurement reports unavailable rather than guessing when it cannot reach the view.",
"properties": {
"basis": {
"minLength": 1,
"type": "string"
},
"by_chamber": {
"additionalProperties": false,
"properties": {
"executive": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose chamber is executive; closed versions excluded, separate exact-count read, null if unavailable."
},
"house": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose chamber is house; closed versions excluded, separate exact-count read, null if unavailable."
},
"senate": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose chamber is senate; closed versions excluded, separate exact-count read, null if unavailable."
}
},
"required": [
"house",
"senate",
"executive"
],
"type": "object"
},
"by_source_system": {
"additionalProperties": false,
"properties": {
"house_clerk": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose source_system is house_clerk; closed versions excluded, separate exact-count read, null if unavailable."
},
"oge": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose source_system is oge; closed versions excluded, separate exact-count read, null if unavailable."
},
"senate_efd": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Active serving versions whose source_system is senate_efd; closed versions excluded, separate exact-count read, null if unavailable."
}
},
"required": [
"house_clerk",
"senate_efd",
"oge"
],
"type": "object"
},
"measured_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"state": {
"enum": [
"measured",
"unavailable"
],
"type": "string"
},
"total_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Exact count of active serving versions (valid_to is null), excluding closed versions. Separate read from the source and chamber counts, not a generation-pinned census; null if unavailable."
}
},
"required": [
"state",
"measured_at",
"basis",
"total_rows",
"by_source_system",
"by_chamber"
],
"type": "object"
},
"sources_of_record": {
"items": {
"additionalProperties": false,
"properties": {
"office": {
"minLength": 1,
"type": "string"
},
"publishing": {
"description": "Whether this office publishes rows into v1 today. sec_edgar is listed and false: it is the declared scope boundary, not an omission. A reader should learn the boundary from the response rather than infer it from a query that returns nothing.",
"type": "boolean"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"office",
"url",
"publishing"
],
"type": "object"
},
"type": "array"
},
"version": {
"const": "v1-preview",
"type": "string"
}
},
"required": [
"dataset",
"version",
"generated_at",
"cache",
"description",
"serving",
"congress",
"provenance",
"provenance_field_coverage",
"house_clerk_ptr_completeness",
"provenance_reconciliation",
"sources_of_record",
"exclusions",
"notice",
"request_access"
],
"type": "object"
}
},
{
"description": "Every observed version of one disclosure, oldest first. The change stream is append-only, so an amendment supersedes rather than overwrites -- the before and after of a restated filing are both here, each with its own change block and receipt.url. restated=true states that content changed after first publication; report what changed and when, never why.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"disclosure_id": {
"description": "Permanent disclosure_id from search_disclosures. Identifiers survive restatement and are never reused.",
"type": "string"
}
},
"required": [
"disclosure_id"
],
"type": "object"
},
"name": "get_disclosure_history",
"outputSchema": {
"additionalProperties": false,
"properties": {
"access": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 25,
"type": "number"
},
"no_key_required": {
"const": true,
"type": "boolean"
},
"requests_per_hour": {
"const": 60,
"type": "number"
},
"tier": {
"const": "free",
"type": "string"
},
"upgrade": {
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 1000,
"type": "number"
},
"request_a_key": {
"format": "uri",
"type": "string"
}
},
"required": [
"max_rows_per_request",
"request_a_key"
],
"type": "object"
}
},
"required": [
"tier",
"max_rows_per_request",
"requests_per_hour",
"no_key_required",
"upgrade"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 1000,
"type": "number"
},
"tier": {
"enum": [
"free",
"developer",
"evaluator"
],
"type": "string"
}
},
"required": [
"tier",
"max_rows_per_request"
],
"type": "object"
}
]
},
"cache": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"age_header": {
"const": "Age",
"type": "string"
},
"browser_max_age_seconds": {
"const": 0,
"type": "number"
},
"cdn_max_age_seconds": {
"const": 300,
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 300,
"type": "number"
},
"freshness_reference": {
"additionalProperties": false,
"properties": {
"basis": {
"minLength": 1,
"type": "string"
},
"delivery_max_staleness_seconds": {
"const": 300,
"type": "number"
},
"delivery_to_source_threshold_ratio": {
"const": "1/72",
"type": "string"
},
"source": {
"const": "congress",
"type": "string"
},
"source_expected_max_age_seconds": {
"const": 21600,
"type": "number"
}
},
"required": [
"source",
"source_expected_max_age_seconds",
"delivery_max_staleness_seconds",
"delivery_to_source_threshold_ratio",
"basis"
],
"type": "object"
},
"policy": {
"const": "public",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header",
"freshness_reference"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"age_header": {
"type": "null"
},
"browser_max_age_seconds": {
"const": 0,
"type": "number"
},
"cdn_max_age_seconds": {
"const": 0,
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 0,
"type": "number"
},
"policy": {
"const": "private-no-store",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header"
],
"type": "object"
}
]
},
"data": {
"description": "Every observed version of this disclosure_id, oldest first. Each entry carries its own change block (upsert or supersede, active or withdrawn) and version_id. The last entry is the current state.",
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"additionalProperties": false,
"description": "The bounded range exactly as disclosed. A missing amount is never estimated.",
"properties": {
"basis": {
"const": "bounded_range_as_disclosed",
"description": "States what the amount fields are: the bounded range as the filing disclosed it. The only basis served today; a future exact-amount source would carry its own.",
"type": "string"
},
"currency": {
"const": "USD",
"description": "Always USD. Every disclosure form Veridion serves reports in dollars.",
"type": "string"
},
"midpoint": {
"description": "Veridion's arithmetic midpoint of range_low and range_high, rounded to the dollar. It is a convenience, not a disclosed value: the filer reported a band, never a figure. Absent when the band is open-ended (\"over\", \"more than\", \"less than\" and their variants) because a midpoint of an unbounded range is invented. Use it only with the range shown beside it.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"range_high": {
"description": "Upper bound of the disclosed band, in whole USD. For an open-ended band such as \"over $50,000,000\" this is the stated threshold, and midpoint is absent.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"range_low": {
"description": "Lower bound of the band the filing discloses, in whole USD, as printed on the form ($1,001 to $15,000 serves 1001).",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"verbatim_text": {
"description": "The amount text exactly as it appears on the filing, before any parsing. When range_low and range_high disagree with this text, this text is the filing.",
"minLength": 1,
"type": "string"
}
},
"required": [
"range_low",
"range_high",
"currency",
"basis",
"verbatim_text"
],
"type": "object"
},
"asset": {
"additionalProperties": false,
"description": "The instrument as the filing names it, classified from the office's own asset code. Nothing is resolved against a securities master; a ticker is served only when the filing states one.",
"properties": {
"asset_type": {
"description": "Classified from the office's own asset code on congressional filings: ST equity, OP option, MF and EF fund, GS government_security, PS partnership, CT crypto, anything else other. OGE lines carry equity, fund or other. etf, municipal_bond and corporate_bond are reserved in the enum and produced by no current source.",
"enum": [
"equity",
"etf",
"municipal_bond",
"corporate_bond",
"government_security",
"option",
"fund",
"partnership",
"crypto",
"other"
],
"type": "string"
},
"description": {
"description": "Free-text description from the filing's asset line when the office publishes one separately from the name; null otherwise. Never composed by Veridion.",
"type": [
"string",
"null"
]
},
"name": {
"description": "The asset as named on the filing, whitespace collapsed. If the filing names nothing but gives a ticker, the ticker; if it gives neither, the literal \"Disclosed asset\" so the row is not silently dropped.",
"minLength": 1,
"type": "string"
},
"source_code": {
"description": "The asset code exactly as the office recorded it (ST, OP, MF, EF, GS, PS, CT and others), upper-cased; the input to asset_type. Null when the source carries none.",
"type": [
"string",
"null"
]
},
"ticker": {
"description": "The ticker as it appears on the filing, upper-cased; null when the filing states none (most OGE lines, bonds, funds without a symbol, and paper filings whose ticker column is blank). Not looked up or inferred from the asset name.",
"type": [
"string",
"null"
]
}
},
"required": [
"ticker",
"name",
"asset_type",
"source_code",
"description"
],
"type": "object"
},
"change": {
"additionalProperties": false,
"description": "Full pulls contain upserts. updated_since also emits supersede events; remove the row only when version_id matches the version held locally. A withdrawn stable identifier remains directly retrievable with its reason.",
"properties": {
"observed_at": {
"description": "When Veridion observed the event this row reports (the version's first observation for an upsert; the supersession instant for a supersede).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"reason": {
"description": "Why a row was withdrawn or superseded, when the pipeline recorded one; null for an ordinary upsert. States the mechanism, never a motive.",
"type": [
"string",
"null"
]
},
"state": {
"description": "active: served in snapshot reads. withdrawn: no longer served in snapshots but still directly retrievable by disclosure_id, with reason set.",
"enum": [
"active",
"withdrawn"
],
"type": "string"
},
"type": {
"description": "upsert: this version is the one to hold. supersede: a version you may hold has been replaced, and is only emitted on updated_since reads.",
"enum": [
"upsert",
"supersede"
],
"type": "string"
}
},
"required": [
"type",
"state",
"observed_at",
"reason"
],
"type": "object"
},
"content_hash": {
"description": "sha256, hex, of the canonical JSON array [\"veridion-disclosure-content-v1\", disclosure_id, version_id, member.member_id, member.full_name, member.chamber, asset.ticker, asset.name, asset.asset_type, asset.source_code, asset.description, transaction.type, transaction.date, filing.type, filing.filed_date, amount.range_low, amount.range_high, amount.verbatim_text, owner.label, owner.determination, receipt.document_id, receipt.url, receipt.source_system, receipt.page, provenance.source_line_number] using the served values exactly (null where null). Recompute it from this row to check the calculation; store it to check later that the same version_id still serves the same content. Derived fields (delay_days, statutory window, midpoint), timestamps, parser and methodology versions, and the change block are excluded, so a corrected derivation rule does not change the hash of an unchanged filing. The basis label changes if the field list ever changes.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"disclosure_id": {
"description": "Permanent identifier for the filing-derived transaction. It is never reused; parser versions and restatements retain this identifier.",
"minLength": 1,
"type": "string"
},
"filing": {
"additionalProperties": false,
"description": "The report this row was parsed from and its timing against the STOCK Act's 45-day transaction window, computed from the two dates on the filing.",
"properties": {
"delay_days": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "filed_date minus transaction.date, in whole days, as the two dates appear on the filing. Null when either is absent. Not clamped: a filing that predates its own transaction would serve a negative value rather than a corrected one."
},
"filed_date": {
"description": "The date the office records the report as filed. The STOCK Act window and delay_days are measured to this date.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"statutory_window_days": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "45 for a periodic transaction report, the STOCK Act's transaction-level reporting window; null for annual reports and unknown forms, which carry no per-transaction deadline. A constant of the form, not a per-row judgement. Note that 45 days from the transaction is only one of the two clocks: a report is due by the EARLIER of 45 days from the transaction or 30 days from the filer being notified of it. The House PTR form includes a notification-date column; this dataset does not capture it, so the 30-day clock is not represented here."
},
"type": {
"anyOf": [
{
"enum": [
"periodic_transaction_report",
"annual_report"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "periodic_transaction_report for House Clerk and Senate eFD PTRs and OGE Form 278-T; annual_report for OGE Form 278e; null when the receipt URL matches no known form pattern. Determined from the office and receipt, not from the row's text."
},
"within_statutory_window": {
"description": "Present only when the filing type has an applicable transaction-level window and delay_days is known. True means delay_days <= statutory_window_days -- that is, within the 45-day transaction clock. It does NOT mean the filing was timely: the 30-day notification clock may have expired first, and we do not measure it. Do not treat this field as a compliance determination.",
"type": "boolean"
}
},
"required": [
"type",
"filed_date",
"delay_days",
"statutory_window_days"
],
"type": "object"
},
"identity_basis": {
"description": "Identity uses only filer, document, filed instrument, transaction date and type, amount range, and owner. Parser line, span, version, and run identifiers are excluded.",
"enum": [
"government_filing_facts"
],
"type": "string"
},
"member": {
"additionalProperties": false,
"description": "The filer, resolved against the congressional directory where a match exists. Identity fields only; what the filing itself says is in the receipt.",
"properties": {
"chamber": {
"description": "house or senate from the office that published the receipt; executive for Office of Government Ethics filers.",
"enum": [
"house",
"senate",
"executive"
],
"type": "string"
},
"district": {
"anyOf": [
{
"pattern": "^[A-Z]{2}-\\d+$",
"type": "string"
},
{
"type": "null"
}
],
"description": "House district as `STATE-N` with N an integer and 0 an at-large seat (`GA-14`, `AK-0`); null for senators, executive-branch filers, and rows whose filing does not state one. The same form the /v1/members directory uses."
},
"full_name": {
"description": "The filer's name from the official directory where matched; otherwise the name as it appears on the filing with honorifics (Hon., Sen., Rep.) removed.",
"minLength": 1,
"type": "string"
},
"member_id": {
"description": "Veridion's stable identifier for the filer, the same value /v1/members/{member_id} resolves and the member_id= filter takes. Derived from the name as filed; it does not change across filings or restatements.",
"minLength": 1,
"type": "string"
},
"party": {
"description": "Democrat, Republican or Independent, from the congressional directory's D, R or I; null when the directory records none and for every executive-branch filer.",
"type": [
"string",
"null"
]
},
"person_id": {
"description": "The filer's official Bioguide ID (for example G000596) where the congressional directory has one; null for executive-branch filers and for congressional filers the directory could not match. Never invented.",
"type": [
"string",
"null"
]
},
"state": {
"description": "Two-letter state of the seat, as recorded in the congressional directory; null for executive-branch filers.",
"type": [
"string",
"null"
]
}
},
"required": [
"member_id",
"person_id",
"full_name",
"chamber",
"party",
"state",
"district"
],
"type": "object"
},
"owner": {
"additionalProperties": false,
"description": "Whose holding the transaction concerns, from the filing's Owner column, and how that value was established.",
"properties": {
"determination": {
"description": "How the owner value was established. owner_column_undetermined means the filing row was located but the extracted text did not positively establish whether its Owner column was blank.",
"enum": [
"parsed_from_filing",
"receipt_verified_blank",
"owner_column_undetermined",
"not_applicable_for_form"
],
"type": "string"
},
"label": {
"description": "The filing's Owner column: self, spouse, joint or dependent_child as marked; not_specified_in_filing when the official receipt was checked and the column is blank; undetermined when the row was located but the column could not be read with confidence. See determination for how the value was established.",
"enum": [
"self",
"spouse",
"joint",
"dependent_child",
"not_specified_in_filing",
"undetermined"
],
"type": "string"
}
},
"required": [
"label",
"determination"
],
"type": "object"
},
"provenance": {
"additionalProperties": false,
"description": "How and when this version of the row was produced, and when the row was first observed, which is the instant as_of reads against. None of these fields is in content_hash.",
"properties": {
"first_observed_at": {
"description": "When Veridion first observed this row. Immutable and used by the as_of filter.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"methodology_version": {
"description": "The admission and derivation rules this row was served under, currently receipt-or-drop-v1. A rule change ships as a new label and a changelog entry; see the stability policy.",
"minLength": 1,
"type": "string"
},
"parsed_at": {
"description": "When the parser generation named in parser_version produced this version of the row. A reparse under a new parser writes a new version with its own parsed_at; the earlier version stays in /history.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"parser_version": {
"description": "The parser generation that produced this version (for example house-ptr-line-v2). Not part of content_hash, so a reparse that changes no filing fact changes no hash.",
"minLength": 1,
"type": "string"
},
"source_ingested_at": {
"description": "When the source record entered Veridion's warehouse. first_observed_at is never later than this; the two differ when identity resolution carried an earlier observation forward.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"source_line_number": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "House Clerk PTR rows carry a PDF source-line coordinate when the parser recorded one; null rows are reconciled by reason, and parser-output gaps are enumerated in house_clerk_gap_register. Senate eFD records are parsed as filing transactions rather than House PTR PDF lines, so source_line_number is null by design."
},
"transcription_method": {
"description": "Present only for OGE rows. pdf_text_layer means the official PDF text was parsed; verified_transcription means the row was read from a checked transcription whose SHA-256 matched the official scanned PDF at ingestion.",
"enum": [
"pdf_text_layer",
"verified_transcription"
],
"type": "string"
}
},
"required": [
"source_line_number",
"parsed_at",
"parser_version",
"methodology_version",
"source_ingested_at",
"first_observed_at"
],
"type": "object"
},
"receipt": {
"additionalProperties": false,
"description": "The government receipt this row was parsed from. Preserve the access label.",
"properties": {
"access": {
"description": "`gated` means the official Senate eFD URL requires acknowledging its access agreement before the filing is displayed; other supported sources are `open`.",
"enum": [
"open",
"gated"
],
"type": "string"
},
"content_type": {
"description": "MIME type of the document at receipt.url: application/pdf for House Clerk and OGE documents, text/html for Senate eFD filings, which the Senate publishes as pages.",
"minLength": 1,
"type": "string"
},
"document_id": {
"description": "The office's own identifier for the document: the House Clerk's numeric document id, the Senate eFD report id, or the OGE document id. Resolves at /v1/receipts/{document_id}.",
"minLength": 1,
"type": "string"
},
"page": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Page of the document the row was parsed from, where the source is paginated and the parser recorded it (OGE filings); null for congressional rows, whose position is given by provenance.source_line_number instead."
},
"retrieved_at": {
"description": "When Veridion's warehouse first recorded the source document this row comes from. Independent of provenance.parsed_at, which belongs to the parser generation and may be earlier when a later retrieval re-attached an existing parse.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"source_system": {
"description": "The office that published the receipt: house_clerk, senate_efd or oge. sec_edgar is declared in the enum and serves no rows; /v1/status reports it as no_data.",
"enum": [
"house_clerk",
"senate_efd",
"sec_edgar",
"oge"
],
"type": "string"
},
"url": {
"description": "The government's URL for the document this row was parsed from, on the office's own domain. Never a Veridion-hosted copy. Cite it beside any claim built on the row.",
"format": "uri",
"type": "string"
}
},
"required": [
"document_id",
"url",
"access",
"source_system",
"content_type",
"page",
"retrieved_at"
],
"type": "object"
},
"transaction": {
"additionalProperties": false,
"description": "What was done and on what date, as stated on the filing.",
"properties": {
"date": {
"description": "The transaction date as stated on the filing. Not the filing date, and not adjusted for weekends or holidays.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"type": {
"description": "buy from a P code or a purchase/buy label; sell from an S code or a sale/sell label; exchange from an E code or an exchange label; other for anything the filing marks differently. Partial versus full sale is not distinguished here; the filing's own wording is in amount.verbatim_text and the receipt.",
"enum": [
"buy",
"sell",
"exchange",
"other"
],
"type": "string"
}
},
"required": [
"type",
"date"
],
"type": "object"
},
"version_id": {
"description": "Immutable parse-generation identifier. Use disclosure_id, not version_id, for downstream identity across a restatement.",
"minLength": 1,
"type": "string"
}
},
"required": [
"disclosure_id",
"version_id",
"content_hash",
"identity_basis",
"change",
"member",
"asset",
"transaction",
"filing",
"amount",
"owner",
"receipt",
"provenance"
],
"type": "object"
},
"type": "array"
},
"history": {
"additionalProperties": false,
"properties": {
"current_state": {
"enum": [
"active",
"withdrawn"
],
"type": "string"
},
"disclosure_id": {
"minLength": 1,
"type": "string"
},
"event_count": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"events_truncated": {
"description": "True when the version count exceeded the response cap and the oldest events were withheld rather than silently dropped mid-sequence. event_count still reports the full number observed.",
"type": "boolean"
},
"first_observed_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"latest_observed_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"restated": {
"description": "True when more than one version has been observed. States that the row's content changed after first publication; the reason, if the source gave one, is on each event's change block. No motive is inferred.",
"type": "boolean"
}
},
"required": [
"disclosure_id",
"event_count",
"first_observed_at",
"latest_observed_at",
"current_state",
"restated",
"events_truncated"
],
"type": "object"
},
"notice": {
"minLength": 1,
"type": "string"
},
"version": {
"const": "1.14.0",
"type": "string"
}
},
"required": [
"data",
"history",
"access",
"cache",
"version",
"notice"
],
"type": "object"
}
},
{
"description": "Source freshness and bulk-snapshot health. This endpoint downgrades itself when its own arithmetic says stale — it never guesses green. When state is 'degraded', degraded_reasons names each cause with its measurement; sources[].index_reconciliation says whether the government's own index lists filings not yet served; bulk_export.merkle_root is the day's commitment over every row's content_hash. Check it before trusting a large pull.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_status",
"outputSchema": {
"additionalProperties": false,
"properties": {
"billing_gate": {
"additionalProperties": false,
"description": "A completed UTC day qualifies only when all 24 distinct hourly observations are present and operational. Operational means the public status evaluator returned ready with no degraded reasons. Missing hours break the streak; today's incomplete hour is not missing until it ends. A recorded non-operational sample today resets the streak immediately. Missing completed hours are recorded as observation_missing failures, with no invented observation timestamp. No operational history is backfilled. Hourly samples do not establish continuous availability or a service-level guarantee.",
"properties": {
"consecutive_operational_days": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Completed qualifying UTC days since the latest failed or missing hourly sample. Null means unavailable, not zero."
},
"counting_since": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "First stored observation instant. No history is inferred from deployment or backfilled; null when none exists or unreadable."
},
"definition": {
"const": "A completed UTC day qualifies only when all 24 distinct hourly observations are present and operational. Operational means the public status evaluator returned ready with no degraded reasons. Missing hours break the streak; today's incomplete hour is not missing until it ends. A recorded non-operational sample today resets the streak immediately. Missing completed hours are recorded as observation_missing failures, with no invented observation timestamp. No operational history is backfilled. Hourly samples do not establish continuous availability or a service-level guarantee.",
"description": "Pre-registered day, gap and incomplete-day rules used by the stored counter.",
"type": "string"
},
"detail": {
"description": "Why no observations or no measurement are available; otherwise null.",
"type": [
"string",
"null"
]
},
"last_non_operational_day": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Latest UTC date with a failed sample or missing completed hour since collection began. Null if none exists or unreadable."
},
"measured_at": {
"description": "Database computation instant, or the instant the read was declared unavailable. Not a deployment date.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"reasons_on_last_non_operational_day": {
"description": "Distinct failure codes for the last non-operational day. observation_missing is a persisted closed-hour gap; missing_hour is an absent hour not yet recorded. Both break the streak.",
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"required_days": {
"const": 14,
"description": "Required consecutive completed operational UTC days.",
"type": "number"
},
"state": {
"description": "Stored samples qualify the streak, are still accruing, or could not be read. This item does not activate checkout.",
"enum": [
"accruing",
"eligible",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"required_days",
"consecutive_operational_days",
"counting_since",
"last_non_operational_day",
"reasons_on_last_non_operational_day",
"measured_at",
"definition",
"detail"
],
"type": "object"
},
"bulk_export": {
"additionalProperties": false,
"description": "The daily bulk snapshot: its day, generation, size, file hash and Merkle commitment. Absent only on the unavailable body.",
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus the snapshot's generated_at, in whole seconds."
},
"byte_size": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Size in bytes of the stored snapshot file, as verified after writing."
},
"content_hash_basis": {
"description": "The content_hash basis the leaves were hashed under (veridion-disclosure-content-v1). Set exactly when merkle_root is set.",
"type": [
"string",
"null"
]
},
"detail": {
"description": "Why the export is not ready, when it is not; null when ready.",
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"description": "108000 (30 hours): the snapshot runs daily at 07:40 UTC, so one slow run passes and a fully missed day is flagged before a second day of silence.",
"minimum": 0,
"type": "number"
},
"generated_at": {
"description": "When the newest snapshot finished writing and its manifest was recorded.",
"type": [
"string",
"null"
]
},
"latest_snapshot_day": {
"description": "The UTC day the newest snapshot was pinned to, the same day /v1/export names.",
"type": [
"string",
"null"
]
},
"merkle_root": {
"anyOf": [
{
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Merkle root over every row's content_hash in the export: leaves in disclosure_id order, sha256 over the concatenated 32-byte child digests, an odd node paired with itself. Recomputed from the stored bytes before the manifest was written. Null for a snapshot generated before 1.3.6. scripts/verify-disclosure-export.mjs recomputes it from a downloaded export with no network and compares it with this value."
},
"row_count": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows in the snapshot file after validation; the leaves the merkle_root commits to."
},
"rows_dropped_failed_validation": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows the serving view returned that failed the contract schema and were left out of the file rather than written broken. Zero is the expected value; a positive count is published, never hidden."
},
"sha256": {
"description": "sha256, hex, of the stored snapshot file. Verify a download against it before reading.",
"type": [
"string",
"null"
]
},
"snapshot_generation": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "The temporal generation the snapshot was pinned to; the same value as_of reads and /v1/export report for that day."
},
"state": {
"description": "ready: the latest daily snapshot manifest is readable and younger than expected_max_age_seconds. stale: older. unavailable: the manifest could not be read. no_snapshot_yet: none has been written.",
"minLength": 1,
"type": "string"
},
"threshold_basis": {
"description": "An operational alerting threshold chosen by Veridion. Not a service commitment; commercial terms live in a license.",
"minLength": 1,
"type": "string"
}
},
"required": [
"state",
"latest_snapshot_day",
"generated_at",
"snapshot_generation",
"row_count",
"rows_dropped_failed_validation",
"byte_size",
"sha256",
"merkle_root",
"content_hash_basis",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"detail"
],
"type": "object"
},
"cache": {
"additionalProperties": false,
"description": "Always no-store with zero max-age at every layer: a status page that could be served stale would defeat itself. age_header is null because no cache is permitted to add one.",
"properties": {
"age_header": {
"description": "The name of the response header that reports how long a cache held this body, or null when no cache is permitted to hold it, as here. Public record responses name the Age header.",
"type": "null"
},
"browser_max_age_seconds": {
"const": 0,
"description": "Seconds a browser or client cache may reuse this body without revalidating; 0, the max-age the Cache-Control header carries.",
"type": "number"
},
"cdn_max_age_seconds": {
"const": 0,
"description": "Seconds the CDN may reuse this body; 0, because CDN-Cache-Control is no-store. Public record responses declare a nonzero value here; measurements never do.",
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 0,
"description": "The upper bound on how old this body can be when it reaches a client, counted from generated_at; 0 for a measurement, and the same number the X-Veridion-Cache-Max-Staleness header carries.",
"type": "number"
},
"policy": {
"const": "no-store",
"description": "The cache contract this response was served under; always no-store for a measurement. Rendered as Cache-Control: no-store, max-age=0 with CDN-Cache-Control and Vercel-CDN-Cache-Control: no-store, and echoed in X-Veridion-Cache-Policy.",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header"
],
"type": "object"
},
"congress_public_summary": {
"additionalProperties": false,
"description": "The Congress public summary that /api/congress/summary serves, its age, and whether the newest owner outcome attests to it. Absent only on the unavailable body.",
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus refreshed_at, in whole seconds."
},
"detail": {
"description": "Why the summary is not ready, when it is not; null when ready.",
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"description": "21600 (6 hours): the summary's independently scheduled owner runs every four hours.",
"minimum": 0,
"type": "number"
},
"refresh_outcome": {
"additionalProperties": false,
"description": "The newest outcome recorded by the summary's owner, which is what attests the served figures.",
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus observed_at, in whole seconds."
},
"amount_coverage_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds in the amount_coverage stage."
},
"attempt_id": {
"description": "The owner attempt this outcome belongs to. Every refresh of the summary records one; a summary refreshed without one reads unattested.",
"type": [
"string",
"null"
]
},
"detail": {
"description": "The failure's own text; null on success.",
"type": [
"string",
"null"
]
},
"disclosure_aggregates_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds in the disclosure_aggregates stage."
},
"error_code": {
"description": "The stable code of the failure, when the attempt failed; null otherwise.",
"type": [
"string",
"null"
]
},
"observed_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the terminal event was recorded."
},
"public_summary_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds in the public_summary stage."
},
"rows_examined": {
"description": "Warehouse rows the attempt examined; zero on a failure before the summary stage.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"stage": {
"anyOf": [
{
"enum": [
"preflight",
"amount_coverage",
"public_summary",
"disclosure_aggregates",
"verification",
"complete"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "The stage the attempt reached, in order: preflight, amount_coverage, public_summary, disclosure_aggregates, verification, complete."
},
"started_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the attempt started."
},
"state": {
"description": "The newest recorded outcome of the summary's owner: succeeded or failed at a stage, running while an attempt is open, stalled when an open attempt has outlived its ceiling, unevaluated when none is recorded, unavailable when the ledger could not be read.",
"enum": [
"succeeded",
"failed",
"unevaluated",
"running",
"stalled",
"unavailable"
],
"type": "string"
},
"summary_refreshed_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The refreshed_at the attempt stamped on the summary. When this equals the block's refreshed_at, the served summary is attested by this outcome."
},
"total_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds for the whole attempt."
},
"warehouse_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Warehouse rows at the time of the attempt, as the owner counted them."
}
},
"required": [
"state",
"attempt_id",
"stage",
"started_at",
"observed_at",
"age_seconds",
"rows_examined",
"warehouse_rows",
"summary_refreshed_at",
"amount_coverage_duration_ms",
"public_summary_duration_ms",
"disclosure_aggregates_duration_ms",
"total_duration_ms",
"error_code",
"detail"
],
"type": "object"
},
"refreshed_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the served Congress summary was last rewritten, in the warehouse's own timestamp form."
},
"state": {
"description": "ready: the newest successful refresh outcome attests to the served summary. unattested: the summary's refreshed_at is newer than any recorded outcome, so the served figures were written by a path that did not record its outcome. stale/unavailable: age or read failure. The remaining values echo refresh_outcome.state when no better word applies; 'succeeded' is no longer emitted.",
"enum": [
"ready",
"stale",
"unavailable",
"unattested",
"succeeded",
"failed",
"unevaluated",
"running",
"stalled"
],
"type": "string"
},
"threshold_basis": {
"description": "An operational alerting threshold chosen by Veridion. Not a service commitment; commercial terms live in a license.",
"minLength": 1,
"type": "string"
},
"warehouse_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Congressional warehouse rows the summary was computed over, including rows not yet qualified for the API."
}
},
"required": [
"state",
"refreshed_at",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"warehouse_rows",
"refresh_outcome",
"detail"
],
"type": "object"
},
"coverage_recovery": {
"additionalProperties": false,
"description": "Where House Clerk document recovery stands: how many documents are parsed, queued, failing, terminally failed, or withheld by the lossless-reparse check. Absent only on the unavailable body.",
"properties": {
"computed_at": {
"description": "When the stamped coverage measurement was computed.",
"type": [
"string",
"null"
]
},
"detail": {
"description": "Why the block is stale or unavailable, when it is; null otherwise.",
"type": [
"string",
"null"
]
},
"documents_total": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "House Clerk PTR documents known to the recovery ledger."
},
"failed": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents whose latest attempt failed and will be retried."
},
"failed_terminal": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents whose attempts are exhausted; no further retry is scheduled and no rows are served from them."
},
"in_progress": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents with an attempt under way."
},
"is_stale": {
"description": "true when computed_at is older than the measurement's own stale_after budget.",
"type": "boolean"
},
"parser_reparse_row_loss": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents where a reparse produced fewer rows than were served before and the lossless check rejected the replacement. Those documents are absent from the API rather than served with a lossy replacement."
},
"pending": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents queued for a parse or reparse and not yet attempted."
},
"refresh_outcome": {
"additionalProperties": false,
"description": "The latest recorded refresh of the coverage measurement, so a reader can tell a fresh number from a stale one.",
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus completed_at, in whole seconds."
},
"attempted_at": {
"description": "When the latest refresh started.",
"type": [
"string",
"null"
]
},
"completed_at": {
"description": "When the latest refresh finished; null if it did not.",
"type": [
"string",
"null"
]
},
"coverage_refresh_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds spent in the coverage_snapshot stage."
},
"detail": {
"description": "The failure's own text, or why no outcome could be read; null on success.",
"type": [
"string",
"null"
]
},
"error_code": {
"description": "The stable code of the failure, when the refresh failed; null otherwise.",
"type": [
"string",
"null"
]
},
"parser_state_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds spent in the parser_state stage."
},
"route_duration_ms": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Milliseconds for the whole refresh route invocation."
},
"rows_examined": {
"description": "Documents the refresh examined to produce the counts above.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"stage": {
"anyOf": [
{
"enum": [
"parser_state",
"coverage_snapshot",
"complete"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "The stage the latest refresh reached: parser_state, then coverage_snapshot, then complete."
},
"state": {
"description": "The recorded outcome of the latest coverage refresh; unevaluated when none has been recorded; unavailable when the record could not be read.",
"enum": [
"succeeded",
"failed",
"unevaluated",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"stage",
"attempted_at",
"completed_at",
"age_seconds",
"rows_examined",
"parser_state_duration_ms",
"coverage_refresh_duration_ms",
"route_duration_ms",
"error_code",
"detail"
],
"type": "object"
},
"state": {
"description": "ready: every House document is parsed or terminal and the stamped measurement is current. recovery_in_progress: documents remain pending or in progress. complete_with_terminal_gaps: nothing pending, but some documents ended in a terminal failure. stale: the stamped measurement is older than its budget. unavailable: it could not be read. recovery_in_progress, stale and unavailable degrade the endpoint with the measurement quoted, as does a refresh_outcome other than succeeded. complete_with_terminal_gaps does not degrade it: the terminal count is published beside the state, and a permanent, disclosed property of the corpus is not a degradation of the service.",
"enum": [
"ready",
"recovery_in_progress",
"complete_with_terminal_gaps",
"stale",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"computed_at",
"is_stale",
"documents_total",
"pending",
"in_progress",
"failed",
"failed_terminal",
"parser_reparse_row_loss",
"refresh_outcome",
"detail"
],
"type": "object"
},
"degraded_reasons": {
"description": "Which checks pulled state down, and their measurements. Empty when ready. An unavailable response carries any observed read failures, including named timed_out deadlines; missing configuration has no measured read outcomes.",
"items": {
"additionalProperties": false,
"properties": {
"check": {
"description": "The check that failed, named as the block it lives in: source:<system>, source:<system>:index_reconciliation, bulk_export, bulk_export:merkle_root, coverage_recovery, congress_public_summary, temporal_conformance, temporal_window, pipeline:attendance, or pipeline:<cron>.",
"minLength": 1,
"type": "string"
},
"deadline_ms": {
"description": "Per-read request budget in milliseconds; 500, independently applied to each status dependency.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"measured": {
"description": "The measurement behind the failure, quoted with its numbers and timestamps, so a caller can act on it without diffing the block it came from.",
"minLength": 1,
"type": "string"
},
"state": {
"description": "Present for an independently bounded status read that timed out or threw; no source freshness threshold is changed.",
"enum": [
"timed_out",
"read_failed"
],
"type": "string"
}
},
"required": [
"check",
"measured"
],
"type": "object"
},
"type": "array"
},
"detail": {
"description": "Present only on the unavailable body, naming what could not be read.",
"type": "string"
},
"generated_at": {
"description": "When this response was computed. Every age_seconds below is measured from this instant, so the block is internally consistent even when read from a cache.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"institutional_delivery": {
"additionalProperties": false,
"description": "A declared boundary, stated rather than discovered.",
"properties": {
"available": {
"const": false,
"description": "Always false in v1: no institutional delivery channel is offered through this endpoint.",
"type": "boolean"
},
"reason": {
"const": "first_party_provenance_not_proven",
"description": "Institutional delivery remains a compile-time product boundary, not a live provenance measurement or the authorization check for the existing Free/Developer API. A dated, generation-pinned audit traces every served row to an allowlisted first-party collection channel through its source version. Missing links and unknown origins refuse the proof; a government receipt URL alone is not collection evidence. Retained history and the exact downloadable export are checked separately. The export is downloaded and verified against its published checksum, row hashes and Merkle root; its rows are reconciled to the pinned serving generation. Unattributed warehouse rows are reviewed individually and remain excluded unless original collection evidence supports attribution. A reviewed permanent exclusion records its reason and date. An unserved row with unresolved origin does not by itself prove contamination of the served corpus. Counsel reviews the applicable agreements and permitted uses in writing. A reviewed release then implements institutional authorization and delivery. Neither a successful technical audit nor an environment setting grants institutional rights. The clearing requirements are published at https://www.veridionmarkets.com/data-api#institutional-delivery.",
"type": "string"
}
},
"required": [
"available",
"reason"
],
"type": "object"
},
"notice": {
"description": "Standing guidance on reading this block: what no_data means, what degraded does and does not imply, and how to verify a download.",
"type": "string"
},
"observation_delay": {
"additionalProperties": false,
"description": "Hours from a filing's filed_date to Veridion's first observation, per source. Published only over rows with verified continuity; withheld with the reason otherwise. Absent only on the unavailable body.",
"properties": {
"age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Whole seconds since computed_at at this read; null when the saved computation is unavailable."
},
"basis": {
"description": "precomputed: reads a saved poll-time report, with no live aggregate fallback. Before 1.9.0 this carried the prose now in measurement_basis.",
"minLength": 1,
"type": "string"
},
"computed_at": {
"description": "Start of the saved poll-time computation, never the request time. Null when no valid saved computation exists; stale reports retain their original instant with unavailable state.",
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"description": "86400: one daily producer cycle. A stale saved report withholds its distribution; an operational measurement freshness budget, not a service commitment.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"measurement_basis": {
"description": "The measurement and eligibility rule, previously carried in basis; present on 1.9.0 responses.",
"minLength": 1,
"type": "string"
},
"methodology_version": {
"description": "Eligibility revision requiring active served versions, matching assessment facts and daily poll evidence from filing through first observation; prior decisions remain in the append-only ledger.",
"minLength": 1,
"type": "string"
},
"sources": {
"description": "One entry per eligible source, measured or unevaluated with its record.",
"items": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"continuity": {
"additionalProperties": false,
"description": "Recorded poll window counted in the distribution's statement; the configured start is not substituted for evidence.",
"properties": {
"configured_start_precedes_telemetry": {
"description": "True when the configured source start precedes the earliest recorded poll day; that unsupported interval is excluded from measurements.",
"type": "boolean"
},
"days_poll_succeeded": {
"description": "Recorded source-days with at least one successful poll; each measured row also requires success on every day from filing through observation.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"telemetry_days": {
"description": "Count of recorded source-days, not elapsed calendar days; missing days are not counted.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"telemetry_first_day": {
"description": "Minimum observation_date in the source's daily poll ledger.",
"type": "string"
},
"telemetry_last_day": {
"description": "Maximum observation_date in the source's daily poll ledger.",
"type": "string"
}
},
"required": [
"telemetry_first_day",
"telemetry_last_day",
"telemetry_days",
"days_poll_succeeded",
"configured_start_precedes_telemetry"
],
"type": "object"
},
"max_hours": {
"description": "The largest observation delay in the distribution, in hours.",
"minimum": 0,
"type": "number"
},
"measured_rows": {
"description": "Rows in the distribution: served rows whose source has verified daily continuity for every day between filed_date and first observation.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"median_hours": {
"description": "Median of first_observed_at minus filed_date, in hours, over measured_rows.",
"minimum": 0,
"type": "number"
},
"observation_started_on": {
"description": "The configured day continuous observation of this source began.",
"type": "string"
},
"p95_hours": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "95th percentile in hours; null when withheld under 100 rows."
},
"percentile_state": {
"description": "withheld_small_n when measured_rows is under 100, in which case p95_hours is null.",
"enum": [
"measured",
"withheld_small_n"
],
"type": "string"
},
"population": {
"additionalProperties": false,
"description": "Served denominator and named exclusions, computed with the measured distribution.",
"properties": {
"excluded_rows": {
"description": "Served source rows excluded from the distribution; equals the sum of named exclusion counts and served_rows minus measured_rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"exclusions": {
"description": "Disjoint exclusion counts by reason, sorted by reason; an empty list means no served rows were excluded.",
"items": {
"additionalProperties": false,
"properties": {
"reason": {
"description": "Stored eligibility refusal or a missing daily-poll proof at read time; rows receive exactly one reason, never a guessed assessment.",
"minLength": 1,
"type": "string"
},
"rows": {
"description": "Active served source rows assigned this exclusion reason in the distribution's statement.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"reason",
"rows"
],
"type": "object"
},
"type": "array"
},
"served_rows": {
"description": "Count of active retained row versions for this source in the statement computing the distribution; includes ineligible rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"served_rows",
"excluded_rows",
"exclusions"
],
"type": "object"
},
"source_system": {
"description": "The source measured. OGE is excluded by policy: one annual document is one event, not a distribution.",
"enum": [
"house_clerk",
"senate_efd"
],
"type": "string"
},
"state": {
"const": "measured",
"description": "A distribution is published for this source.",
"type": "string"
},
"window_end": {
"description": "Latest filed_date of a row in the distribution.",
"type": "string"
},
"window_start": {
"description": "Earliest filed_date of a row in the distribution.",
"type": "string"
}
},
"required": [
"state",
"source_system",
"observation_started_on",
"window_start",
"window_end",
"measured_rows",
"median_hours",
"p95_hours",
"max_hours",
"percentile_state",
"population",
"continuity"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"continuity": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"configured_start_precedes_telemetry": {
"description": "true when observation_started_on is earlier than telemetry_first_day, so filings before the telemetry have no verified continuity and are not counted toward a distribution.",
"type": "boolean"
},
"days_poll_succeeded": {
"description": "Of telemetry_days, the days on which the poll succeeded.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"telemetry_days": {
"description": "Count of recorded source-days, not elapsed calendar days; missing days are not counted.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"telemetry_first_day": {
"description": "First day for which per-day poll telemetry exists for this source.",
"type": "string"
},
"telemetry_last_day": {
"description": "Most recent day of poll telemetry.",
"type": "string"
}
},
"required": [
"telemetry_first_day",
"telemetry_last_day",
"telemetry_days",
"days_poll_succeeded",
"configured_start_precedes_telemetry"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "The continuity telemetry the eligibility rule reads; null when none exists."
},
"observation_started_on": {
"description": "The configured day continuous observation began; null if none is configured.",
"type": [
"string",
"null"
]
},
"population": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"excluded_rows": {
"description": "Served source rows excluded from the distribution; equals the sum of named exclusion counts and served_rows minus measured_rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"exclusions": {
"description": "Disjoint exclusion counts by reason, sorted by reason; an empty list means no served rows were excluded.",
"items": {
"additionalProperties": false,
"properties": {
"reason": {
"description": "Stored eligibility refusal or a missing daily-poll proof at read time; rows receive exactly one reason, never a guessed assessment.",
"minLength": 1,
"type": "string"
},
"rows": {
"description": "Active served source rows assigned this exclusion reason in the distribution's statement.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"reason",
"rows"
],
"type": "object"
},
"type": "array"
},
"served_rows": {
"description": "Count of active retained row versions for this source in the statement computing the distribution; includes ineligible rows.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"served_rows",
"excluded_rows",
"exclusions"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Measured served denominator and exclusions when the statement succeeds with no eligible rows; null when the distribution refuses or cannot be read."
},
"reason": {
"description": "Why the distribution refused to publish, quoted from the measurement: for example the count of served rows without a current eligibility assessment.",
"minLength": 1,
"type": "string"
},
"source_system": {
"description": "The source that was not measured.",
"enum": [
"house_clerk",
"senate_efd"
],
"type": "string"
},
"state": {
"const": "unevaluated",
"description": "No distribution is published for this source; reason and continuity carry the record behind the refusal.",
"type": "string"
}
},
"required": [
"state",
"source_system",
"observation_started_on",
"reason",
"population",
"continuity"
],
"type": "object"
}
]
},
"type": "array"
},
"state": {
"description": "measured when every eligible source has a published distribution; partial when some do; unavailable when none does. Never degrades the endpoint: an unpublished distribution is a disclosed limit, not a failure of served rows.",
"enum": [
"measured",
"partial",
"unavailable"
],
"type": "string"
}
},
"required": [
"methodology_version",
"state",
"computed_at",
"basis",
"sources"
],
"type": "object"
},
"pipeline": {
"additionalProperties": false,
"description": "Attendance of the jobs that produce this API's data, from the cron attendance store. Absent only on the fail-closed 503 body. A missed, died or never-run job, a failed export run, or an unreadable store degrades the endpoint by name.",
"properties": {
"attendance_exemptions": {
"description": "Named reviewed bootstrap exemptions, not measured successes. Included in scheduled and unwrapped totals, excluded only from required coverage.",
"items": {
"additionalProperties": false,
"properties": {
"approved_on": {
"description": "Date of the recorded exemption ruling.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"decision": {
"description": "Work-order reference approving this named exemption.",
"minLength": 1,
"type": "string"
},
"reason": {
"description": "Why this route must remain outside attendance admission.",
"minLength": 1,
"type": "string"
},
"route": {
"description": "Exact scheduled pathname exempt from attendance admission.",
"minLength": 1,
"type": "string"
}
},
"required": [
"route",
"reason",
"approved_on",
"decision"
],
"type": "object"
},
"type": "array"
},
"basis": {
"description": "The full statement of how attendance is measured: the store, the two units, slot attribution and its tolerance, and what each job state means. Carried on every response so the numbers never travel without their rules.",
"minLength": 1,
"type": "string"
},
"deprecated_fields": {
"description": "Fields in this block that are kept for compatibility and should not be read for new work.",
"items": {
"minLength": 1,
"type": "string"
},
"type": "array"
},
"detail": {
"description": "When instrumentation is partial or exemptions apply, total and required coverage from the same attendance report. Otherwise the unavailable or empty-job explanation, or null when fully instrumented and readable.",
"type": [
"string",
"null"
]
},
"exempt_invocations": {
"description": "Distinct scheduled invocations belonging to the named uninstrumented route exemptions.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"exempt_routes": {
"description": "Number of named uninstrumented route exemptions in this response.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"field_successors": {
"additionalProperties": {
"minLength": 1,
"type": "string"
},
"description": "For each deprecated field, the field that carries the same value under its correct name.",
"propertyNames": {
"minLength": 1,
"type": "string"
},
"type": "object"
},
"instrumented_invocations": {
"description": "Distinct scheduled invocations (pathname plus query) whose route records attendance. One route scheduled under several query shapes counts once per shape, because a due slot belongs to one invocation.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"instrumented_jobs": {
"description": "Deprecated in 1.3.14; the same value as instrumented_invocations. Kept for additive compatibility.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"instrumented_routes": {
"description": "Distinct cron pathnames that record attendance. This is the coverage figure: read it, not the invocation pair, when asking how much of the cron surface is watched.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"jobs": {
"description": "The jobs that produce this API's data, one entry per invocation shape observed or scheduled.",
"items": {
"additionalProperties": false,
"properties": {
"coverage_start": {
"description": "Earliest attendance started_at for this pathname, across query variants, from the full ledger. Null means no route observation evidence. Added in item 551.",
"type": [
"string",
"null"
]
},
"cron_name": {
"description": "The invocation as scheduled: pathname plus query string, exactly as vercel.json lists it.",
"minLength": 1,
"type": "string"
},
"died_count": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Runs in the window that started and never finished within their ceiling, including ones a later run has since superseded. History; the state field describes now."
},
"expected_slots_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Due slots from max(window start, coverage_start), counted after the complete schedule minute."
},
"last_ok": {
"description": "When the job last completed successfully; null if never.",
"type": [
"string",
"null"
]
},
"latest_run": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"error": {
"description": "The run's own error text, with credentials and URLs redacted; null on success.",
"type": [
"string",
"null"
]
},
"finished_at": {
"description": "When the latest run finished; null while running or after it died.",
"type": [
"string",
"null"
]
},
"http_status": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "The HTTP status the run returned; null while running."
},
"ok": {
"description": "Whether the latest run reported success; null until it finishes.",
"type": [
"boolean",
"null"
]
},
"rows_written": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows the latest run wrote, in the unit rows_written_basis names; null when the run did not report one."
},
"rows_written_basis": {
"description": "What rows_written counts, named per route, because a row means different things to different jobs.",
"type": "string"
},
"started_at": {
"description": "When the latest run started.",
"type": "string"
}
},
"required": [
"started_at",
"finished_at",
"ok",
"rows_written",
"rows_written_basis",
"http_status",
"error"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "The most recent run of this invocation; null when it has never run."
},
"missed_count_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "expected_slots_24h minus observed_slots_24h."
},
"not_yet_observed_slots_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Scheduled slots before coverage_start in this 24-hour window; not missed. Null when attendance cannot be read. Added in item 551."
},
"observed_slots_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Due slots in the window that a run was attributed to."
},
"scheduled_job": {
"description": "false for an invocation shape that appears in no vercel.json entry. It has no due slots and cannot miss one; it is listed rather than hidden.",
"type": "boolean"
},
"schedules": {
"description": "Every cron expression vercel.json schedules this invocation under; empty when it appears in none.",
"items": {
"type": "string"
},
"type": "array"
},
"state": {
"description": "The job now, not the last 24 hours. missed: a due slot with no run attributed. died: the latest attempt started and never finished within its ceiling. failed: the latest run returned an error. wrote_zero: the latest run succeeded and wrote no rows. write_count_unavailable: succeeded, count unreadable. running: the latest run has not finished and is within its ceiling. never_ran: no run recorded although slots were due after route coverage began. not_yet_observed: no run and no route coverage yet. unevaluated: attendance could not be read, or no run and no due slot yet. unwrapped: the route records no attendance. Precedence in that order when several apply.",
"enum": [
"unwrapped",
"unevaluated",
"not_yet_observed",
"never_ran",
"missed",
"running",
"died",
"failed",
"wrote_zero",
"write_count_unavailable",
"succeeded"
],
"type": "string"
},
"unattributed_runs_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Runs that started in the window and attribute to no due slot, counted rather than dropped, because they ran."
}
},
"required": [
"cron_name",
"schedules",
"scheduled_job",
"state",
"expected_slots_24h",
"observed_slots_24h",
"missed_count_24h",
"unattributed_runs_24h",
"died_count",
"last_ok",
"latest_run"
],
"type": "object"
},
"type": "array"
},
"measured_at": {
"description": "When attendance was evaluated; the 24-hour window ends here.",
"type": "string"
},
"observation_started_at": {
"description": "When the attendance instrument was installed. Due slots are counted only after this instant.",
"type": [
"string",
"null"
]
},
"required_invocations": {
"description": "scheduled_invocations minus exempt_invocations; an exemption never manufactures attendance.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"required_routes": {
"description": "scheduled_routes minus exempt_routes; instrumentation must cover every required route.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"schedule_entries": {
"description": "Lines in vercel.json's cron list. Exceeds scheduled_invocations when one URL carries more than one schedule.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"scheduled_invocations": {
"description": "instrumented_invocations plus unwrapped_invocations: every distinct invocation in vercel.json.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"scheduled_jobs": {
"description": "Deprecated in 1.3.14; the same value as scheduled_invocations.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"scheduled_routes": {
"description": "instrumented_routes plus unwrapped_routes: every distinct cron pathname in vercel.json.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"state": {
"description": "degraded when any listed job is not delivering: no successful completion since its most recent due slot, its latest run died, it has never run, or (export job only) its latest run failed. unavailable when the attendance store could not be read, which also degrades the endpoint. Otherwise partial when any required invocation or route is unwrapped; ready requires complete required instrumentation and no listed delivery failure. Named attendance_exemptions remain in scheduled and unwrapped totals. Partial also degrades the overall endpoint with pipeline:coverage.",
"enum": [
"ready",
"partial",
"degraded",
"unavailable"
],
"type": "string"
},
"unwrapped_invocations": {
"description": "Distinct scheduled invocations whose route records no attendance.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unwrapped_jobs": {
"description": "Deprecated in 1.3.14; the same value as unwrapped_invocations.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"unwrapped_routes": {
"description": "Distinct cron pathnames that record no attendance.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"state",
"measured_at",
"observation_started_at",
"instrumented_jobs",
"unwrapped_jobs",
"scheduled_jobs",
"instrumented_invocations",
"unwrapped_invocations",
"scheduled_invocations",
"instrumented_routes",
"unwrapped_routes",
"scheduled_routes",
"schedule_entries",
"deprecated_fields",
"field_successors",
"basis",
"detail",
"jobs"
],
"type": "object"
},
"sources": {
"description": "Freshness of every source Veridion polls, measured from the same table the serving views read. One entry per source system, including the ones that publish nothing.",
"items": {
"additionalProperties": false,
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus last_success_at, in whole seconds; null when there is no success to measure from."
},
"detail": {
"description": "OGE: producer, verdict, last completion, measured age, threshold and current failure or uncertainty, computed from the same evidence as the verdict. Other sources retain their stored explanation; sec_edgar states its no_data boundary.",
"type": [
"string",
"null"
]
},
"expected_max_age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "The age past which the source reads stale: 86400 for House Clerk and Senate eFD. OGE uses two maximum daily schedule gaps from vercel.json plus the late-start allowance and run ceiling; it ages successful producer completions, not annual filings. Null for sec_edgar which has no poll to age."
},
"failure_since": {
"description": "OGE: start of the first failed run after the last successful completion, ordered by (finished_at, run_id) over the whole attendance ledger, not its 24-hour row window. Null when no failed streak exists or attendance is unavailable. Senate uses the failed index-run streak; House does not measure this field.",
"type": [
"string",
"null"
]
},
"index_reconciliation": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"age_seconds": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "generated_at minus checked_at, in whole seconds, floored at zero; null when checked_at is null."
},
"checked_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the hourly ingest run last reconciled the House Clerk's searchable PTR index against the warehouse; null when no reconciliation has been stored."
},
"cutoff_date": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The earliest filing date the reconciliation examined: the check date minus 14 days. Documents filed before it are outside this measurement."
},
"documents_on_index": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents the Clerk's index listed with a filing date on or after cutoff_date at the last check; null when the index could not be read."
},
"expected_max_age_seconds": {
"description": "The age past which the reconciliation is reported unmeasured: 21600 (6 h), the same threshold as the Congress summary, because the same hourly ingest cadence refreshes both. An operational alerting threshold, not a service commitment.",
"minimum": 0,
"type": "number"
},
"latest_index_filing_date": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The newest filing date among documents_on_index; null when there are none."
},
"latest_served_filing_date": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The newest filing date among parsed_documents; the gap to latest_index_filing_date is the visible lag of the served corpus behind the government index."
},
"parsed_documents": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Of documents_on_index, those the parser finished with qualifying rows that are served."
},
"state": {
"description": "current: every document on the index since cutoff_date is accounted for (parsed, or terminal without qualifying rows). unaccounted: at least one is not. index_unavailable: the government index could not be read at the last check. unmeasured: no reconciliation newer than expected_max_age_seconds.",
"enum": [
"current",
"unaccounted",
"index_unavailable",
"unmeasured"
],
"type": "string"
},
"terminal_without_rows": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents the parser finished and found no qualifying transaction rows in; accounted for, not served."
},
"unaccounted_documents": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Documents on the index since cutoff_date that are neither served nor terminal without rows, plus any document the discovery pass could not fetch. Any value above zero degrades the endpoint."
},
"unaccounted_sample": {
"description": "Up to five unaccounted documents with the recorded reason.",
"items": {
"additionalProperties": false,
"properties": {
"doc_id": {
"description": "The House Clerk DocID of the unaccounted filing.",
"minLength": 1,
"type": "string"
},
"filing_date": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The filing date the index lists for it; null when the index gave none."
},
"reason": {
"description": "The recorded overlay status and reason, as status:reason, or overlay_row_missing when the document was never attempted, truncated to 200 characters.",
"minLength": 1,
"type": "string"
}
},
"required": [
"doc_id",
"filing_date",
"reason"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"state",
"checked_at",
"age_seconds",
"expected_max_age_seconds",
"cutoff_date",
"documents_on_index",
"parsed_documents",
"terminal_without_rows",
"unaccounted_documents",
"latest_index_filing_date",
"latest_served_filing_date",
"unaccounted_sample"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "The government's own index reconciled against what this API serves, when a source publishes an index we can read (House Clerk PTR search). Age says when we last succeeded; this says whether the index lists filings we do not yet account for. Null for sources without a readable index."
},
"last_success_at": {
"description": "OGE: last successful terminal completion in cron attendance, not a filing date. Senate: latest completed index run. House: latest qualified receipt row observation. Null when unavailable or never observed; these bases are distinct.",
"type": [
"string",
"null"
]
},
"source_system": {
"description": "house_clerk, senate_efd, oge or sec_edgar. sec_edgar is listed in no_data state as a declared scope boundary, so a reader learns it from the response rather than from a query that returns nothing.",
"type": [
"string",
"null"
]
},
"state": {
"description": "ready: the source observation is within expected_max_age_seconds. For OGE this is a successful producer completion, including zero-row polls; two consecutive failed completions instead report degraded. unknown means attendance or a successful completion is unavailable. stale: the stored state says ready but last_success_at is older than the threshold; the worse of the two is reported. source_unavailable: the most recent poll failed. no_data: the source publishes no rows into v1 by policy. unknown: the stored state was unreadable.",
"minLength": 1,
"type": "string"
},
"threshold_basis": {
"description": "Operational alerting rule, not a service commitment. OGE names its producing job, consecutive-failure threshold, configured UTC schedules, maximum schedule gap, late-start allowance and run ceiling; the age budget is computed from those values.",
"type": [
"string",
"null"
]
}
},
"required": [
"source_system",
"state",
"last_success_at",
"failure_since",
"age_seconds",
"expected_max_age_seconds",
"threshold_basis",
"detail",
"index_reconciliation"
],
"type": "object"
},
"type": "array"
},
"state": {
"description": "ready when no check below is failing. degraded when any source is stale or unavailable, the export is stale, unavailable or missing its merkle_root, coverage recovery is stale or unavailable, the Congress summary is stale, unavailable or unattested, a temporal-conformance contract fails, the temporal window is unreadable, the House index lists unaccounted filings, or a pipeline job is not delivering. unavailable when the status itself could not be measured. The endpoint never reports a state more optimistic than its own arithmetic: a stored 'ready' older than its threshold is reported stale.",
"enum": [
"ready",
"degraded",
"unavailable"
],
"type": "string"
},
"temporal_conformance": {
"additionalProperties": false,
"description": "The four temporal contracts, verified against the pinned bulk snapshot. A failing contract degrades the endpoint by name. Absent only on the unavailable body.",
"properties": {
"computed_at": {
"description": "When the contracts were last verified, against the pinned bulk snapshot.",
"type": [
"string",
"null"
]
},
"contracts": {
"description": "One entry per contract, T1 through T4.",
"items": {
"additionalProperties": false,
"properties": {
"contract": {
"description": "T1: point-in-time reads exclude later versions. T2: pagination stays fixed while writes continue. T3: incremental sync reconstructs the full set. T4: restatements preserve permanent row identity.",
"enum": [
"T1",
"T2",
"T3",
"T4"
],
"type": "string"
},
"rows_examined": {
"description": "Rows the contract was checked over.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"state": {
"description": "pass with zero violations; fail with the count; unevaluated when the evidence is missing.",
"enum": [
"pass",
"fail",
"unevaluated"
],
"type": "string"
},
"verified_on": {
"description": "The UTC day the contract was last verified.",
"type": [
"string",
"null"
]
},
"violations": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows that broke the contract; null when unevaluated."
}
},
"required": [
"contract",
"state",
"violations",
"rows_examined",
"verified_on"
],
"type": "object"
},
"type": "array"
},
"state": {
"description": "ready when every contract passed on the pinned snapshot; degraded when any failed; unavailable when the snapshot could not be read.",
"enum": [
"ready",
"degraded",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"computed_at",
"contracts"
],
"type": "object"
},
"temporal_window": {
"additionalProperties": false,
"description": "How far back as_of reads can go. The floor is the activation instant of retained payload history; depth is the time since. Neither says anything about filing completeness before the floor, which is what /v1/coverage measures.",
"properties": {
"basis": {
"description": "The sentence stating how the floor and depth are measured, carried on every response.",
"minLength": 1,
"type": "string"
},
"depth_days": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Unrounded (measured_at - point_in_time_floor) / 86400000 milliseconds. Temporal depth is not filing completeness; null means unmeasured."
},
"detail": {
"description": "Why the window is unavailable, when it is; null when available.",
"type": [
"string",
"null"
]
},
"measured_at": {
"description": "The instant depth_days was measured against; equals generated_at.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"point_in_time_floor": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Inclusive millisecond boundary from the same temporal dataset-state resolver used by disclosure queries; null if unreadable."
},
"retention_regime": {
"const": "growing",
"description": "Retained versions are close-only and generations append-only; the current mechanism has no age-based rolling prune.",
"type": "string"
},
"state": {
"description": "available when the temporal dataset-state resolver answered; unavailable when it did not, which degrades the endpoint with the reason in detail.",
"enum": [
"available",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"point_in_time_floor",
"depth_days",
"measured_at",
"retention_regime",
"basis",
"detail"
],
"type": "object"
},
"track_record": {
"additionalProperties": false,
"description": "When the published track record was last successfully computed, and whether the latest run succeeded. The figures a buyer reads on /track-record are dated by published_at; this block lets a pipeline learn that date, and learn that a later run failed, without scraping the page. Read live from two indexed single-row lookups, so unlike universe it carries no measurement age of its own. Absent only on the unavailable body, where no read was attempted.",
"properties": {
"attempt_newer_than_publication": {
"description": "True when a run is recorded after the last successful publication. Paired with a failed last_attempt_status this is the case a publication instant alone hides: the served cells are real and correctly dated, and the pipeline has since tried to replace them and could not. Measured on production 2026-09-19, 356 of 547 recorded runs are failures, so this is a normal condition rather than an edge case.",
"type": "boolean"
},
"detail": {
"description": "What the state and the attempt mean, in words, so the block is readable without this schema.",
"type": "string"
},
"last_attempt_age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "generated_at minus last_attempt_at. How long ago the pipeline last tried."
},
"last_attempt_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the most recent run was recorded, whatever its outcome."
},
"last_attempt_status": {
"description": "Outcome of the most recent recorded run. insufficient_history means the run completed and honestly declined to publish for want of matured history — an outcome, not a failure, and it does not degrade this endpoint.",
"enum": [
"completed",
"insufficient_history",
"failed",
"unavailable"
],
"type": "string"
},
"published_age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "generated_at minus published_at. How old the served track-record figures are."
},
"published_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the cells currently served were computed. This is the last SUCCESSFUL publication, not the last run: a failed run does not move it."
},
"state": {
"description": "Freshness of the published track record itself: live when the last successful publication is inside its expected cadence, stale when it is not, unavailable when the publication record could not be read. The same state the /track-record page renders, from the same reading.",
"enum": [
"live",
"stale",
"unavailable"
],
"type": "string"
}
},
"required": [
"state",
"published_at",
"published_age_seconds",
"last_attempt_status",
"last_attempt_at",
"last_attempt_age_seconds",
"attempt_newer_than_publication",
"detail"
],
"type": "object"
},
"universe": {
"additionalProperties": false,
"description": "How fresh the scored universe is. A buyer's first question about a score is how old it is, and the answer is a distribution: newest, median, oldest, and the share scored inside a day. Measured on a cron and read as one stored row; the block reports the age of its own measurement so a stale measurement cannot masquerade as a current one. Absent only on the unavailable body, where no read was attempted at all: this endpoint does not publish a block it did not measure.",
"properties": {
"census_measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Instant of the census captured with this intersection, in millisecond ISO-8601 Z form. The enclosing measured_at dates the intersection. Never taken from an independently newer census; null without valid paired evidence."
},
"census_trading_day": {
"anyOf": [
{
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Trading day of the qualified census captured with this intersection, not the latest census or latest scored trading day at request time. Null without valid paired evidence."
},
"coverage_share": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "scored_qualified_count divided by qualified_count, without display rounding. Both counts belong to this measured_at and this census identity. Null for missing or invalid evidence or a zero denominator; zero only for a measured empty intersection with a nonempty qualified set."
},
"detail": {
"description": "What the state and the spread mean, in words, so the block is readable without this schema.",
"type": "string"
},
"last_scored_age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "generated_at minus last_scored_at. The age of the freshest score, not of the universe."
},
"last_scored_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The NEWEST score in the universe. Read it with oldest_scored_at: on 2026-09-19 the newest was seven minutes old and the oldest was thirty-one days old, so this field alone would describe the universe as fresher than it is."
},
"latest_trading_day": {
"description": "The most recent trading day any symbol in the universe was scored for.",
"type": [
"string",
"null"
]
},
"measured_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the universe was measured, not when this response was generated. The aggregate is taken on a cron because measuring it live costs roughly 624 ms, past this endpoint's read deadline."
},
"measurement_age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "generated_at minus measured_at. How old the measurement is, not how old the scores are."
},
"measurement_max_age_seconds": {
"description": "The age past which the measurement is called stale and the endpoint degrades. A bound this response was checked against, not a service commitment.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"median_scored_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The middle of the distribution: half the universe was scored no earlier than this."
},
"methodology_version": {
"description": "The scoring methodology version the universe view selected as current.",
"type": [
"string",
"null"
]
},
"methodology_versions": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Distinct methodology versions present in the universe. Item 364: this is 1 by construction, because the view filters to the single current version, so it cannot signal a mid-migration universe. It previously claimed it could."
},
"older_than_7d": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Scored symbols whose score is more than seven days old at measured_at. Published rather than hidden."
},
"oldest_scored_age_seconds": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "generated_at minus oldest_scored_at. The worst case a consumer of the scores can meet."
},
"oldest_scored_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The FLOOR of the universe: the least recently scored symbol. This is the field that makes last_scored_at honest, and the reason this block publishes a distribution rather than a headline."
},
"population_basis": {
"description": "What symbols and scored actually count, and which figures in this block are identities rather than measurements. Published because a reader who divides scored by symbols gets 100% on every call and would reasonably read that as full coverage.",
"type": "string"
},
"qualified_count": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Exact denominator: cardinality of the unique qualified symbol set captured with this intersection. Null without valid paired evidence, including historical count-only census rows."
},
"scored": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Equal to symbols by construction and unable to differ from it: both count the same rows. This is an identity, not a coverage measurement, and scored/symbols is not a coverage ratio. Every freshness figure below IS measured over these rows."
},
"scored_qualified_count": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Exact numerator: current-methodology scored symbols intersected with the stored qualified set at measured_at. Excludes scored names outside that set; null without valid paired evidence."
},
"scored_within_24h": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Scored symbols whose score was computed inside the twenty-four hours before measured_at."
},
"scored_within_24h_share": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"description": "scored_within_24h divided by scored, rounded to four places. Below four in five, the detail says so rather than leaving the reader to divide."
},
"state": {
"description": "measured when a current measurement was read. measurement_stale when the measurement itself is older than measurement_max_age_seconds, in which case every figure below describes the universe as of measured_at, not as of now. unmeasured when no measurement has been recorded yet. unavailable when the stored measurement could not be read. The last two are different facts and are reported as different states.",
"enum": [
"measured",
"measurement_stale",
"unmeasured",
"unavailable"
],
"type": "string"
},
"symbols": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Symbols carrying a score under the CURRENT methodology_version. Item 364: this field previously read \"including any not yet scored\", which was false -- the coverage view is built from score_snapshots, so an unscored symbol is not a row. Read population_basis before dividing this by anything."
}
},
"required": [
"state",
"measured_at",
"measurement_age_seconds",
"measurement_max_age_seconds",
"symbols",
"scored",
"scored_qualified_count",
"qualified_count",
"coverage_share",
"census_trading_day",
"census_measured_at",
"last_scored_at",
"last_scored_age_seconds",
"median_scored_at",
"oldest_scored_at",
"oldest_scored_age_seconds",
"scored_within_24h",
"scored_within_24h_share",
"older_than_7d",
"latest_trading_day",
"methodology_version",
"methodology_versions",
"population_basis",
"detail"
],
"type": "object"
},
"version": {
"const": "1.14.0",
"description": "The contract version this response was produced under; the same value as X-API-Version.",
"type": "string"
}
},
"required": [
"billing_gate",
"version",
"generated_at",
"cache",
"state",
"temporal_window",
"degraded_reasons",
"sources",
"institutional_delivery"
],
"type": "object"
}
},
{
"description": "List filers with official identity (congressional filers carry their Bioguide ID; executive-branch filers return null with an explanation — identifiers are never invented). Filter by bioguide, by the exact member_id a disclosure row carries, or by a substring of the name as filed. Resolve a person with name first, then confirm with the returned member_id or bioguide.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bioguide": {
"description": "Official Bioguide ID, e.g. P000197",
"type": "string"
},
"member_id": {
"description": "Exact filer identifier from a disclosure row, e.g. nancy-pelosi",
"type": "string"
},
"name": {
"description": "Case-insensitive substring of the filer's full name, e.g. pelosi",
"maxLength": 80,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "list_members",
"outputSchema": {
"additionalProperties": false,
"properties": {
"cache": {
"additionalProperties": false,
"properties": {
"age_header": {
"type": "null"
},
"browser_max_age_seconds": {
"const": 0,
"type": "number"
},
"cdn_max_age_seconds": {
"const": 0,
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 0,
"type": "number"
},
"policy": {
"const": "private-no-store",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header"
],
"type": "object"
},
"count": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"data": {
"items": {
"additionalProperties": false,
"properties": {
"chamber": {
"description": "House, Senate or executive-branch filer class from the directory; null when unavailable.",
"type": [
"string",
"null"
]
},
"coverage": {
"additionalProperties": false,
"description": "Existing directory coverage semantics retained. In the paginated response, read at coverage.served_at in the same statement as identity.",
"properties": {
"average_filing_delay_days": {
"description": "Directory aggregate of transaction-to-filing days, rounded by the existing SQL view; null without measured intervals. Not a timeliness verdict.",
"type": [
"number",
"null"
]
},
"disclosures_available": {
"description": "Rows counted by the existing directory's candidate-view aggregate for this member, not a separately pinned API-version count.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"filings_pending_qualification": {
"description": "Nonnegative difference between directory total held rows and candidate aggregate rows; not a per-reason exclusion census.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"filings_pending_receipt": {
"description": "Pending-receipt rows reported by the directory's latest member coverage observation, or its executive-branch receipt predicate; not distinct document count.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"latest_filed_date": {
"description": "Maximum filing date among this member's directory candidate rows; null without one.",
"type": [
"string",
"null"
]
}
},
"required": [
"disclosures_available",
"filings_pending_receipt",
"filings_pending_qualification",
"latest_filed_date",
"average_filing_delay_days"
],
"type": "object"
},
"district": {
"anyOf": [
{
"pattern": "^[A-Z]{2}-\\d+$",
"type": "string"
},
{
"type": "null"
}
],
"description": "House district as `STATE-N`, 0 for an at-large seat; null for senators and executive-branch filers. The same form every disclosure row's member.district uses."
},
"full_name": {
"description": "Name carried by the existing directory; null when unavailable.",
"type": [
"string",
"null"
]
},
"identity": {
"additionalProperties": false,
"description": "Directory identity join, independent of financial disclosure counts.",
"properties": {
"bioguide": {
"description": "Mapped official congressional Bioguide ID, or null when unmapped or inapplicable.",
"type": [
"string",
"null"
]
},
"note": {
"description": "Explanation of a missing identity mapping; null when an identifier is present.",
"type": [
"string",
"null"
]
},
"system": {
"const": "us_congress_bioguide",
"description": "Identifier namespace, not a statement that every filer has an identifier in it.",
"type": "string"
}
},
"required": [
"bioguide",
"system",
"note"
],
"type": "object"
},
"member_id": {
"description": "Filer identifier from the directory; the ascending key for opt-in pagination.",
"type": "string"
},
"party": {
"description": "Directory party label, or null without a mapping.",
"type": [
"string",
"null"
]
},
"state": {
"description": "Directory state code, or null when unavailable or inapplicable.",
"type": [
"string",
"null"
]
}
},
"required": [
"member_id",
"identity",
"full_name",
"chamber",
"party",
"state",
"district",
"coverage"
],
"type": "object"
},
"type": "array"
},
"directory": {
"additionalProperties": false,
"description": "Which relation answered and how old it is. Present on every directory response so a reader never has to assume the age of what they were served.",
"properties": {
"fallback_reason": {
"anyOf": [
{
"enum": [
"snapshot_unreadable",
"snapshot_unstamped",
"snapshot_older_than_declared_bound"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Why the live view answered, or null when the snapshot did. Published rather than hidden: a directory served from an unexpected source is a fact about this response."
},
"max_age_seconds": {
"description": "The age past which the snapshot is refused and the live view answers instead. A bound this response was checked against, not a service commitment.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"refreshed_at": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the snapshot rows in this response were copied from the view. Null when the live view answered, because a live read has no refresh instant to report."
},
"source": {
"description": "Which relation answered. `snapshot` is the four-hourly copy of the directory view; `live_view` is the view itself, used whenever the snapshot cannot be trusted. Both carry identical rows by construction: the snapshot has no predicate of its own.",
"enum": [
"snapshot",
"live_view"
],
"type": "string"
}
},
"required": [
"source",
"refreshed_at",
"max_age_seconds",
"fallback_reason"
],
"type": "object"
},
"identity_join": {
"enum": [
"measured",
"unavailable"
],
"type": "string"
},
"notice": {
"minLength": 1,
"type": "string"
},
"served_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"version": {
"const": "1.14.0",
"type": "string"
}
},
"required": [
"data",
"count",
"identity_join",
"served_at",
"directory",
"cache",
"version",
"notice"
],
"type": "object"
}
},
{
"description": "Search receipt-linked US government financial disclosures. Both chambers of Congress under the STOCK Act, plus executive-branch OGE filings -- filter chamber='executive' for those, which is where the President's disclosures are. Every row resolves to the government's own PDF via receipt.url — cite it. Supports point-in-time reconstruction via as_of (rows observed on or before that timestamp; no look-ahead bias) and change polling via updated_since. Paginate with the returned page.next_cursor.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"as_of": {
"description": "ISO timestamp: only rows first observed on/before this instant",
"type": "string"
},
"chamber": {
"description": "Filter by filing body. 'house' and 'senate' are STOCK Act periodic transaction reports; 'executive' is executive-branch OGE filings, which is where the President's disclosures are. Omit to search all.",
"enum": [
"house",
"senate",
"executive"
],
"type": "string"
},
"cursor": {
"description": "Opaque page.next_cursor from a previous call",
"type": "string"
},
"limit": {
"description": "Rows per page (free tier caps at 25; licensed 1000)",
"type": "number"
},
"member_id": {
"description": "Filter to one filer by slug, e.g. donald-trump or nancy-pelosi. Use list_members to resolve a name to its identifier.",
"type": "string"
},
"min_delay_days": {
"description": "Only rows filed at least this many days after the transaction. The STOCK Act window is 45 days, so 46 returns filings outside it. Rows without a computed delay are excluded, not guessed at.",
"type": "number"
},
"ticker": {
"description": "Filter by ticker symbol, e.g. NVDA",
"type": "string"
},
"updated_since": {
"description": "ISO timestamp: only rows first observed after this instant",
"type": "string"
},
"within_statutory_window": {
"description": "false returns only filings made outside the statutory window that applies to that row (served as statutory_window_days); true returns only filings inside it. Prefer this over min_delay_days when the question is 'was it late', because the boundary is the row's own window, not a number you supply. Annual reports have no window and are excluded by either value.",
"type": "boolean"
}
},
"type": "object"
},
"name": "search_disclosures",
"outputSchema": {
"additionalProperties": false,
"properties": {
"access": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 25,
"type": "number"
},
"no_key_required": {
"const": true,
"type": "boolean"
},
"requests_per_hour": {
"const": 60,
"type": "number"
},
"tier": {
"const": "free",
"type": "string"
},
"upgrade": {
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 1000,
"type": "number"
},
"request_a_key": {
"format": "uri",
"type": "string"
}
},
"required": [
"max_rows_per_request",
"request_a_key"
],
"type": "object"
}
},
"required": [
"tier",
"max_rows_per_request",
"requests_per_hour",
"no_key_required",
"upgrade"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"max_rows_per_request": {
"const": 1000,
"type": "number"
},
"tier": {
"enum": [
"free",
"developer",
"evaluator"
],
"type": "string"
}
},
"required": [
"tier",
"max_rows_per_request"
],
"type": "object"
}
]
},
"cache": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"age_header": {
"const": "Age",
"type": "string"
},
"browser_max_age_seconds": {
"const": 0,
"type": "number"
},
"cdn_max_age_seconds": {
"const": 300,
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 300,
"type": "number"
},
"freshness_reference": {
"additionalProperties": false,
"properties": {
"basis": {
"minLength": 1,
"type": "string"
},
"delivery_max_staleness_seconds": {
"const": 300,
"type": "number"
},
"delivery_to_source_threshold_ratio": {
"const": "1/72",
"type": "string"
},
"source": {
"const": "congress",
"type": "string"
},
"source_expected_max_age_seconds": {
"const": 21600,
"type": "number"
}
},
"required": [
"source",
"source_expected_max_age_seconds",
"delivery_max_staleness_seconds",
"delivery_to_source_threshold_ratio",
"basis"
],
"type": "object"
},
"policy": {
"const": "public",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header",
"freshness_reference"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"age_header": {
"type": "null"
},
"browser_max_age_seconds": {
"const": 0,
"type": "number"
},
"cdn_max_age_seconds": {
"const": 0,
"type": "number"
},
"declared_max_staleness_seconds": {
"const": 0,
"type": "number"
},
"policy": {
"const": "private-no-store",
"type": "string"
}
},
"required": [
"policy",
"browser_max_age_seconds",
"cdn_max_age_seconds",
"declared_max_staleness_seconds",
"age_header"
],
"type": "object"
}
]
},
"coverage": {
"additionalProperties": false,
"properties": {
"as_of": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"basis": {
"minLength": 1,
"type": "string"
},
"out_of_range": {
"description": "True when requested_as_of predates retained point-in-time history. This is distinct from a genuine empty result.",
"type": "boolean"
},
"point_in_time": {
"type": "boolean"
},
"point_in_time_floor": {
"description": "Inclusive lower bound for as_of and updated_since. Requests one millisecond before this instant are refused rather than returned as an empty result.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"requested_as_of": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
]
},
"rows_dropped_failed_validation": {
"description": "Rows withheld because the serving view and executable response contract disagreed. Any value above zero means the page is partial.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"rows_returned": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"served_at": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
}
},
"required": [
"as_of",
"requested_as_of",
"point_in_time",
"point_in_time_floor",
"out_of_range",
"rows_returned",
"rows_dropped_failed_validation",
"served_at",
"basis"
],
"type": "object"
},
"data": {
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"additionalProperties": false,
"description": "The bounded range exactly as disclosed. A missing amount is never estimated.",
"properties": {
"basis": {
"const": "bounded_range_as_disclosed",
"description": "States what the amount fields are: the bounded range as the filing disclosed it. The only basis served today; a future exact-amount source would carry its own.",
"type": "string"
},
"currency": {
"const": "USD",
"description": "Always USD. Every disclosure form Veridion serves reports in dollars.",
"type": "string"
},
"midpoint": {
"description": "Veridion's arithmetic midpoint of range_low and range_high, rounded to the dollar. It is a convenience, not a disclosed value: the filer reported a band, never a figure. Absent when the band is open-ended (\"over\", \"more than\", \"less than\" and their variants) because a midpoint of an unbounded range is invented. Use it only with the range shown beside it.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"range_high": {
"description": "Upper bound of the disclosed band, in whole USD. For an open-ended band such as \"over $50,000,000\" this is the stated threshold, and midpoint is absent.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"range_low": {
"description": "Lower bound of the band the filing discloses, in whole USD, as printed on the form ($1,001 to $15,000 serves 1001).",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"verbatim_text": {
"description": "The amount text exactly as it appears on the filing, before any parsing. When range_low and range_high disagree with this text, this text is the filing.",
"minLength": 1,
"type": "string"
}
},
"required": [
"range_low",
"range_high",
"currency",
"basis",
"verbatim_text"
],
"type": "object"
},
"asset": {
"additionalProperties": false,
"description": "The instrument as the filing names it, classified from the office's own asset code. Nothing is resolved against a securities master; a ticker is served only when the filing states one.",
"properties": {
"asset_type": {
"description": "Classified from the office's own asset code on congressional filings: ST equity, OP option, MF and EF fund, GS government_security, PS partnership, CT crypto, anything else other. OGE lines carry equity, fund or other. etf, municipal_bond and corporate_bond are reserved in the enum and produced by no current source.",
"enum": [
"equity",
"etf",
"municipal_bond",
"corporate_bond",
"government_security",
"option",
"fund",
"partnership",
"crypto",
"other"
],
"type": "string"
},
"description": {
"description": "Free-text description from the filing's asset line when the office publishes one separately from the name; null otherwise. Never composed by Veridion.",
"type": [
"string",
"null"
]
},
"name": {
"description": "The asset as named on the filing, whitespace collapsed. If the filing names nothing but gives a ticker, the ticker; if it gives neither, the literal \"Disclosed asset\" so the row is not silently dropped.",
"minLength": 1,
"type": "string"
},
"source_code": {
"description": "The asset code exactly as the office recorded it (ST, OP, MF, EF, GS, PS, CT and others), upper-cased; the input to asset_type. Null when the source carries none.",
"type": [
"string",
"null"
]
},
"ticker": {
"description": "The ticker as it appears on the filing, upper-cased; null when the filing states none (most OGE lines, bonds, funds without a symbol, and paper filings whose ticker column is blank). Not looked up or inferred from the asset name.",
"type": [
"string",
"null"
]
}
},
"required": [
"ticker",
"name",
"asset_type",
"source_code",
"description"
],
"type": "object"
},
"change": {
"additionalProperties": false,
"description": "Full pulls contain upserts. updated_since also emits supersede events; remove the row only when version_id matches the version held locally. A withdrawn stable identifier remains directly retrievable with its reason.",
"properties": {
"observed_at": {
"description": "When Veridion observed the event this row reports (the version's first observation for an upsert; the supersession instant for a supersede).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"reason": {
"description": "Why a row was withdrawn or superseded, when the pipeline recorded one; null for an ordinary upsert. States the mechanism, never a motive.",
"type": [
"string",
"null"
]
},
"state": {
"description": "active: served in snapshot reads. withdrawn: no longer served in snapshots but still directly retrievable by disclosure_id, with reason set.",
"enum": [
"active",
"withdrawn"
],
"type": "string"
},
"type": {
"description": "upsert: this version is the one to hold. supersede: a version you may hold has been replaced, and is only emitted on updated_since reads.",
"enum": [
"upsert",
"supersede"
],
"type": "string"
}
},
"required": [
"type",
"state",
"observed_at",
"reason"
],
"type": "object"
},
"content_hash": {
"description": "sha256, hex, of the canonical JSON array [\"veridion-disclosure-content-v1\", disclosure_id, version_id, member.member_id, member.full_name, member.chamber, asset.ticker, asset.name, asset.asset_type, asset.source_code, asset.description, transaction.type, transaction.date, filing.type, filing.filed_date, amount.range_low, amount.range_high, amount.verbatim_text, owner.label, owner.determination, receipt.document_id, receipt.url, receipt.source_system, receipt.page, provenance.source_line_number] using the served values exactly (null where null). Recompute it from this row to check the calculation; store it to check later that the same version_id still serves the same content. Derived fields (delay_days, statutory window, midpoint), timestamps, parser and methodology versions, and the change block are excluded, so a corrected derivation rule does not change the hash of an unchanged filing. The basis label changes if the field list ever changes.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"disclosure_id": {
"description": "Permanent identifier for the filing-derived transaction. It is never reused; parser versions and restatements retain this identifier.",
"minLength": 1,
"type": "string"
},
"filing": {
"additionalProperties": false,
"description": "The report this row was parsed from and its timing against the STOCK Act's 45-day transaction window, computed from the two dates on the filing.",
"properties": {
"delay_days": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "filed_date minus transaction.date, in whole days, as the two dates appear on the filing. Null when either is absent. Not clamped: a filing that predates its own transaction would serve a negative value rather than a corrected one."
},
"filed_date": {
"description": "The date the office records the report as filed. The STOCK Act window and delay_days are measured to this date.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"statutory_window_days": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "45 for a periodic transaction report, the STOCK Act's transaction-level reporting window; null for annual reports and unknown forms, which carry no per-transaction deadline. A constant of the form, not a per-row judgement. Note that 45 days from the transaction is only one of the two clocks: a report is due by the EARLIER of 45 days from the transaction or 30 days from the filer being notified of it. The House PTR form includes a notification-date column; this dataset does not capture it, so the 30-day clock is not represented here."
},
"type": {
"anyOf": [
{
"enum": [
"periodic_transaction_report",
"annual_report"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "periodic_transaction_report for House Clerk and Senate eFD PTRs and OGE Form 278-T; annual_report for OGE Form 278e; null when the receipt URL matches no known form pattern. Determined from the office and receipt, not from the row's text."
},
"within_statutory_window": {
"description": "Present only when the filing type has an applicable transaction-level window and delay_days is known. True means delay_days <= statutory_window_days -- that is, within the 45-day transaction clock. It does NOT mean the filing was timely: the 30-day notification clock may have expired first, and we do not measure it. Do not treat this field as a compliance determination.",
"type": "boolean"
}
},
"required": [
"type",
"filed_date",
"delay_days",
"statutory_window_days"
],
"type": "object"
},
"identity_basis": {
"description": "Identity uses only filer, document, filed instrument, transaction date and type, amount range, and owner. Parser line, span, version, and run identifiers are excluded.",
"enum": [
"government_filing_facts"
],
"type": "string"
},
"member": {
"additionalProperties": false,
"description": "The filer, resolved against the congressional directory where a match exists. Identity fields only; what the filing itself says is in the receipt.",
"properties": {
"chamber": {
"description": "house or senate from the office that published the receipt; executive for Office of Government Ethics filers.",
"enum": [
"house",
"senate",
"executive"
],
"type": "string"
},
"district": {
"anyOf": [
{
"pattern": "^[A-Z]{2}-\\d+$",
"type": "string"
},
{
"type": "null"
}
],
"description": "House district as `STATE-N` with N an integer and 0 an at-large seat (`GA-14`, `AK-0`); null for senators, executive-branch filers, and rows whose filing does not state one. The same form the /v1/members directory uses."
},
"full_name": {
"description": "The filer's name from the official directory where matched; otherwise the name as it appears on the filing with honorifics (Hon., Sen., Rep.) removed.",
"minLength": 1,
"type": "string"
},
"member_id": {
"description": "Veridion's stable identifier for the filer, the same value /v1/members/{member_id} resolves and the member_id= filter takes. Derived from the name as filed; it does not change across filings or restatements.",
"minLength": 1,
"type": "string"
},
"party": {
"description": "Democrat, Republican or Independent, from the congressional directory's D, R or I; null when the directory records none and for every executive-branch filer.",
"type": [
"string",
"null"
]
},
"person_id": {
"description": "The filer's official Bioguide ID (for example G000596) where the congressional directory has one; null for executive-branch filers and for congressional filers the directory could not match. Never invented.",
"type": [
"string",
"null"
]
},
"state": {
"description": "Two-letter state of the seat, as recorded in the congressional directory; null for executive-branch filers.",
"type": [
"string",
"null"
]
}
},
"required": [
"member_id",
"person_id",
"full_name",
"chamber",
"party",
"state",
"district"
],
"type": "object"
},
"owner": {
"additionalProperties": false,
"description": "Whose holding the transaction concerns, from the filing's Owner column, and how that value was established.",
"properties": {
"determination": {
"description": "How the owner value was established. owner_column_undetermined means the filing row was located but the extracted text did not positively establish whether its Owner column was blank.",
"enum": [
"parsed_from_filing",
"receipt_verified_blank",
"owner_column_undetermined",
"not_applicable_for_form"
],
"type": "string"
},
"label": {
"description": "The filing's Owner column: self, spouse, joint or dependent_child as marked; not_specified_in_filing when the official receipt was checked and the column is blank; undetermined when the row was located but the column could not be read with confidence. See determination for how the value was established.",
"enum": [
"self",
"spouse",
"joint",
"dependent_child",
"not_specified_in_filing",
"undetermined"
],
"type": "string"
}
},
"required": [
"label",
"determination"
],
"type": "object"
},
"provenance": {
"additionalProperties": false,
"description": "How and when this version of the row was produced, and when the row was first observed, which is the instant as_of reads against. None of these fields is in content_hash.",
"properties": {
"first_observed_at": {
"description": "When Veridion first observed this row. Immutable and used by the as_of filter.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"methodology_version": {
"description": "The admission and derivation rules this row was served under, currently receipt-or-drop-v1. A rule change ships as a new label and a changelog entry; see the stability policy.",
"minLength": 1,
"type": "string"
},
"parsed_at": {
"description": "When the parser generation named in parser_version produced this version of the row. A reparse under a new parser writes a new version with its own parsed_at; the earlier version stays in /history.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"parser_version": {
"description": "The parser generation that produced this version (for example house-ptr-line-v2). Not part of content_hash, so a reparse that changes no filing fact changes no hash.",
"minLength": 1,
"type": "string"
},
"source_ingested_at": {
"description": "When the source record entered Veridion's warehouse. first_observed_at is never later than this; the two differ when identity resolution carried an earlier observation forward.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"source_line_number": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "House Clerk PTR rows carry a PDF source-line coordinate when the parser recorded one; null rows are reconciled by reason, and parser-output gaps are enumerated in house_clerk_gap_register. Senate eFD records are parsed as filing transactions rather than House PTR PDF lines, so source_line_number is null by design."
},
"transcription_method": {
"description": "Present only for OGE rows. pdf_text_layer means the official PDF text was parsed; verified_transcription means the row was read from a checked transcription whose SHA-256 matched the official scanned PDF at ingestion.",
"enum": [
"pdf_text_layer",
"verified_transcription"
],
"type": "string"
}
},
"required": [
"source_line_number",
"parsed_at",
"parser_version",
"methodology_version",
"source_ingested_at",
"first_observed_at"
],
"type": "object"
},
"receipt": {
"additionalProperties": false,
"description": "The government receipt this row was parsed from. Preserve the access label.",
"properties": {
"access": {
"description": "`gated` means the official Senate eFD URL requires acknowledging its access agreement before the filing is displayed; other supported sources are `open`.",
"enum": [
"open",
"gated"
],
"type": "string"
},
"content_type": {
"description": "MIME type of the document at receipt.url: application/pdf for House Clerk and OGE documents, text/html for Senate eFD filings, which the Senate publishes as pages.",
"minLength": 1,
"type": "string"
},
"document_id": {
"description": "The office's own identifier for the document: the House Clerk's numeric document id, the Senate eFD report id, or the OGE document id. Resolves at /v1/receipts/{document_id}.",
"minLength": 1,
"type": "string"
},
"page": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Page of the document the row was parsed from, where the source is paginated and the parser recorded it (OGE filings); null for congressional rows, whose position is given by provenance.source_line_number instead."
},
"retrieved_at": {
"description": "When Veridion's warehouse first recorded the source document this row comes from. Independent of provenance.parsed_at, which belongs to the parser generation and may be earlier when a later retrieval re-attached an existing parse.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"source_system": {
"description": "The office that published the receipt: house_clerk, senate_efd or oge. sec_edgar is declared in the enum and serves no rows; /v1/status reports it as no_data.",
"enum": [
"house_clerk",
"senate_efd",
"sec_edgar",
"oge"
],
"type": "string"
},
"url": {
"description": "The government's URL for the document this row was parsed from, on the office's own domain. Never a Veridion-hosted copy. Cite it beside any claim built on the row.",
"format": "uri",
"type": "string"
}
},
"required": [
"document_id",
"url",
"access",
"source_system",
"content_type",
"page",
"retrieved_at"
],
"type": "object"
},
"transaction": {
"additionalProperties": false,
"description": "What was done and on what date, as stated on the filing.",
"properties": {
"date": {
"description": "The transaction date as stated on the filing. Not the filing date, and not adjusted for weekends or holidays.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"type": {
"description": "buy from a P code or a purchase/buy label; sell from an S code or a sale/sell label; exchange from an E code or an exchange label; other for anything the filing marks differently. Partial versus full sale is not distinguished here; the filing's own wording is in amount.verbatim_text and the receipt.",
"enum": [
"buy",
"sell",
"exchange",
"other"
],
"type": "string"
}
},
"required": [
"type",
"date"
],
"type": "object"
},
"version_id": {
"description": "Immutable parse-generation identifier. Use disclosure_id, not version_id, for downstream identity across a restatement.",
"minLength": 1,
"type": "string"
}
},
"required": [
"disclosure_id",
"version_id",
"content_hash",
"identity_basis",
"change",
"member",
"asset",
"transaction",
"filing",
"amount",
"owner",
"receipt",
"provenance"
],
"type": "object"
},
"type": "array"
},
"notice": {
"minLength": 1,
"type": "string"
},
"page": {
"additionalProperties": false,
"properties": {
"has_more": {
"type": "boolean"
},
"limit": {
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"mode": {
"enum": [
"snapshot",
"changes"
],
"type": "string"
},
"next_cursor": {
"description": "Token generated from the last fetched row's position, before response validation, when another page exists and that position is valid; null otherwise. A disclosure cursor is a position token, not a credential. It carries the read mode, a fingerprint of the normalized filters, time boundaries, the pinned snapshot generation and pagination position; it carries no API key, license, tier, scope or authorization grant. Every replay authenticates the current caller independently and applies that caller's permissions, row cap and rate budget, including the free tier's limits. API-key rotation or revocation does not invalidate the cursor for another permitted caller; a revoked key itself is still refused. Later dataset generations do not advance the pinned generation. Replay still requires matching filters, retained snapshot history and the server's cursor-signing key; changing that signing key is distinct from rotating a client's API key and invalidates existing tokens. The current format contains no expiry field, which is not a guarantee of indefinite availability. The payload is readable base64url JSON protected by an HMAC, not encryption: time boundaries and position are visible, and ordinary filters are an unkeyed SHA256 fingerprint against which guesses can be tested offline. Treat a cursor as you would a URL containing your query: do not publish it or put it in shared logs, and return it unchanged rather than depending on its internal encoding.",
"type": [
"string",
"null"
]
},
"next_updated_since": {
"description": "The watermark to pass as `updated_since` on the next incremental call, after walking this result set to its last page. It equals this response's pinned snapshot_as_of, so a caller that stores it receives everything changed after this response and nothing twice. It is always at or after the retained-history floor, so it is always a value this API accepts. Do NOT derive a watermark from a row's change.observed_at: rows observed before retained history began are served with their true observation instant, and that instant predates the floor. Added at 1.3.23 after a measured 98.7% of served rows carried such an instant.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"requested_updated_since": {
"anyOf": [
{
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
{
"type": "null"
}
],
"description": "The normalized updated_since filter applied to this incremental page. Null for a full snapshot pull."
},
"snapshot_as_of": {
"description": "Pinned on page one and carried inside every cursor. Later writes cannot shift the result set during pagination.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"snapshot_generation": {
"description": "Atomic dataset generation pinned on page one. A value of zero means the requested as_of predates retained exact payload history, or the current-row fallback is active while temporal history is unavailable.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"limit",
"has_more",
"next_cursor",
"mode",
"requested_updated_since",
"snapshot_as_of",
"snapshot_generation",
"next_updated_since"
],
"type": "object"
},
"version": {
"const": "1.14.0",
"type": "string"
}
},
"required": [
"data",
"coverage",
"page",
"access",
"cache",
"version",
"notice"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6316eb4453bc5d5ac29749529347e20981ea41f21a07f101a1a35dce955bd437 | sha256sum