---
title: "List receipt-linked disclosure records."
method: GET
path: "/api/v1/disclosures"
tags: ["Disclosures"]
---

# List receipt-linked disclosure records.

`GET /api/v1/disclosures`

## Request

- Base URL: `https://www.veridionmarkets.com`
- URL: `https://www.veridionmarkets.com/api/v1/disclosures`
- Auth: one of:
  - none
  - HTTP bearer

Fresh snapshot results use stable keyset pagination ordered by filed_date descending (nulls last), then first_observed_at and disclosure_id ascending. Existing pre-1.15 cursors retain first_observed_at/disclosure_id ascending; page.order names the order. Use `as_of` for point-in-time reconstruction and `updated_since` for incremental polling. Incremental pages echo `page.requested_updated_since` and contain both upserts and withdrawals, ordered oldest first. Consumers keep a map keyed by disclosure_id: an upsert replaces the current value; a supersede removes or marks the row withdrawn only when its version_id matches the version held locally. Continue through next_cursor before advancing the saved watermark to page.snapshot_as_of.

## Query parameters

- `document_id` string: Exact House numeric document ID or Senate eFD UUID (case-insensitive). Specify once; combines with other filters before pagination. Returns served lines only; held or missing lines are excluded. Unknown documents return an empty page.
- `ticker` string: Ticker symbol, case-insensitive, for example NVDA.
- `member_id` string: Filer slug, for example nancy-pelosi.
- `person_id` string: Official Bioguide person identifier spanning linked tenures.
- `chamber` 'house' | 'senate' | 'executive': Branch of government.
- `source_system` 'house_clerk' | 'senate_efd' | 'sec_edgar' | 'oge': Originating government system.
- `filed_date_from` string, date: Earliest filing date, inclusive.
- `filed_date_to` string, date: Latest filing date, inclusive.
- `transaction_type` 'buy' | 'sell' | 'exchange' | 'other': Direction of the transaction.
- `transaction_date_from` string, date: Earliest transaction date, inclusive.
- `transaction_date_to` string, date: Latest transaction date, inclusive.
- `min_delay_days` integer: Only rows whose filing delay (filed_date minus transaction_date) is at least this many days. The STOCK Act window for periodic transaction reports is 45 days, so min_delay_days=46 returns filings outside it. Rows without a computed delay -- annual reports, and rows missing either date -- are excluded by this filter rather than guessed at.
- `within_statutory_window` boolean: true returns only rows filed inside the statutory window that applies to that row (statutory_window_days); false returns only rows filed outside it. Unlike min_delay_days, the boundary is each row's own window as served, not a number the caller supplies, so a client keeps working if the window ever differs by filing type or changes in law. Rows with no computed window -- annual reports -- are excluded by either value rather than guessed at. This filter selects on the 45-day transaction clock only. It is not a compliance filter: true does not mean the filing was timely, because the 30-day notification clock is not measured in this dataset.
- `limit` integer: Rows per page. Free requests are capped at 25; licensed requests are capped at 1000.
- `cursor` string: Opaque cursor from page.next_cursor. Omit to start again.
- `as_of` string, date-time: Only rows first observed at or before this instant. Must be on or after response.coverage.point_in_time_floor.
- `updated_since` string, date-time: Append-only change events observed strictly after this instant and no later than page.snapshot_as_of. Must be on or after response.coverage.point_in_time_floor. Includes upserts and supersessions.

## Response `200`

A page of disclosure records.

- DisclosurePage
  - `data` object[], required
    - `disclosure_id` string, required: Permanent identifier for the filing-derived transaction. It is never reused; parser versions and restatements retain this identifier.
    - `version_id` string, required: Immutable parse-generation identifier. Use disclosure_id, not version_id, for downstream identity across a restatement.
    - `content_hash` string, required: 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.
    - `identity_basis` 'government_filing_facts', required: Identity uses only filer, document, filed instrument, transaction date and type, amount range, and owner. Parser line, span, version, and run identifiers are excluded.
    - `change` object, required: 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.
      - `type` 'upsert' | 'supersede', required: 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` 'active' | 'withdrawn', required: active: served in snapshot reads. withdrawn: no longer served in snapshots but still directly retrievable by disclosure_id, with reason set.
      - `observed_at` string, date-time, required: When Veridion observed the event this row reports (the version's first observation for an upsert; the supersession instant for a supersede).
      - `reason` string, nullable, required: Why a row was withdrawn or superseded, when the pipeline recorded one; null for an ordinary upsert. States the mechanism, never a motive.
    - `member` object, required: The filer, resolved against the congressional directory where a match exists. Identity fields only; what the filing itself says is in the receipt.
      - `member_id` string, required: 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` string, nullable, required: 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.
      - `full_name` string, required: 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.
      - `chamber` 'house' | 'senate' | 'executive', required: house or senate from the office that published the receipt; executive for Office of Government Ethics filers.
      - `party` string, nullable, required: 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` string, nullable, required: Two-letter state of the seat, as recorded in the congressional directory; null for executive-branch filers.
      - `district` string, nullable, required: 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.
    - `asset` object, required: 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.
      - `ticker` string, nullable, required: 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.
      - `name` string, required: 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.
      - `asset_type` 'equity' | 'etf' | 'municipal_bond' | 'corporate_bond' | 'government_security' | 'option' | 'fund' | 'partnership' | 'crypto' | 'other', required: 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.
      - `source_code` string, nullable, required: 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` string, nullable, required: Free-text description from the filing's asset line when the office publishes one separately from the name; null otherwise. Never composed by Veridion.
    - `instrument` object, required: 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.
      - `kind` 'equity' | 'option' | 'etf' | 'bond' | 'fund' | 'crypto' | 'other', required: Instrument category supported by the printed code or text. Explicit option transactions include exercised options even where the original source code is ST. Other means unclassified, not a guessed equity.
      - `kind_reason` string, required: Named source-code or printed-text rule used to classify this line.
      - `ticker` string, nullable, required: 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.
      - `ticker_status` 'printed' | 'resolved_from_printed_text' | 'missing' | 'ambiguous' | 'invalid', required: Distinguishes the original printed ticker field, a symbol resolved from explicit asset text, and missing, conflicting or malformed evidence.
      - `ticker_reason` string, required: Exact ticker-resolution rule or named missing/ambiguous reason. Never empty, including for untickered assets.
      - `underlying` string, nullable, required: Explicitly labelled underlying or the printed stock name on an option-related line. Never decoded from the ticker or resolved from an issuer lookup.
      - `option_type` 'call' | 'put', nullable, required: Call or put only when printed as the option type. Conflicting types and unlabelled verbs produce null.
      - `strike` string, nullable, required: Exact printed decimal strike, with grouping separators and dollar sign removed. String avoids binary floating-point rounding. Currency is not inferred.
      - `expiration` string, nullable, required: Date as printed, not necessarily ISO. Two-digit years retain two digits; no century or missing day is inferred. See field_evidence.expiration.reason.
      - `contracts` integer, nullable, required: Explicit count of options or contracts. Shares and units are never converted, nor is a partial-sale count calculated from holdings.
      - `field_evidence` object, required: Required per-field evidence for every option field, including missing fields and non-option rows.
        - `underlying` object, required: Printed underlying name/label evidence or why an underlying was withheld.
          - `status` 'printed' | 'missing' | 'ambiguous' | 'invalid' | 'not_applicable', required: Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line.
          - `reason` string, required: Named extraction rule or refusal reason; always present, including when the value is null.
          - `raw` string[], required: Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found.
        - `option_type` object, required: Printed call/put evidence, conflict or absence.
          - `status` 'printed' | 'missing' | 'ambiguous' | 'invalid' | 'not_applicable', required: Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line.
          - `reason` string, required: Named extraction rule or refusal reason; always present, including when the value is null.
          - `raw` string[], required: Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found.
        - `strike` object, required: Exact printed strike span, or the missing, malformed or conflicting-price reason.
          - `status` 'printed' | 'missing' | 'ambiguous' | 'invalid' | 'not_applicable', required: Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line.
          - `reason` string, required: Named extraction rule or refusal reason; always present, including when the value is null.
          - `raw` string[], required: Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found.
        - `expiration` object, required: Printed expiration span and date-format/refusal rule. A two-digit year is identified explicitly and not expanded.
          - `status` 'printed' | 'missing' | 'ambiguous' | 'invalid' | 'not_applicable', required: Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line.
          - `reason` string, required: Named extraction rule or refusal reason; always present, including when the value is null.
          - `raw` string[], required: Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found.
        - `contracts` object, required: Explicit option/contract-count spans plus any share/unit spans. Describes quantity ambiguity without conversions or arithmetic.
          - `status` 'printed' | 'missing' | 'ambiguous' | 'invalid' | 'not_applicable', required: Whether this value is explicitly printed, absent, ambiguous, invalid or inapplicable to a non-option line.
          - `reason` string, required: Named extraction rule or refusal reason; always present, including when the value is null.
          - `raw` string[], required: Matched filing-text spans, retaining competing values and printed share/unit counts. Empty when no applicable evidence was found.
    - `transaction` object, required: What was done and on what date, as stated on the filing.
      - `type` 'buy' | 'sell' | 'exchange' | 'other', required: 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.
      - `date` string, date, required: The transaction date as stated on the filing. Not the filing date, and not adjusted for weekends or holidays.
    - `filing` object, required: 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.
      - `type` 'periodic_transaction_report' | 'annual_report', nullable, required: 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.
      - `filed_date` string, date, required: The date the office records the report as filed. The STOCK Act window and delay_days are measured to this date.
      - `delay_days` integer, nullable, required: 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.
      - `statutory_window_days` integer, nullable, required: 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` boolean: 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.
    - `amount` object, required: The disclosed band. Only two enumerated House PTR labels have an open upper bound; a missing amount is never estimated.
      - `range_low` integer, required: 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` integer, nullable, required: Upper bound of the disclosed band, in whole USD. Null only for the two enumerated House PTR open-ended brackets; never a fabricated ceiling.
      - `currency` 'USD', required: Always USD. Every disclosure form Veridion serves reports in dollars.
      - `midpoint` integer: 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.
      - `basis` 'bounded_range_as_disclosed' | 'open_ended_as_disclosed', required: Names whether the filing disclosed a bounded or one of the two enumerated House PTR open-ended brackets. Neither basis represents an exact amount.
      - `verbatim_text` string, required: 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.
    - `owner` object, required: Whose holding the transaction concerns, from the filing's Owner column, and how that value was established.
      - `label` 'self' | 'spouse' | 'joint' | 'dependent_child' | 'not_specified_in_filing' | 'undetermined', required: 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` 'parsed_from_filing' | 'receipt_verified_blank' | 'owner_column_undetermined' | 'not_applicable_for_form', required: 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.
    - `receipt` object, required: The government receipt this row was parsed from. Preserve the access label.
      - `document_id` string, required: 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}.
      - `url` string, uri, required: 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.
      - `access` 'open' | 'gated', required: `gated` means the official Senate eFD URL requires acknowledging its access agreement before the filing is displayed; other supported sources are `open`.
      - `source_system` 'house_clerk' | 'senate_efd' | 'sec_edgar' | 'oge', required: 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.
      - `content_type` string, required: 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.
      - `page` integer, nullable, required: Page of the document the row was parsed from, where the source is paginated and the parser recorded it (OGE filings); null for congressional rows, whose position is given by provenance.source_line_number instead.
      - `retrieved_at` string, date-time, required: 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.
    - `provenance` object, required: 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.
      - `senate_line` object: Immutable retained Senate line evidence assigned at assigned_at, bound privately to this exact canonical version and payload hash. An identical-fact assignment is a forward methodology choice, not discovered historical attribution. These additions are outside veridion-disclosure-content-v1; original provenance.source_line_number and asset facts remain unchanged. Omitted before assignment and when evidence is unavailable. partial_sale is raw affirmative extent evidence; it does not change the normalized transaction type.
        - `source_line_number` integer, required: Actual positive row number printed in the retained eFD report; never an array position.
        - `owner_type_raw` string, nullable, required: Retained parser owner type; null stays unknown.
        - `owner_label_raw` string, nullable, required: Owner column exactly retained from eFD; not inferred from another line.
        - `comment` string, nullable, required: Comment or subholding text retained for the assigned printed line; null when absent.
        - `asset_type_raw` string, nullable, required: Asset Type column retained verbatim from eFD; no securities lookup.
        - `asset_type` 'equity' | 'option' | 'municipal_bond' | 'corporate_bond' | 'government_security' | 'fund' | 'etf' | 'other', nullable, required: Exact mapped printed asset class; null for an unknown label. Separate from immutable canonical asset.asset_type.
        - `transaction_type_raw` string, nullable, required: Original retained transaction label, including affirmative Full or Partial wording.
        - `partial_sale` boolean, nullable, required: True only for Sale (Partial), false only for Sale (Full), otherwise null. Separate from the A3 public transaction.partial contract.
        - `assignment_basis` 'unique_retained_facts_v1' | 'retained_coordinate_v1' | 'retained_new_line_v1' | 'affirmative_child_owner_unique_v1' | 'identical_fact_group_lowest_row_v1', required: Named prospective coordinate assignment rule; identical-fact assignment is methodology rather than historical attribution.
        - `assigned_at` string, required: Actual time the coordinate and exact-version witness were both recorded; no historical backdating.
        - `methodology` 'When a Senate report prints several lines with identical facts, the earliest-collected record is assigned the lowest row number; facts are unchanged.', required: Published Senate identical-fact assignment methodology.
      - `source_line_number` integer, nullable, required: 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.
      - `parsed_at` string, date-time, required: 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` string, required: 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.
      - `transcription_method` 'pdf_text_layer' | 'verified_transcription': 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.
      - `methodology_version` string, required: 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.
      - `source_ingested_at` string, date-time, required: 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.
      - `first_observed_at` string, date-time, required: When Veridion first observed this row. Immutable and used by the as_of filter.
  - `coverage` object, required
    - `as_of` string, date-time, required
    - `requested_as_of` string, date-time, nullable, required
    - `point_in_time` boolean, required
    - `point_in_time_floor` string, date-time, required: Inclusive lower bound for as_of and updated_since. Requests one millisecond before this instant are refused rather than returned as an empty result.
    - `out_of_range` boolean, required: True when requested_as_of predates retained point-in-time history. This is distinct from a genuine empty result.
    - `rows_returned` integer, required
    - `rows_dropped_failed_validation` integer, required: Rows withheld because the serving view and executable response contract disagreed. Any value above zero means the page is partial.
    - `served_at` string, date-time, required
    - `basis` string, required
  - `page` object, required
    - `limit` integer, required
    - `has_more` boolean, required
    - `next_cursor` string, nullable, required: 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.
    - `mode` 'snapshot' | 'changes', required
    - `order` 'filed_date_desc' | 'first_observed_at_asc' | 'change_generation_asc': 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.
    - `requested_updated_since` string, date-time, nullable, required: The normalized updated_since filter applied to this incremental page. Null for a full snapshot pull.
    - `snapshot_as_of` string, date-time, required: Pinned on page one and carried inside every cursor. Later writes cannot shift the result set during pagination.
    - `snapshot_generation` integer, required: 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.
    - `next_updated_since` string, date-time, required: 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.
  - `access` union, required
    - object
      - `tier` 'free', required
      - `max_rows_per_request` 25, required
      - `requests_per_hour` 60, required
      - `no_key_required` true, required
      - `upgrade` object, required
        - `max_rows_per_request` 1000, required
        - `request_a_key` string, uri, required
    - object
      - `tier` 'free' | 'developer' | 'evaluator', required
      - `max_rows_per_request` 1000, required
  - `cache` union, required
    - object
      - `policy` 'public', required
      - `browser_max_age_seconds` 0, required
      - `cdn_max_age_seconds` 300, required
      - `declared_max_staleness_seconds` 300, required
      - `age_header` 'Age', required
      - `freshness_reference` object, required
        - `source` 'congress', required
        - `source_expected_max_age_seconds` 21600, required
        - `delivery_max_staleness_seconds` 300, required
        - `delivery_to_source_threshold_ratio` '1/72', required
        - `basis` string, required
    - object
      - `policy` 'private-no-store', required
      - `browser_max_age_seconds` 0, required
      - `cdn_max_age_seconds` 0, required
      - `declared_max_staleness_seconds` 0, required
      - `age_header` unknown, required
  - `version` '1.21.0', required
  - `notice` string, required

## Other responses

- `304`: The data-bearing part of the response matches If-None-Match; no body is returned. Cache headers are those of the equivalent 200.
- `400`: One or more query parameters are invalid.
- `401`: The supplied bearer key is invalid. Omit Authorization to use the free tier.
- `403`: The supplied key is not scoped for disclosures.
- `429`: The free-tier request budget was exceeded.
- `503`: The disclosure warehouse could not be read.

---

[API](https://skmtc.dev/veridionmarkets/apis/veridion-disclosure-api.md) · [All operations](https://skmtc.dev/veridionmarkets/apis/veridion-disclosure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/veridionmarkets/apis/veridion-disclosure-api/revisions/af69a5d7354e?raw)
