Koskamo

Veridion Markets MCP

An official MCP server operated by Veridion Markets that provides AI agents with tools to query US government financial disclosures, including Congressional STOCK Act reports and Executive Branch OGE filings. It enables searching disclosures, retrieving history, listing members, and checking coverage, with every record linked to the original government source document.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Veridion Markets MCP logo, by Veridion MarketsVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Veridion Markets
MCP endpoint (Streamable HTTP)
https://www.veridionmarkets.com/api/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to veridionmarkets.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for stock trades by ticker or transaction type
  • Retrieve disclosure history for specific officials
  • List members of Congress or executive branch officials
  • Check live dataset coverage and provenance splits

Source and maintenance

Vendor evidenceRegistry 1.14.0

Protocol and capabilities

Server
veridion-disclosure-api 1.20.0
MCP protocol negotiated in check
2025-11-25
Tools
5 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

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; for an amended filing, report what changed and when, never why. Anonymous calls return up to 25 rows per request and 60 requests per hour per IP; a licensed key is sent as Authorization: Bearer. 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

5 advertised

search_disclosures
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search receipt-linked US government financial disclosures: both chambers of Congress under the STOCK Act, plus executive-branch OGE filings (chamber 'executive', which holds the President's disclosures). Every row carries receipt.url, the government's own document for that row: a PDF page for House and OGE filings, or the Senate eFD report page, which the Senate site opens behind its own access agreement (receipt.access 'gated'). 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. Results are paged; page.next_cursor continues the listing.

search_disclosures input schema
{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string",
      "description": "ISO timestamp: only rows first observed on/before this instant"
    },
    "limit": {
      "type": "number",
      "description": "Rows per page: 10 when omitted; up to 25 without a key and 1000 with a licensed key. A larger request returns the maximum, not an error."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque page.next_cursor from a previous call"
    },
    "ticker": {
      "type": "string",
      "description": "Filter by ticker symbol, e.g. NVDA"
    },
    "chamber": {
      "enum": [
        "house",
        "senate",
        "executive"
      ],
      "type": "string",
      "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."
    },
    "member_id": {
      "type": "string",
      "description": "Filter to one filer by slug, e.g. donald-trump or nancy-pelosi. The same slug appears as member.member_id on every row."
    },
    "updated_since": {
      "type": "string",
      "description": "ISO timestamp: only rows first observed after this instant"
    },
    "min_delay_days": {
      "type": "number",
      "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."
    },
    "within_statutory_window": {
      "type": "boolean",
      "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. Unlike min_delay_days, the boundary is each row's own window rather than a supplied number. Annual reports have no window and are excluded by either value."
    }
  },
  "additionalProperties": false
}
search_disclosures output schema
{
  "type": "object",
  "required": [
    "data",
    "coverage",
    "page",
    "access",
    "cache",
    "version",
    "notice"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "disclosure_id",
          "version_id",
          "content_hash",
          "identity_basis",
          "change",
          "member",
          "asset",
          "instrument",
          "transaction",
          "filing",
          "amount",
          "owner",
          "receipt",
          "provenance"
        ],
        "properties": {
          "asset": {
            "type": "object",
            "required": [
              "ticker",
              "name",
              "asset_type",
              "source_code",
              "description"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "ticker": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "asset_type": {
                "enum": [
                  "equity",
                  "etf",
                  "municipal_bond",
                  "corporate_bond",
                  "government_security",
                  "option",
                  "fund",
                  "partnership",
                  "crypto",
                  "other"
                ],
                "type": "string",
                "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."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "source_code": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "owner": {
            "type": "object",
            "required": [
              "label",
              "determination"
            ],
            "properties": {
              "label": {
                "enum": [
                  "self",
                  "spouse",
                  "joint",
                  "dependent_child",
                  "not_specified_in_filing",
                  "undetermined"
                ],
                "type": "string",
                "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."
              },
              "determination": {
                "enum": [
                  "parsed_from_filing",
                  "receipt_verified_blank",
                  "owner_column_undetermined",
                  "not_applicable_for_form"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "Whose holding the transaction concerns, from the filing's Owner column, and how that value was established.",
            "additionalProperties": false
          },
          "amount": {
            "type": "object",
            "required": [
              "range_low",
              "range_high",
              "currency",
              "basis",
              "verbatim_text"
            ],
            "properties": {
              "basis": {
                "enum": [
                  "bounded_range_as_disclosed",
                  "open_ended_as_disclosed"
                ],
                "type": "string",
                "description": "Names whether the filing disclosed a bounded or one of the two enumerated House PTR open-ended brackets. Neither basis represents an exact amount."
              },
              "currency": {
                "type": "string",
                "const": "USD",
                "description": "Always USD. Every disclosure form Veridion serves reports in dollars."
              },
              "midpoint": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "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."
              },
              "range_low": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Lower bound of the band the filing discloses, in whole USD, as printed on the form ($1,001 to $15,000 serves 1001)."
              },
              "range_high": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Upper bound of the disclosed band, in whole USD. Null only for the two enumerated House PTR open-ended brackets; never a fabricated ceiling."
              },
              "verbatim_text": {
                "type": "string",
                "minLength": 1,
                "description": "The filed amount label; casing is canonicalized for the two enumerated House PTR open-ended brackets. Other text retains the parsed filing's spelling. The source line and receipt remain the source of truth."
              }
            },
            "description": "The disclosed band. Only two enumerated House PTR labels have an open upper bound; a missing amount is never estimated.",
            "additionalProperties": false
          },
          "change": {
            "type": "object",
            "required": [
              "type",
              "state",
              "observed_at",
              "reason"
            ],
            "properties": {
              "type": {
                "enum": [
                  "upsert",
                  "supersede"
                ],
                "type": "string",
                "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."
              },
              "state": {
                "enum": [
                  "active",
                  "withdrawn"
                ],
                "type": "string",
                "description": "active: served in snapshot reads. withdrawn: no longer served in snapshots but still directly retrievable by disclosure_id, with reason set."
              },
              "reason": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Why a row was withdrawn or superseded, when the pipeline recorded one; null for an ordinary upsert. States the mechanism, never a motive."
              },
              "observed_at": {
                "type": "string",
                "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))$",
                "description": "When Veridion observed the event this row reports (the version's first observation for an upsert; the supersession instant for a supersede)."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "filing": {
            "type": "object",
            "required": [
              "type",
              "filed_date",
              "delay_days",
              "statutory_window_days"
            ],
            "properties": {
              "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."
              },
              "delay_days": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "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": {
                "type": "string",
                "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])))$",
                "description": "The date the office records the report as filed. The STOCK Act window and delay_days are measured to this date."
              },
              "statutory_window_days": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "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."
              },
              "within_statutory_window": {
                "type": "boolean",
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "member": {
            "type": "object",
            "required": [
              "member_id",
              "person_id",
              "full_name",
              "chamber",
              "party",
              "state",
              "district"
            ],
            "properties": {
              "party": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Two-letter state of the seat, as recorded in the congressional directory; null for executive-branch filers."
              },
              "chamber": {
                "enum": [
                  "house",
                  "senate",
                  "executive"
                ],
                "type": "string",
                "description": "house or senate from the office that published the receipt; executive for Office of Government Ethics filers."
              },
              "district": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[A-Z]{2}-\\d+$"
                  },
                  {
                    "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": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "member_id": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "person_id": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              }
            },
            "description": "The filer, resolved against the congressional directory where a match exists. Identity fields only; what the filing itself says is in the receipt.",
            "additionalProperties": false
          },
          "receipt": {
            "type": "object",
            "required": [
              "document_id",
              "url",
              "access",
              "source_system",
              "content_type",
              "page",
              "retrieved_at"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "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."
              },
              "page": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "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."
              },
              "access": {
                "enum": [
                  "open",
                  "gated"
                ],
                "type": "string",
                "description": "`gated` means the official Senate eFD URL requires acknowledging its access agreement before the filing is displayed; other supported sources are `open`."
              },
              "document_id": {
                "type": "string",
                "minLength": 1,
                "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}."
              },
              "content_type": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "retrieved_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "source_system": {
                "enum": [
                  "house_clerk",
                  "senate_efd",
                  "sec_edgar",
                  "oge"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "The government receipt this row was parsed from. Preserve the access label.",
            "additionalProperties": false
          },
          "instrument": {
            "type": "object",
            "required": [
              "kind",
              "kind_reason",
              "ticker",
              "ticker_status",
              "ticker_reason",
              "underlying",
              "option_type",
              "strike",
              "expiration",
              "contracts",
              "field_evidence"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "equity",
                  "option",
                  "etf",
                  "bond",
                  "fund",
                  "crypto",
                  "other"
                ],
                "type": "string",
                "description": "Instrument category supported by the printed code or text. Option mentions include exercised options even where the original source code is ST. Other means unclassified, not a guessed equity."
              },
              "strike": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d+(?:\\.\\d+)?$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Exact printed decimal strike, with grouping separators and dollar sign removed. String avoids binary floating-point rounding. Currency is not inferred."
              },
              "ticker": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Single printed symbol, uppercased without joining tokens. An explicit ticker label or security-named parenthetical may resolve a blank ticker field; issuer names alone never do. Not a guarantee of an executable option-series identifier."
              },
              "contracts": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Explicit count of options or contracts. Shares and units are never converted, nor is a partial-sale count calculated from holdings."
              },
              "expiration": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Date as printed, not necessarily ISO. Two-digit years retain two digits; no century or missing day is inferred. See field_evidence.expiration.reason."
              },
              "underlying": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Explicitly labelled underlying or the printed stock name on an option-related line. Never decoded from the ticker or resolved from an issuer lookup."
              },
              "kind_reason": {
                "type": "string",
                "minLength": 1,
                "description": "Named source-code or printed-text rule used to classify this line."
              },
              "option_type": {
                "anyOf": [
                  {
                    "enum": [
                      "call",
                      "put"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Call or put only when printed as the option type. Conflicting types and unlabelled verbs produce null."
              },
              "ticker_reason": {
                "type": "string",
                "minLength": 1,
                "description": "Exact ticker-resolution rule or named missing/ambiguous reason. Never empty, including for untickered assets."
              },
              "ticker_status": {
                "enum": [
                  "printed",
                  "resolved_from_printed_text",
                  "missing",
                  "ambiguous",
                  "invalid"
                ],
                "type": "string",
                "description": "Distinguishes the original printed ticker field, a symbol resolved from explicit asset text, and missing, conflicting or malformed evidence."
              },
              "field_evidence": {
                "type": "object",
                "required": [
                  "underlying",
                  "option_type",
                  "strike",
                  "expiration",
                  "contracts"
                ],
                "properties": {
                  "strike": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Exact printed strike span, or the missing, malformed or conflicting-price reason.",
                    "additionalProperties": false
                  },
                  "contracts": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Explicit option/contract-count spans plus any share/unit spans. Describes quantity ambiguity without conversions or arithmetic.",
                    "additionalProperties": false
                  },
                  "expiration": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed expiration span and date-format/refusal rule. A two-digit year is identified explicitly and not expanded.",
                    "additionalProperties": false
                  },
                  "underlying": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed underlying name/label evidence or why an underlying was withheld.",
                    "additionalProperties": false
                  },
                  "option_type": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed call/put evidence, conflict or absence.",
                    "additionalProperties": false
                  }
                },
                "description": "Required per-field evidence for every option field, including missing fields and non-option rows.",
                "additionalProperties": false
              }
            },
            "description": "Additive projection from the filing's printed asset and description. Every absent or conflicting ticker or option term has a named reason. It is not an order instruction or a securities-master lookup; the original asset fields remain unchanged.",
            "additionalProperties": false
          },
          "provenance": {
            "type": "object",
            "required": [
              "source_line_number",
              "parsed_at",
              "parser_version",
              "methodology_version",
              "source_ingested_at",
              "first_observed_at"
            ],
            "properties": {
              "parsed_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "parser_version": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "first_observed_at": {
                "type": "string",
                "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))$",
                "description": "When Veridion first observed this row. Immutable and used by the as_of filter."
              },
              "source_ingested_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "source_line_number": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "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."
              },
              "methodology_version": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "transcription_method": {
                "enum": [
                  "pdf_text_layer",
                  "verified_transcription"
                ],
                "type": "string",
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable parse-generation identifier. Use disclosure_id, not version_id, for downstream identity across a restatement."
          },
          "transaction": {
            "type": "object",
            "required": [
              "type",
              "date"
            ],
            "properties": {
              "date": {
                "type": "string",
                "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])))$",
                "description": "The transaction date as stated on the filing. Not the filing date, and not adjusted for weekends or holidays."
              },
              "type": {
                "enum": [
                  "buy",
                  "sell",
                  "exchange",
                  "other"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "What was done and on what date, as stated on the filing.",
            "additionalProperties": false
          },
          "content_hash": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "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."
          },
          "disclosure_id": {
            "type": "string",
            "minLength": 1,
            "description": "Permanent identifier for the filing-derived transaction. It is never reused; parser versions and restatements retain this identifier."
          },
          "identity_basis": {
            "enum": [
              "government_filing_facts"
            ],
            "type": "string",
            "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."
          }
        },
        "additionalProperties": false
      }
    },
    "page": {
      "type": "object",
      "required": [
        "limit",
        "has_more",
        "next_cursor",
        "mode",
        "requested_updated_since",
        "snapshot_as_of",
        "snapshot_generation",
        "next_updated_since"
      ],
      "properties": {
        "mode": {
          "enum": [
            "snapshot",
            "changes"
          ],
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "maximum": 1000,
          "minimum": 1
        },
        "order": {
          "enum": [
            "filed_date_desc",
            "first_observed_at_asc",
            "change_generation_asc"
          ],
          "type": "string",
          "description": "Snapshot walks started in 1.15.0 sort filed_date descending (nulls last), then first_observed_at and disclosure_id ascending. Pre-1.15 cursors retain first_observed_at/disclosure_id ascending. Changes sort change_generation, change_sequence and event_id ascending. Snapshot membership and the incremental watermark do not depend on display order."
        },
        "has_more": {
          "type": "boolean"
        },
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "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."
        },
        "snapshot_as_of": {
          "type": "string",
          "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))$",
          "description": "Pinned on page one and carried inside every cursor. Later writes cannot shift the result set during pagination."
        },
        "next_updated_since": {
          "type": "string",
          "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))$",
          "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."
        },
        "snapshot_generation": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "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."
        },
        "requested_updated_since": {
          "anyOf": [
            {
              "type": "string",
              "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": "null"
            }
          ],
          "description": "The normalized updated_since filter applied to this incremental page. Null for a full snapshot pull."
        }
      },
      "additionalProperties": false
    },
    "cache": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "policy",
            "browser_max_age_seconds",
            "cdn_max_age_seconds",
            "declared_max_staleness_seconds",
            "age_header",
            "freshness_reference"
          ],
          "properties": {
            "policy": {
              "type": "string",
              "const": "public"
            },
            "age_header": {
              "type": "string",
              "const": "Age"
            },
            "cdn_max_age_seconds": {
              "type": "number",
              "const": 300
            },
            "freshness_reference": {
              "type": "object",
              "required": [
                "source",
                "source_expected_max_age_seconds",
                "delivery_max_staleness_seconds",
                "delivery_to_source_threshold_ratio",
                "basis"
              ],
              "properties": {
                "basis": {
                  "type": "string",
                  "minLength": 1
                },
                "source": {
                  "type": "string",
                  "const": "congress"
                },
                "delivery_max_staleness_seconds": {
                  "type": "number",
                  "const": 300
                },
                "source_expected_max_age_seconds": {
                  "type": "number",
                  "const": 21600
                },
                "delivery_to_source_threshold_ratio": {
                  "type": "string",
                  "const": "1/72"
                }
              },
              "additionalProperties": false
            },
            "browser_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "declared_max_staleness_seconds": {
              "type": "number",
              "const": 300
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "policy",
            "browser_max_age_seconds",
            "cdn_max_age_seconds",
            "declared_max_staleness_seconds",
            "age_header"
          ],
          "properties": {
            "policy": {
              "type": "string",
              "const": "private-no-store"
            },
            "age_header": {
              "type": "null"
            },
            "cdn_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "browser_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "declared_max_staleness_seconds": {
              "type": "number",
              "const": 0
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "access": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "tier",
            "max_rows_per_request",
            "requests_per_hour",
            "no_key_required",
            "upgrade"
          ],
          "properties": {
            "tier": {
              "type": "string",
              "const": "free"
            },
            "upgrade": {
              "type": "object",
              "required": [
                "max_rows_per_request",
                "request_a_key"
              ],
              "properties": {
                "request_a_key": {
                  "type": "string",
                  "format": "uri"
                },
                "max_rows_per_request": {
                  "type": "number",
                  "const": 1000
                }
              },
              "additionalProperties": false
            },
            "no_key_required": {
              "type": "boolean",
              "const": true
            },
            "requests_per_hour": {
              "type": "number",
              "const": 60
            },
            "max_rows_per_request": {
              "type": "number",
              "const": 25
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "tier",
            "max_rows_per_request"
          ],
          "properties": {
            "tier": {
              "enum": [
                "free",
                "developer",
                "evaluator"
              ],
              "type": "string"
            },
            "max_rows_per_request": {
              "type": "number",
              "const": 1000
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "notice": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "const": "1.20.0"
    },
    "coverage": {
      "type": "object",
      "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"
      ],
      "properties": {
        "as_of": {
          "type": "string",
          "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))$"
        },
        "basis": {
          "type": "string",
          "minLength": 1
        },
        "served_at": {
          "type": "string",
          "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))$"
        },
        "out_of_range": {
          "type": "boolean",
          "description": "True when requested_as_of predates retained point-in-time history. This is distinct from a genuine empty result."
        },
        "point_in_time": {
          "type": "boolean"
        },
        "rows_returned": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        },
        "requested_as_of": {
          "anyOf": [
            {
              "type": "string",
              "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": "null"
            }
          ]
        },
        "point_in_time_floor": {
          "type": "string",
          "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))$",
          "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."
        },
        "rows_dropped_failed_validation": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Rows withheld because the serving view and executable response contract disagreed. Any value above zero means the page is partial."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
search_disclosures annotations
{
  "title": "Search receipt-linked disclosures",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_disclosure_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 means content changed after first publication; each version records what changed and when.

get_disclosure_history input schema
{
  "type": "object",
  "required": [
    "disclosure_id"
  ],
  "properties": {
    "disclosure_id": {
      "type": "string",
      "description": "Permanent disclosure_id from search_disclosures. Identifiers survive restatement and are never reused."
    }
  },
  "additionalProperties": false
}
get_disclosure_history output schema
{
  "type": "object",
  "required": [
    "data",
    "history",
    "access",
    "cache",
    "version",
    "notice"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "disclosure_id",
          "version_id",
          "content_hash",
          "identity_basis",
          "change",
          "member",
          "asset",
          "instrument",
          "transaction",
          "filing",
          "amount",
          "owner",
          "receipt",
          "provenance"
        ],
        "properties": {
          "asset": {
            "type": "object",
            "required": [
              "ticker",
              "name",
              "asset_type",
              "source_code",
              "description"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "ticker": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "asset_type": {
                "enum": [
                  "equity",
                  "etf",
                  "municipal_bond",
                  "corporate_bond",
                  "government_security",
                  "option",
                  "fund",
                  "partnership",
                  "crypto",
                  "other"
                ],
                "type": "string",
                "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."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "source_code": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "owner": {
            "type": "object",
            "required": [
              "label",
              "determination"
            ],
            "properties": {
              "label": {
                "enum": [
                  "self",
                  "spouse",
                  "joint",
                  "dependent_child",
                  "not_specified_in_filing",
                  "undetermined"
                ],
                "type": "string",
                "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."
              },
              "determination": {
                "enum": [
                  "parsed_from_filing",
                  "receipt_verified_blank",
                  "owner_column_undetermined",
                  "not_applicable_for_form"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "Whose holding the transaction concerns, from the filing's Owner column, and how that value was established.",
            "additionalProperties": false
          },
          "amount": {
            "type": "object",
            "required": [
              "range_low",
              "range_high",
              "currency",
              "basis",
              "verbatim_text"
            ],
            "properties": {
              "basis": {
                "enum": [
                  "bounded_range_as_disclosed",
                  "open_ended_as_disclosed"
                ],
                "type": "string",
                "description": "Names whether the filing disclosed a bounded or one of the two enumerated House PTR open-ended brackets. Neither basis represents an exact amount."
              },
              "currency": {
                "type": "string",
                "const": "USD",
                "description": "Always USD. Every disclosure form Veridion serves reports in dollars."
              },
              "midpoint": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "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."
              },
              "range_low": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Lower bound of the band the filing discloses, in whole USD, as printed on the form ($1,001 to $15,000 serves 1001)."
              },
              "range_high": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Upper bound of the disclosed band, in whole USD. Null only for the two enumerated House PTR open-ended brackets; never a fabricated ceiling."
              },
              "verbatim_text": {
                "type": "string",
                "minLength": 1,
                "description": "The filed amount label; casing is canonicalized for the two enumerated House PTR open-ended brackets. Other text retains the parsed filing's spelling. The source line and receipt remain the source of truth."
              }
            },
            "description": "The disclosed band. Only two enumerated House PTR labels have an open upper bound; a missing amount is never estimated.",
            "additionalProperties": false
          },
          "change": {
            "type": "object",
            "required": [
              "type",
              "state",
              "observed_at",
              "reason"
            ],
            "properties": {
              "type": {
                "enum": [
                  "upsert",
                  "supersede"
                ],
                "type": "string",
                "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."
              },
              "state": {
                "enum": [
                  "active",
                  "withdrawn"
                ],
                "type": "string",
                "description": "active: served in snapshot reads. withdrawn: no longer served in snapshots but still directly retrievable by disclosure_id, with reason set."
              },
              "reason": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Why a row was withdrawn or superseded, when the pipeline recorded one; null for an ordinary upsert. States the mechanism, never a motive."
              },
              "observed_at": {
                "type": "string",
                "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))$",
                "description": "When Veridion observed the event this row reports (the version's first observation for an upsert; the supersession instant for a supersede)."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "filing": {
            "type": "object",
            "required": [
              "type",
              "filed_date",
              "delay_days",
              "statutory_window_days"
            ],
            "properties": {
              "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."
              },
              "delay_days": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "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": {
                "type": "string",
                "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])))$",
                "description": "The date the office records the report as filed. The STOCK Act window and delay_days are measured to this date."
              },
              "statutory_window_days": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "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."
              },
              "within_statutory_window": {
                "type": "boolean",
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "member": {
            "type": "object",
            "required": [
              "member_id",
              "person_id",
              "full_name",
              "chamber",
              "party",
              "state",
              "district"
            ],
            "properties": {
              "party": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Two-letter state of the seat, as recorded in the congressional directory; null for executive-branch filers."
              },
              "chamber": {
                "enum": [
                  "house",
                  "senate",
                  "executive"
                ],
                "type": "string",
                "description": "house or senate from the office that published the receipt; executive for Office of Government Ethics filers."
              },
              "district": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[A-Z]{2}-\\d+$"
                  },
                  {
                    "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": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "member_id": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "person_id": {
                "type": [
                  "string",
                  "null"
                ],
                "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."
              }
            },
            "description": "The filer, resolved against the congressional directory where a match exists. Identity fields only; what the filing itself says is in the receipt.",
            "additionalProperties": false
          },
          "receipt": {
            "type": "object",
            "required": [
              "document_id",
              "url",
              "access",
              "source_system",
              "content_type",
              "page",
              "retrieved_at"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "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."
              },
              "page": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "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."
              },
              "access": {
                "enum": [
                  "open",
                  "gated"
                ],
                "type": "string",
                "description": "`gated` means the official Senate eFD URL requires acknowledging its access agreement before the filing is displayed; other supported sources are `open`."
              },
              "document_id": {
                "type": "string",
                "minLength": 1,
                "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}."
              },
              "content_type": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "retrieved_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "source_system": {
                "enum": [
                  "house_clerk",
                  "senate_efd",
                  "sec_edgar",
                  "oge"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "The government receipt this row was parsed from. Preserve the access label.",
            "additionalProperties": false
          },
          "instrument": {
            "type": "object",
            "required": [
              "kind",
              "kind_reason",
              "ticker",
              "ticker_status",
              "ticker_reason",
              "underlying",
              "option_type",
              "strike",
              "expiration",
              "contracts",
              "field_evidence"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "equity",
                  "option",
                  "etf",
                  "bond",
                  "fund",
                  "crypto",
                  "other"
                ],
                "type": "string",
                "description": "Instrument category supported by the printed code or text. Option mentions include exercised options even where the original source code is ST. Other means unclassified, not a guessed equity."
              },
              "strike": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d+(?:\\.\\d+)?$"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Exact printed decimal strike, with grouping separators and dollar sign removed. String avoids binary floating-point rounding. Currency is not inferred."
              },
              "ticker": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Single printed symbol, uppercased without joining tokens. An explicit ticker label or security-named parenthetical may resolve a blank ticker field; issuer names alone never do. Not a guarantee of an executable option-series identifier."
              },
              "contracts": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Explicit count of options or contracts. Shares and units are never converted, nor is a partial-sale count calculated from holdings."
              },
              "expiration": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Date as printed, not necessarily ISO. Two-digit years retain two digits; no century or missing day is inferred. See field_evidence.expiration.reason."
              },
              "underlying": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Explicitly labelled underlying or the printed stock name on an option-related line. Never decoded from the ticker or resolved from an issuer lookup."
              },
              "kind_reason": {
                "type": "string",
                "minLength": 1,
                "description": "Named source-code or printed-text rule used to classify this line."
              },
              "option_type": {
                "anyOf": [
                  {
                    "enum": [
                      "call",
                      "put"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Call or put only when printed as the option type. Conflicting types and unlabelled verbs produce null."
              },
              "ticker_reason": {
                "type": "string",
                "minLength": 1,
                "description": "Exact ticker-resolution rule or named missing/ambiguous reason. Never empty, including for untickered assets."
              },
              "ticker_status": {
                "enum": [
                  "printed",
                  "resolved_from_printed_text",
                  "missing",
                  "ambiguous",
                  "invalid"
                ],
                "type": "string",
                "description": "Distinguishes the original printed ticker field, a symbol resolved from explicit asset text, and missing, conflicting or malformed evidence."
              },
              "field_evidence": {
                "type": "object",
                "required": [
                  "underlying",
                  "option_type",
                  "strike",
                  "expiration",
                  "contracts"
                ],
                "properties": {
                  "strike": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Exact printed strike span, or the missing, malformed or conflicting-price reason.",
                    "additionalProperties": false
                  },
                  "contracts": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Explicit option/contract-count spans plus any share/unit spans. Describes quantity ambiguity without conversions or arithmetic.",
                    "additionalProperties": false
                  },
                  "expiration": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed expiration span and date-format/refusal rule. A two-digit year is identified explicitly and not expanded.",
                    "additionalProperties": false
                  },
                  "underlying": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed underlying name/label evidence or why an underlying was withheld.",
                    "additionalProperties": false
                  },
                  "option_type": {
                    "type": "object",
                    "required": [
                      "status",
                      "reason",
                      "raw"
                    ],
                    "properties": {
                      "raw": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found."
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Named extraction rule or refusal reason; always present, including when the value is null."
                      },
                      "status": {
                        "enum": [
                          "printed",
                          "missing",
                          "ambiguous",
                          "invalid",
                          "not_applicable"
                        ],
                        "type": "string",
                        "description": "Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line."
                      }
                    },
                    "description": "Printed call/put evidence, conflict or absence.",
                    "additionalProperties": false
                  }
                },
                "description": "Required per-field evidence for every option field, including missing fields and non-option rows.",
                "additionalProperties": false
              }
            },
            "description": "Additive projection from the filing's printed asset and description. Every absent or conflicting ticker or option term has a named reason. It is not an order instruction or a securities-master lookup; the original asset fields remain unchanged.",
            "additionalProperties": false
          },
          "provenance": {
            "type": "object",
            "required": [
              "source_line_number",
              "parsed_at",
              "parser_version",
              "methodology_version",
              "source_ingested_at",
              "first_observed_at"
            ],
            "properties": {
              "parsed_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "parser_version": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "first_observed_at": {
                "type": "string",
                "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))$",
                "description": "When Veridion first observed this row. Immutable and used by the as_of filter."
              },
              "source_ingested_at": {
                "type": "string",
                "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))$",
                "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."
              },
              "source_line_number": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "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."
              },
              "methodology_version": {
                "type": "string",
                "minLength": 1,
                "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."
              },
              "transcription_method": {
                "enum": [
                  "pdf_text_layer",
                  "verified_transcription"
                ],
                "type": "string",
                "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."
              }
            },
            "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.",
            "additionalProperties": false
          },
          "version_id": {
            "type": "string",
            "minLength": 1,
            "description": "Immutable parse-generation identifier. Use disclosure_id, not version_id, for downstream identity across a restatement."
          },
          "transaction": {
            "type": "object",
            "required": [
              "type",
              "date"
            ],
            "properties": {
              "date": {
                "type": "string",
                "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])))$",
                "description": "The transaction date as stated on the filing. Not the filing date, and not adjusted for weekends or holidays."
              },
              "type": {
                "enum": [
                  "buy",
                  "sell",
                  "exchange",
                  "other"
                ],
                "type": "string",
                "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."
              }
            },
            "description": "What was done and on what date, as stated on the filing.",
            "additionalProperties": false
          },
          "content_hash": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "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."
          },
          "disclosure_id": {
            "type": "string",
            "minLength": 1,
            "description": "Permanent identifier for the filing-derived transaction. It is never reused; parser versions and restatements retain this identifier."
          },
          "identity_basis": {
            "enum": [
              "government_filing_facts"
            ],
            "type": "string",
            "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."
          }
        },
        "additionalProperties": false
      },
      "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."
    },
    "cache": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "policy",
            "browser_max_age_seconds",
            "cdn_max_age_seconds",
            "declared_max_staleness_seconds",
            "age_header",
            "freshness_reference"
          ],
          "properties": {
            "policy": {
              "type": "string",
              "const": "public"
            },
            "age_header": {
              "type": "string",
              "const": "Age"
            },
            "cdn_max_age_seconds": {
              "type": "number",
              "const": 300
            },
            "freshness_reference": {
              "type": "object",
              "required": [
                "source",
                "source_expected_max_age_seconds",
                "delivery_max_staleness_seconds",
                "delivery_to_source_threshold_ratio",
                "basis"
              ],
              "properties": {
                "basis": {
                  "type": "string",
                  "minLength": 1
                },
                "source": {
                  "type": "string",
                  "const": "congress"
                },
                "delivery_max_staleness_seconds": {
                  "type": "number",
                  "const": 300
                },
                "source_expected_max_age_seconds": {
                  "type": "number",
                  "const": 21600
                },
                "delivery_to_source_threshold_ratio": {
                  "type": "string",
                  "const": "1/72"
                }
              },
              "additionalProperties": false
            },
            "browser_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "declared_max_staleness_seconds": {
              "type": "number",
              "const": 300
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "policy",
            "browser_max_age_seconds",
            "cdn_max_age_seconds",
            "declared_max_staleness_seconds",
            "age_header"
          ],
          "properties": {
            "policy": {
              "type": "string",
              "const": "private-no-store"
            },
            "age_header": {
              "type": "null"
            },
            "cdn_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "browser_max_age_seconds": {
              "type": "number",
              "const": 0
            },
            "declared_max_staleness_seconds": {
              "type": "number",
              "const": 0
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "access": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "tier",
            "max_rows_per_request",
            "requests_per_hour",
            "no_key_required",
            "upgrade"
          ],
          "properties": {
            "tier": {
              "type": "string",
              "const": "free"
            },
            "upgrade": {
              "type": "object",
              "required": [
                "max_rows_per_request",
                "request_a_key"
              ],
              "properties": {
                "request_a_key": {
                  "type": "string",
                  "format": "uri"
                },
                "max_rows_per_request": {
                  "type": "number",
                  "const": 1000
                }
              },
              "additionalProperties": false
            },
            "no_key_required": {
              "type": "boolean",
              "const": true
            },
            "requests_per_hour": {
              "type": "number",
              "const": 60
            },
            "max_rows_per_request": {
              "type": "number",
              "const": 25
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "tier",
            "max_rows_per_request"
          ],
          "properties": {
            "tier": {
              "enum": [
                "free",
                "developer",
                "evaluator"
              ],
              "type": "string"
            },
            "max_rows_per_request": {
              "type": "number",
              "const": 1000
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "notice": {
      "type": "string",
      "minLength": 1
    },
    "history": {
      "type": "object",
      "required": [
        "disclosure_id",
        "event_count",
        "first_observed_at",
        "latest_observed_at",
        "current_state",
        "restated",
        "events_truncated"
      ],
      "properties": {
        "restated": {
          "type": "boolean",
          "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."
        },
        "event_count": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        },
        "current_state": {
          "enum": [
            "active",
            "withdrawn"
          ],
          "type": "string"
        },
        "disclosure_id": {
          "type": "string",
          "minLength": 1
        },
        "events_truncated": {
          "type": "boolean",
          "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."
        },
        "first_observed_at": {
          "type": "string",
          "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))$"
        },
        "latest_observed_at": {
          "type": "string",
          "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))$"
        }
      },
      "additionalProperties": false
    },
    "version": {
      "type": "string",
      "const": "1.20.0"
    }
  },
  "additionalProperties": false
}
get_disclosure_history annotations
{
  "title": "Every observed version of one filing",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_members
Advertised by the server during the last successful anonymous check.
Advertised read-only

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. A name search can match several filers; each result carries member_id and bioguide for an exact match.

list_members input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "Case-insensitive substring of the filer's full name, e.g. pelosi"
    },
    "bioguide": {
      "type": "string",
      "description": "Official Bioguide ID, e.g. P000197"
    },
    "member_id": {
      "type": "string",
      "description": "Exact filer identifier from a disclosure row, e.g. nancy-pelosi"
    }
  },
  "additionalProperties": false
}
list_members output schema
{
  "type": "object",
  "required": [
    "data",
    "paper_transcriptions",
    "count",
    "identity_join",
    "served_at",
    "directory",
    "cache",
    "version",
    "notice"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "member_id",
          "identity",
          "full_name",
          "chamber",
          "party",
          "state",
          "district",
          "coverage",
          "paper_transcriptions"
        ],
        "properties": {
          "party": {
            "type": [
              "string",
              "null"
            ],
            "description": "Directory party label, or null without a mapping."
          },
          "state": {
            "type": [
              "string",
              "null"
            ],
            "description": "Directory state code, or null when unavailable or inapplicable."
          },
          "chamber": {
            "type": [
              "string",
              "null"
            ],
            "description": "House, Senate or executive-branch filer class from the directory; null when unavailable."
          },
          "coverage": {
            "type": "object",
            "required": [
              "disclosures_available",
              "filings_pending_receipt",
              "filings_pending_qualification",
              "latest_filed_date",
              "average_filing_delay_days"
            ],
            "properties": {
              "latest_filed_date": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Maximum filing date among this member's directory candidate rows; null without one."
              },
              "disclosures_available": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Rows counted by the existing directory's candidate-view aggregate for this member, not a separately pinned API-version count."
              },
              "filings_pending_receipt": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Pending-receipt rows reported by the directory's latest member coverage observation, or its executive-branch receipt predicate; not distinct document count."
              },
              "average_filing_delay_days": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Directory aggregate of transaction-to-filing days, rounded by the existing SQL view; null without measured intervals. Not a timeliness verdict."
              },
              "filings_pending_qualification": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Nonnegative difference between directory total held rows and candidate aggregate rows; not a per-reason exclusion census."
              }
            },
            "description": "Existing directory coverage semantics retained. In the paginated response, read at coverage.served_at in the same statement as identity.",
            "additionalProperties": false
          },
          "district": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[A-Z]{2}-\\d+$"
              },
              {
                "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."
          },
          "identity": {
            "type": "object",
            "required": [
              "bioguide",
              "system",
              "note"
            ],
            "properties": {
              "note": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Explanation of a missing identity mapping; null when an identifier is present."
              },
              "system": {
                "type": "string",
                "const": "us_congress_bioguide",
                "description": "Identifier namespace, not a statement that every filer has an identifier in it."
              },
              "bioguide": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Mapped official congressional Bioguide ID, or null when unmapped or inapplicable."
              }
            },
            "description": "Directory identity join, independent of financial disclosure counts.",
            "additionalProperties": false
          },
          "full_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Name carried by the existing directory; null when unavailable."
          },
          "member_id": {
            "type": "string",
            "description": "Filer identifier from the directory; the ascending key for opt-in pagination."
          },
          "paper_transcriptions": {
            "type": "object",
            "required": [
              "member_id",
              "measured_at",
              "state",
              "pending_documents",
              "known_pending_documents",
              "pending_documents_reason",
              "paper_rows_remaining",
              "paper_rows_reason",
              "pending"
            ],
            "properties": {
              "state": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "pending_transcription"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim."
              },
              "pending": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "doc_id",
                    "member",
                    "member_id",
                    "filing_date",
                    "receipt_url",
                    "state",
                    "queue_status",
                    "since",
                    "since_basis",
                    "reason",
                    "paper_rows",
                    "paper_rows_reason",
                    "active_followers"
                  ],
                  "properties": {
                    "since": {
                      "type": "string",
                      "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))$",
                      "description": "First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay."
                    },
                    "state": {
                      "type": "string",
                      "const": "pending_transcription",
                      "description": "The filing has no completed verified transcription recorded in this queue."
                    },
                    "doc_id": {
                      "type": "string",
                      "pattern": "^\\d+$",
                      "description": "House Clerk PTR document identifier."
                    },
                    "member": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Member name from retained Clerk filing metadata."
                    },
                    "reason": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Named terminal queue diagnosis, or null when none is recorded."
                    },
                    "member_id": {
                      "type": "string",
                      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                      "description": "Member route identifier, resolved through the existing member alias registry when available."
                    },
                    "paper_rows": {
                      "type": "null",
                      "description": "Unknown transaction-row count. PDF page counts and external trade counts are not substitutes."
                    },
                    "filing_date": {
                      "type": "string",
                      "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])))$",
                      "description": "Filing date printed in the retained Clerk annual index, YYYY-MM-DD."
                    },
                    "receipt_url": {
                      "type": "string",
                      "description": "Official Clerk PDF URL matching this DocID."
                    },
                    "since_basis": {
                      "enum": [
                        "first_verified_no_text_inspection",
                        "first_terminal_document_outcome"
                      ],
                      "type": "string",
                      "description": "Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text."
                    },
                    "queue_status": {
                      "enum": [
                        "pending_transcription",
                        "failed_terminal"
                      ],
                      "type": "string",
                      "description": "Outstanding transcription work or a retained terminal transcription failure."
                    },
                    "active_followers": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured."
                    },
                    "paper_rows_reason": {
                      "type": "string",
                      "const": "not_transcribed",
                      "description": "Why no transaction-row count is available."
                    }
                  },
                  "description": "An outstanding PTR requiring verified transcription, with its official receipt, first terminal-outcome time and queue diagnosis. Parser failures do not attest paper.",
                  "additionalProperties": false
                },
                "description": "Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete."
              },
              "member_id": {
                "type": "string",
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                "description": "Canonical member identifier requested by the member surface."
              },
              "measured_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "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": "null"
                  }
                ],
                "description": "Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete."
              },
              "paper_rows_reason": {
                "type": "string",
                "const": "not_transcribed",
                "description": "Why the member's remaining transaction-row count is unavailable."
              },
              "pending_documents": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Member's total outstanding queue filings only when the full annual population is measured; otherwise null."
              },
              "paper_rows_remaining": {
                "type": "null",
                "description": "Unknown transaction rows remaining for this member; never estimated."
              },
              "known_pending_documents": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Observed outstanding queue records for this member, including unreconciled records; null when coverage is unavailable, and never a count of the uninspected population."
              },
              "pending_documents_reason": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Reason the member total is unknown, inherited from the same coverage measurement."
              }
            },
            "description": "This known filer's paper queue state from the independent paper measurement, without changing directory disclosure counts.",
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      }
    },
    "cache": {
      "type": "object",
      "required": [
        "policy",
        "browser_max_age_seconds",
        "cdn_max_age_seconds",
        "declared_max_staleness_seconds",
        "age_header"
      ],
      "properties": {
        "policy": {
          "type": "string",
          "const": "private-no-store"
        },
        "age_header": {
          "type": "null"
        },
        "cdn_max_age_seconds": {
          "type": "number",
          "const": 0
        },
        "browser_max_age_seconds": {
          "type": "number",
          "const": 0
        },
        "declared_max_staleness_seconds": {
          "type": "number",
          "const": 0
        }
      },
      "additionalProperties": false
    },
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0
    },
    "notice": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "const": "1.20.0"
    },
    "directory": {
      "type": "object",
      "required": [
        "source",
        "refreshed_at",
        "max_age_seconds",
        "fallback_reason"
      ],
      "properties": {
        "source": {
          "enum": [
            "snapshot",
            "live_view"
          ],
          "type": "string",
          "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."
        },
        "refreshed_at": {
          "anyOf": [
            {
              "type": "string",
              "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": "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."
        },
        "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": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0,
          "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."
        }
      },
      "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.",
      "additionalProperties": false
    },
    "served_at": {
      "type": "string",
      "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))$"
    },
    "identity_join": {
      "enum": [
        "measured",
        "unavailable"
      ],
      "type": "string"
    },
    "paper_transcriptions": {
      "type": "object",
      "required": [
        "state",
        "reason",
        "archive_year",
        "measured_at",
        "filters",
        "filter_coverage",
        "filter_reason",
        "by_member"
      ],
      "properties": {
        "state": {
          "enum": [
            "measured",
            "incomplete",
            "unavailable"
          ],
          "type": "string",
          "description": "Whether the retained annual index and complete PDF inspection population reconcile, remain incomplete, or cannot be read."
        },
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "Named reason for incomplete or unavailable measurement; null only when reconciled."
        },
        "filters": {
          "type": "object",
          "required": [
            "member_id",
            "name",
            "chamber",
            "state",
            "bioguide"
          ],
          "properties": {
            "name": {
              "type": [
                "string",
                "null"
              ],
              "description": "Literal case-insensitive substring applied to retained paper member names, not a wildcard."
            },
            "state": {
              "type": [
                "string",
                "null"
              ],
              "description": "Requested state; requires a matching known directory record and is not inferred from a member name."
            },
            "chamber": {
              "type": [
                "string",
                "null"
              ],
              "description": "Requested chamber; this paper queue contains House documents only."
            },
            "bioguide": {
              "type": [
                "string",
                "null"
              ],
              "description": "Requested Bioguide; requires a matching known directory record and is never invented for pending-only filers."
            },
            "member_id": {
              "type": [
                "string",
                "null"
              ],
              "description": "Exact canonical member filter, or null for all matching members."
            }
          },
          "description": "Member filters applied to the independent paper list; directory cursor and limit do not paginate this list.",
          "additionalProperties": false
        },
        "by_member": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "member_id",
              "measured_at",
              "state",
              "pending_documents",
              "known_pending_documents",
              "pending_documents_reason",
              "paper_rows_remaining",
              "paper_rows_reason",
              "pending"
            ],
            "properties": {
              "state": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "pending_transcription"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim."
              },
              "pending": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "doc_id",
                    "member",
                    "member_id",
                    "filing_date",
                    "receipt_url",
                    "state",
                    "queue_status",
                    "since",
                    "since_basis",
                    "reason",
                    "paper_rows",
                    "paper_rows_reason",
                    "active_followers"
                  ],
                  "properties": {
                    "since": {
                      "type": "string",
                      "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))$",
                      "description": "First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay."
                    },
                    "state": {
                      "type": "string",
                      "const": "pending_transcription",
                      "description": "The filing has no completed verified transcription recorded in this queue."
                    },
                    "doc_id": {
                      "type": "string",
                      "pattern": "^\\d+$",
                      "description": "House Clerk PTR document identifier."
                    },
                    "member": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Member name from retained Clerk filing metadata."
                    },
                    "reason": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Named terminal queue diagnosis, or null when none is recorded."
                    },
                    "member_id": {
                      "type": "string",
                      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                      "description": "Member route identifier, resolved through the existing member alias registry when available."
                    },
                    "paper_rows": {
                      "type": "null",
                      "description": "Unknown transaction-row count. PDF page counts and external trade counts are not substitutes."
                    },
                    "filing_date": {
                      "type": "string",
                      "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])))$",
                      "description": "Filing date printed in the retained Clerk annual index, YYYY-MM-DD."
                    },
                    "receipt_url": {
                      "type": "string",
                      "description": "Official Clerk PDF URL matching this DocID."
                    },
                    "since_basis": {
                      "enum": [
                        "first_verified_no_text_inspection",
                        "first_terminal_document_outcome"
                      ],
                      "type": "string",
                      "description": "Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text."
                    },
                    "queue_status": {
                      "enum": [
                        "pending_transcription",
                        "failed_terminal"
                      ],
                      "type": "string",
                      "description": "Outstanding transcription work or a retained terminal transcription failure."
                    },
                    "active_followers": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured."
                    },
                    "paper_rows_reason": {
                      "type": "string",
                      "const": "not_transcribed",
                      "description": "Why no transaction-row count is available."
                    }
                  },
                  "description": "An outstanding PTR requiring verified transcription, with its official receipt, first terminal-outcome time and queue diagnosis. Parser failures do not attest paper.",
                  "additionalProperties": false
                },
                "description": "Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete."
              },
              "member_id": {
                "type": "string",
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                "description": "Canonical member identifier requested by the member surface."
              },
              "measured_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "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": "null"
                  }
                ],
                "description": "Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete."
              },
              "paper_rows_reason": {
                "type": "string",
                "const": "not_transcribed",
                "description": "Why the member's remaining transaction-row count is unavailable."
              },
              "pending_documents": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Member's total outstanding queue filings only when the full annual population is measured; otherwise null."
              },
              "paper_rows_remaining": {
                "type": "null",
                "description": "Unknown transaction rows remaining for this member; never estimated."
              },
              "known_pending_documents": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Observed outstanding queue records for this member, including unreconciled records; null when coverage is unavailable, and never a count of the uninspected population."
              },
              "pending_documents_reason": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Reason the member total is unknown, inherited from the same coverage measurement."
              }
            },
            "description": "Member projection of the shared House paper coverage measurement.",
            "additionalProperties": false
          },
          "description": "Observed paper filers matching the declared filter scope, including filers absent from the legacy roster when metadata supports matching. Does not add roster rows or alter directory counts."
        },
        "measured_at": {
          "anyOf": [
            {
              "type": "string",
              "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": "null"
            }
          ],
          "description": "Database transaction timestamp from the same RPC statement as these counts, canonical UTC Z; null when the read could not complete."
        },
        "archive_year": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Clerk annual filing-index year being reconciled."
        },
        "filter_reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "Named limitation when directory identity is needed to evaluate filters, otherwise null. An empty restricted list is not proof that no matching paper filings exist."
        },
        "filter_coverage": {
          "enum": [
            "paper_metadata",
            "directory_response_only"
          ],
          "type": "string",
          "description": "Paper metadata supports exact member, name and House chamber filters. State or Bioguide filters can only admit members proven by directory records in this response; their paper-only matches remain unknown."
        }
      },
      "description": "Paper queue visibility independent of the directory population and measurement timestamp. Completeness state describes the annual paper measurement, not roster coverage.",
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
list_members annotations
{
  "title": "Resolve filer identity",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_coverage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Live coverage counts (rows, filers, per-source totals) measured from the serving views at request time.

get_coverage input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_coverage annotations
{
  "title": "Live serving coverage",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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, for verifying a bulk download.

get_status input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_status annotations
{
  "title": "Source freshness and snapshot health",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

1 advertised

verify_claim — Verify a claim against the filing

Advertised by the server during the last successful anonymous check.

Given a claim about what a US politician or executive-branch official traded or disclosed, find the filing behind it and answer with the government receipt. States what the filing supports, what it does not, and whether it was amended. Never infers motive.

claim
The claim to check, in plain language, e.g. 'Pelosi bought NVDA calls in 2024'. (required)

Resources

2 advertised

openapi — OpenAPI document for the v1 HTTP API

Advertised by the server during the last successful anonymous check.

The same document served at /api/v1/openapi.json, generated from the contract schemas.

openapi URI
veridion://openapi

MIME type: application/json

instructions — Server instructions

Advertised by the server during the last successful anonymous check.

The behavioural instructions this server sends in the initialize handshake.

instructions URI
veridion://instructions

MIME type: text/plain

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1618 ms
95th percentile latency
1618 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1618 ms · metadata changed · 5 tool(s), 2 resource(s), 0 resource template(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http veridion-markets-mcp https://www.veridionmarkets.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add veridion-markets-mcp --url https://www.veridionmarkets.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable veridion-markets-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "veridion-markets-mcp": {
      "url": "https://www.veridionmarkets.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "veridion-markets-mcp": {
      "type": "streamableHttp",
      "url": "https://www.veridionmarkets.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start veridion-markets-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "veridion-markets-mcp": {
      "type": "http",
      "url": "https://www.veridionmarkets.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http veridion-markets-mcp https://www.veridionmarkets.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.veridionmarkets.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "veridion-markets-mcp": {
      "serverUrl": "https://www.veridionmarkets.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Veridion Markets MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Veridion Markets MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing