---
title: "List filers with identity and row coverage."
method: GET
path: "/api/v1/members"
tags: ["Members"]
---

# List filers with identity and row coverage.

`GET /api/v1/members`

## Request

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

The filer directory behind every disclosure row. `member_id` is a Veridion slug and is stable for a single tenure; `person_id` is the official Bioguide identifier and spans linked tenures, so it is the correct key for joining a person across chambers or non-consecutive service. Row counts are per filer and are drawn from the same served corpus as `/api/v1/disclosures`, so a member total here reconciles with a filtered query there. Supports conditional requests and returns 304 when the directory is unchanged. Both envelopes include paper_transcriptions.by_member independently of directory rows: pending-only filers remain visible without changing count, coverage or cursor semantics. Exact member_id filters also match paper metadata. State/Bioguide filters require matching directory identities in the returned page and explicitly disclose that limitation. Existing rows include their paper block; unknown paper counts remain null. Measurement-clock changes alone do not change the weak validator, but queue evidence changes do.

## Query parameters

- `limit` integer: Opts into the shared paginated envelope. Default 100, maximum 500 for every key class. Omitting both limit and cursor preserves the legacy unpaginated response.
- `cursor` string: Opts into pagination using page.next_cursor from this directory, with the same filters. Signed member_id position using the disclosures codec, not an immutable snapshot. Coverage is measured separately at each page's coverage.served_at.
- `chamber` 'house' | 'senate' | 'executive': Branch of government.
- `state` string: Two-letter state code.
- `bioguide` string: Official Bioguide identifier.
- `member_id` string: Exact filer identifier as it appears on a served disclosure row's member.member_id, for example nancy-pelosi. Returns that filer's directory entry or an empty page; never a near match.
- `name` string: Case-insensitive substring of the filer's full name, for example pelosi or Gottheimer. Matches the name as filed; a client resolving a person should confirm with bioguide or member_id before using the result.

## Response `200`

Filer directory. Omitting limit and cursor preserves the legacy response; either parameter opts into member_id-ordered pagination with live page coverage measured in one statement.

- union: Without limit and cursor, the unchanged legacy directory response. If either is present, the paginated shared envelope. Both carry the same `directory` object naming the relation that answered. No default change or sunset through 1.11.1.
  - object
    - `data` object[], required
      - `member_id` string, required: Filer identifier from the directory; the ascending key for opt-in pagination.
      - `identity` object, required: Directory identity join, independent of financial disclosure counts.
        - `bioguide` string, nullable, required: Mapped official congressional Bioguide ID, or null when unmapped or inapplicable.
        - `system` 'us_congress_bioguide', required: Identifier namespace, not a statement that every filer has an identifier in it.
        - `note` string, nullable, required: Explanation of a missing identity mapping; null when an identifier is present.
      - `full_name` string, nullable, required: Name carried by the existing directory; null when unavailable.
      - `chamber` string, nullable, required: House, Senate or executive-branch filer class from the directory; null when unavailable.
      - `party` string, nullable, required: Directory party label, or null without a mapping.
      - `state` string, nullable, required: Directory state code, or null when unavailable or inapplicable.
      - `district` string, nullable, required: 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.
      - `coverage` object, required: Existing directory coverage semantics retained. In the paginated response, read at coverage.served_at in the same statement as identity.
        - `disclosures_available` integer, required: Rows counted by the existing directory's candidate-view aggregate for this member, not a separately pinned API-version count.
        - `filings_pending_receipt` integer, required: Pending-receipt rows reported by the directory's latest member coverage observation, or its executive-branch receipt predicate; not distinct document count.
        - `filings_pending_qualification` integer, required: Nonnegative difference between directory total held rows and candidate aggregate rows; not a per-reason exclusion census.
        - `latest_filed_date` string, nullable, required: Maximum filing date among this member's directory candidate rows; null without one.
        - `average_filing_delay_days` number, nullable, required: Directory aggregate of transaction-to-filing days, rounded by the existing SQL view; null without measured intervals. Not a timeliness verdict.
      - `paper_transcriptions` object, required: This known filer's paper queue state from the independent paper measurement, without changing directory disclosure counts.
        - `member_id` string, required: Canonical member identifier requested by the member surface.
        - `measured_at` string, date-time, nullable, required: Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete.
        - `state` 'pending_transcription', nullable, required: Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim.
        - `pending_documents` integer, nullable, required: Member's total outstanding queue filings only when the full annual population is measured; otherwise null.
        - `known_pending_documents` integer, nullable, required: 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` string, nullable, required: Reason the member total is unknown, inherited from the same coverage measurement.
        - `paper_rows_remaining` unknown, required
        - `paper_rows_reason` 'not_transcribed', required: Why the member's remaining transaction-row count is unavailable.
        - `pending` object[], required: Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.
          - `doc_id` string, required: House Clerk PTR document identifier.
          - `member` string, required: Member name from retained Clerk filing metadata.
          - `member_id` string, required: Member route identifier, resolved through the existing member alias registry when available.
          - `filing_date` string, date, required: Filing date printed in the retained Clerk annual index, YYYY-MM-DD.
          - `receipt_url` string, required: Official Clerk PDF URL matching this DocID.
          - `state` 'pending_transcription', required: The filing has no completed verified transcription recorded in this queue.
          - `queue_status` 'pending_transcription' | 'failed_terminal', required: Outstanding transcription work or a retained terminal transcription failure.
          - `since` string, date-time, required: First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.
          - `since_basis` 'first_verified_no_text_inspection' | 'first_terminal_document_outcome', required: Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.
          - `reason` string, nullable, required: Named terminal queue diagnosis, or null when none is recorded.
          - `paper_rows` unknown, required
          - `paper_rows_reason` 'not_transcribed', required: Why no transaction-row count is available.
          - `active_followers` integer, nullable, required: Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured.
    - `paper_transcriptions` object, required: Paper queue visibility independent of the directory population and measurement timestamp. Completeness state describes the annual paper measurement, not roster coverage.
      - `state` 'measured' | 'incomplete' | 'unavailable', required: Whether the retained annual index and complete PDF inspection population reconcile, remain incomplete, or cannot be read.
      - `reason` string, nullable, required: Named reason for incomplete or unavailable measurement; null only when reconciled.
      - `archive_year` integer, required: Clerk annual filing-index year being reconciled.
      - `measured_at` string, date-time, nullable, required: Database transaction timestamp from the same RPC statement as these counts, canonical UTC Z; null when the read could not complete.
      - `filters` object, required: Member filters applied to the independent paper list; directory cursor and limit do not paginate this list.
        - `member_id` string, nullable, required: Exact canonical member filter, or null for all matching members.
        - `name` string, nullable, required: Literal case-insensitive substring applied to retained paper member names, not a wildcard.
        - `chamber` string, nullable, required: Requested chamber; this paper queue contains House documents only.
        - `state` string, nullable, required: Requested state; requires a matching known directory record and is not inferred from a member name.
        - `bioguide` string, nullable, required: Requested Bioguide; requires a matching known directory record and is never invented for pending-only filers.
      - `filter_coverage` 'paper_metadata' | 'directory_response_only', required: 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.
      - `filter_reason` string, nullable, required: 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.
      - `by_member` object[], required: 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.
        - `member_id` string, required: Canonical member identifier requested by the member surface.
        - `measured_at` string, date-time, nullable, required: Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete.
        - `state` 'pending_transcription', nullable, required: Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim.
        - `pending_documents` integer, nullable, required: Member's total outstanding queue filings only when the full annual population is measured; otherwise null.
        - `known_pending_documents` integer, nullable, required: 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` string, nullable, required: Reason the member total is unknown, inherited from the same coverage measurement.
        - `paper_rows_remaining` unknown, required
        - `paper_rows_reason` 'not_transcribed', required: Why the member's remaining transaction-row count is unavailable.
        - `pending` object[], required: Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.
          - `doc_id` string, required: House Clerk PTR document identifier.
          - `member` string, required: Member name from retained Clerk filing metadata.
          - `member_id` string, required: Member route identifier, resolved through the existing member alias registry when available.
          - `filing_date` string, date, required: Filing date printed in the retained Clerk annual index, YYYY-MM-DD.
          - `receipt_url` string, required: Official Clerk PDF URL matching this DocID.
          - `state` 'pending_transcription', required: The filing has no completed verified transcription recorded in this queue.
          - `queue_status` 'pending_transcription' | 'failed_terminal', required: Outstanding transcription work or a retained terminal transcription failure.
          - `since` string, date-time, required: First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.
          - `since_basis` 'first_verified_no_text_inspection' | 'first_terminal_document_outcome', required: Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.
          - `reason` string, nullable, required: Named terminal queue diagnosis, or null when none is recorded.
          - `paper_rows` unknown, required
          - `paper_rows_reason` 'not_transcribed', required: Why no transaction-row count is available.
          - `active_followers` integer, nullable, required: Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured.
    - `count` integer, required
    - `identity_join` 'measured' | 'unavailable', required
    - `served_at` string, date-time, required
    - `directory` object, required: 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.
      - `source` 'snapshot' | 'live_view', required: 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` string, date-time, nullable, required: 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.
      - `max_age_seconds` integer, required: 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.
      - `fallback_reason` 'snapshot_unreadable' | 'snapshot_unstamped' | 'snapshot_older_than_declared_bound', nullable, required: 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.
    - `cache` object, required
      - `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
  - object
    - `data` object[], required: Members after the cursor position in ascending member_id order; an empty array is a successful measured empty result.
      - `member_id` string, required: Filer identifier from the directory; the ascending key for opt-in pagination.
      - `identity` object, required: Directory identity join, independent of financial disclosure counts.
        - `bioguide` string, nullable, required: Mapped official congressional Bioguide ID, or null when unmapped or inapplicable.
        - `system` 'us_congress_bioguide', required: Identifier namespace, not a statement that every filer has an identifier in it.
        - `note` string, nullable, required: Explanation of a missing identity mapping; null when an identifier is present.
      - `full_name` string, nullable, required: Name carried by the existing directory; null when unavailable.
      - `chamber` string, nullable, required: House, Senate or executive-branch filer class from the directory; null when unavailable.
      - `party` string, nullable, required: Directory party label, or null without a mapping.
      - `state` string, nullable, required: Directory state code, or null when unavailable or inapplicable.
      - `district` string, nullable, required: 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.
      - `coverage` object, required: Existing directory coverage semantics retained. In the paginated response, read at coverage.served_at in the same statement as identity.
        - `disclosures_available` integer, required: Rows counted by the existing directory's candidate-view aggregate for this member, not a separately pinned API-version count.
        - `filings_pending_receipt` integer, required: Pending-receipt rows reported by the directory's latest member coverage observation, or its executive-branch receipt predicate; not distinct document count.
        - `filings_pending_qualification` integer, required: Nonnegative difference between directory total held rows and candidate aggregate rows; not a per-reason exclusion census.
        - `latest_filed_date` string, nullable, required: Maximum filing date among this member's directory candidate rows; null without one.
        - `average_filing_delay_days` number, nullable, required: Directory aggregate of transaction-to-filing days, rounded by the existing SQL view; null without measured intervals. Not a timeliness verdict.
      - `paper_transcriptions` object, required: This known filer's paper queue state from the independent paper measurement, without changing directory disclosure counts.
        - `member_id` string, required: Canonical member identifier requested by the member surface.
        - `measured_at` string, date-time, nullable, required: Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete.
        - `state` 'pending_transcription', nullable, required: Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim.
        - `pending_documents` integer, nullable, required: Member's total outstanding queue filings only when the full annual population is measured; otherwise null.
        - `known_pending_documents` integer, nullable, required: 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` string, nullable, required: Reason the member total is unknown, inherited from the same coverage measurement.
        - `paper_rows_remaining` unknown, required
        - `paper_rows_reason` 'not_transcribed', required: Why the member's remaining transaction-row count is unavailable.
        - `pending` object[], required: Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.
          - `doc_id` string, required: House Clerk PTR document identifier.
          - `member` string, required: Member name from retained Clerk filing metadata.
          - `member_id` string, required: Member route identifier, resolved through the existing member alias registry when available.
          - `filing_date` string, date, required: Filing date printed in the retained Clerk annual index, YYYY-MM-DD.
          - `receipt_url` string, required: Official Clerk PDF URL matching this DocID.
          - `state` 'pending_transcription', required: The filing has no completed verified transcription recorded in this queue.
          - `queue_status` 'pending_transcription' | 'failed_terminal', required: Outstanding transcription work or a retained terminal transcription failure.
          - `since` string, date-time, required: First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.
          - `since_basis` 'first_verified_no_text_inspection' | 'first_terminal_document_outcome', required: Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.
          - `reason` string, nullable, required: Named terminal queue diagnosis, or null when none is recorded.
          - `paper_rows` unknown, required
          - `paper_rows_reason` 'not_transcribed', required: Why no transaction-row count is available.
          - `active_followers` integer, nullable, required: Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured.
    - `paper_transcriptions` object, required: Paper queue visibility independent of the directory population and measurement timestamp. Completeness state describes the annual paper measurement, not roster coverage.
      - `state` 'measured' | 'incomplete' | 'unavailable', required: Whether the retained annual index and complete PDF inspection population reconcile, remain incomplete, or cannot be read.
      - `reason` string, nullable, required: Named reason for incomplete or unavailable measurement; null only when reconciled.
      - `archive_year` integer, required: Clerk annual filing-index year being reconciled.
      - `measured_at` string, date-time, nullable, required: Database transaction timestamp from the same RPC statement as these counts, canonical UTC Z; null when the read could not complete.
      - `filters` object, required: Member filters applied to the independent paper list; directory cursor and limit do not paginate this list.
        - `member_id` string, nullable, required: Exact canonical member filter, or null for all matching members.
        - `name` string, nullable, required: Literal case-insensitive substring applied to retained paper member names, not a wildcard.
        - `chamber` string, nullable, required: Requested chamber; this paper queue contains House documents only.
        - `state` string, nullable, required: Requested state; requires a matching known directory record and is not inferred from a member name.
        - `bioguide` string, nullable, required: Requested Bioguide; requires a matching known directory record and is never invented for pending-only filers.
      - `filter_coverage` 'paper_metadata' | 'directory_response_only', required: 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.
      - `filter_reason` string, nullable, required: 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.
      - `by_member` object[], required: 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.
        - `member_id` string, required: Canonical member identifier requested by the member surface.
        - `measured_at` string, date-time, nullable, required: Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete.
        - `state` 'pending_transcription', nullable, required: Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim.
        - `pending_documents` integer, nullable, required: Member's total outstanding queue filings only when the full annual population is measured; otherwise null.
        - `known_pending_documents` integer, nullable, required: 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` string, nullable, required: Reason the member total is unknown, inherited from the same coverage measurement.
        - `paper_rows_remaining` unknown, required
        - `paper_rows_reason` 'not_transcribed', required: Why the member's remaining transaction-row count is unavailable.
        - `pending` object[], required: Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.
          - `doc_id` string, required: House Clerk PTR document identifier.
          - `member` string, required: Member name from retained Clerk filing metadata.
          - `member_id` string, required: Member route identifier, resolved through the existing member alias registry when available.
          - `filing_date` string, date, required: Filing date printed in the retained Clerk annual index, YYYY-MM-DD.
          - `receipt_url` string, required: Official Clerk PDF URL matching this DocID.
          - `state` 'pending_transcription', required: The filing has no completed verified transcription recorded in this queue.
          - `queue_status` 'pending_transcription' | 'failed_terminal', required: Outstanding transcription work or a retained terminal transcription failure.
          - `since` string, date-time, required: First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.
          - `since_basis` 'first_verified_no_text_inspection' | 'first_terminal_document_outcome', required: Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.
          - `reason` string, nullable, required: Named terminal queue diagnosis, or null when none is recorded.
          - `paper_rows` unknown, required
          - `paper_rows_reason` 'not_transcribed', required: Why no transaction-row count is available.
          - `active_followers` integer, nullable, required: Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured.
    - `coverage` object, required: Measurement scope and database instant for this page only.
      - `rows_returned` integer, required: Number of directory entries in this page, not the size of the whole directory.
      - `identity_join` 'measured', required: The identity join succeeded in the same statement as coverage; a failed read returns 503 instead of null identities.
      - `served_at` string, date-time, required: Database statement_timestamp for this page's read. Not a retained generation or the time the HTTP response was serialized. It is the coverage measurement instant only when directory.source is live_view; when the snapshot answered, coverage was measured at directory.refreshed_at and this is when the copy was read.
      - `basis` 'Filer directory and coverage from one database statement, ordered by member_id ascending. `directory.source` names which relation answered. When it is `snapshot`, coverage was measured when that copy was taken, at `directory.refreshed_at`, and `served_at` is only when the copy was read; when it is `live_view`, coverage was measured at `served_at`. Identity is joined live in the same statement under both. Pages fetched at different times do not sum to one measurement instant. This is not a generation-pinned snapshot; roster changes may add or remove members between pages.', required: Population, ordering, per-source measurement instant and cross-page measurement limitations.
    - `directory` object, required: 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.
      - `source` 'snapshot' | 'live_view', required: 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` string, date-time, nullable, required: 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.
      - `max_age_seconds` integer, required: 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.
      - `fallback_reason` 'snapshot_unreadable' | 'snapshot_unstamped' | 'snapshot_older_than_declared_bound', nullable, required: 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.
    - `page` object, required: Keyset pagination over member_id, enabled only when limit or cursor is present.
      - `limit` integer, required: Requested page size, default 100, maximum 500 for both anonymous and keyed callers.
      - `has_more` boolean, required: One more matching member existed after this page in the same statement; not a reservation against later roster changes.
      - `next_cursor` string, nullable, required: Signed live-directory position and filter fingerprint, encoded by the disclosures cursor codec. Not a credential or a generation pin. Null at the end. Retain the same filters; treat the readable token as a URL containing your query.
    - `access` object, required: Directory entitlement, not an invented remaining request allowance. See the measured quota or observe-only response headers.
      - `tier` 'free' | 'developer' | 'evaluator', required: The independently authenticated caller's key class, or free for no key.
      - `max_rows_per_request` 500, required: The public directory cap is 500 in every key class; the disclosure-record free cap does not apply here.
      - `no_key_required` true, required: This public directory requires no key; a supplied key still undergoes authorization.
    - `cache` object, required: Private no-store for the live page measurement; conditional requests remain supported.
      - `policy` 'private-no-store', required: The live page is not reusable in a shared or browser cache; conditional requests remain supported.
      - `browser_max_age_seconds` 0, required: Browser reuse allowance in seconds; zero.
      - `cdn_max_age_seconds` 0, required: Shared-cache reuse allowance in seconds; zero.
      - `declared_max_staleness_seconds` 0, required: Cache reuse allowance, not a claim about upstream source age; zero.
      - `age_header` unknown, required
    - `version` '1.21.0', required: API contract version that produced this response.
    - `notice` string, required: Live measurement and cross-page limitations; no investment advice.

## 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`: A query parameter is invalid or unsupported.
- `401`: The supplied bearer key is invalid.
- `403`: The supplied key is not scoped for members.
- `503`: The paginated filer directory could not be measured; without limit/cursor the legacy error body is preserved.

---

[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)
