> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Congressional Disclosure Members

> Members with disclosures in the current public Capitol Trades index. Exact Bioguide IDs join first/last names and latest recorded congressional state to the public congress-legislators dataset. Complete-index filtering, bounded pagination and one-hour roster-bound cursors. Three-year native coverage, not every historical STOCK Act filer.

List members with at least one disclosure in the **current Capitol Trades index**. The underlying website limits disclosure history to three years; this is not a lifetime roster or a claim of complete government filing coverage.

Optional `party` is `democrat` or `republican`. Without that filter, the native `other` group can also appear. `state` accepts a two-letter USPS state, DC or territory code, case-insensitively. `limit` defaults to 20 and accepts 1–100; `offset` defaults to zero and accepts 0–1,000. Results are ordered by last name, first name, then exact Bioguide ID.

The adapter reads and checks the **complete current source directory before filtering**, including total counts, all native pages, unique member IDs and disclosure-count ordering. It does not filter only a sampled page. At most 1,000 members and ten 100-row source pages are supported; larger, incomplete or changing indexes fail without charging. Native zero-result filter pages can fail upstream, so filters are applied locally to the corroborated complete index.

Each native ID is joined exactly to the public [congress-legislators dataset](https://github.com/unitedstates/congress-legislators). `first_name` and `last_name` are supplied by that dataset, not guessed by splitting display names. `name`, `party` and `trade_count` remain native disclosure-site fields. `state` is the latest recorded congressional state or territory from the identity dataset. A native source disagreement is visible in `ext.native_state` and `ext.state_discrepancy`; it is never silently hidden. The source currently mislabels Eleanor Holmes Norton as Washington, while her exact Bioguide record identifies DC. Names may differ in nickname, middle-name or accent conventions. Private biography, contact, birthday and gender fields are omitted.

Pass `data.next_cursor` as `cursor` alone to continue. Its one-hour lifetime binds the query and the complete roster identity. Changed members, names, party or state require restarting. Disclosure counts may update between pages; this is not a frozen financial snapshot. `total` is the complete count after filters, `total_indexed` is the unfiltered native roster size. Windows beyond the end and filters with no members return an empty list.

Requests share a 55-second deadline. The existing Firecrawl basic transport reads public disclosure pages with at most three concurrent reads and 20 reads/minute. Anonymous public name files are bounded to 16 MiB each, without sharing the Firecrawl credential. No new account, credential or paid plan is used.

A fresh nonempty result costs **1 credit**. Empty results, errors, cache hits and identical successful replays cost zero. Use `X-Max-Credits: 1`. Member handles used for disclosure lookups can be ambiguous; the exact returned Bioguide `id` is supported by `/v1/us_congress_trades/politician/trades`.


## OpenAPI

````yaml GET /us_congress_trades/members
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /us_congress_trades/members:
    get:
      tags:
        - Us Congress Trades
      summary: Us Congress Trades Members
      description: >-
        Members with disclosures in the current public Capitol Trades index.
        Exact Bioguide IDs join first/last names and latest recorded
        congressional state to the public congress-legislators dataset.
        Complete-index filtering, bounded pagination and one-hour roster-bound
        cursors. Three-year native coverage, not every historical STOCK Act
        filer.
      operationId: get_us_congress_trades_members
      parameters:
        - name: party
          in: query
          required: false
          example: democrat
          schema:
            type: string
            enum:
              - democrat
              - republican
        - name: state
          in: query
          required: false
          example: ca
          schema:
            type: string
            minLength: 2
            maxLength: 2
          description: >-
            USPS state, DC or territory code, case-insensitive. Uses the
            member’s latest recorded congressional state from the public
            identity dataset; native disclosure-site disagreements are exposed.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1000
            default: 0
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            One-hour cursor bound to filters, limit, offset and complete member
            identities. Use alone. Roster changes require restarting; disclosure
            counts can refresh.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Members with disclosures in the current public Capitol Trades index.
            Exact Bioguide IDs join first/last names and latest recorded
            congressional state to the public congress-legislators dataset.
            Complete-index filtering, bounded pagination and one-hour
            roster-bound cursors. Three-year native coverage, not every
            historical STOCK Act filer.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            maxItems: 100
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                first_name:
                                  type: string
                                last_name:
                                  type: string
                                name:
                                  type: string
                                party:
                                  type: string
                                  enum:
                                    - democrat
                                    - republican
                                    - other
                                state:
                                  type: string
                                trade_count:
                                  type: integer
                                  minimum: 0
                                url:
                                  type: string
                                ext:
                                  type: object
                                  properties:
                                    native_state:
                                      type: string
                                    state_discrepancy:
                                      type: boolean
                                  required:
                                    - native_state
                                    - state_discrepancy
                              required:
                                - id
                                - first_name
                                - last_name
                                - name
                                - party
                                - state
                                - trade_count
                                - url
                                - ext
                          returned_count:
                            type: integer
                            minimum: 0
                          total:
                            type: integer
                            minimum: 0
                          total_indexed:
                            type: integer
                            minimum: 0
                          party:
                            type:
                              - string
                              - 'null'
                          state:
                            type:
                              - string
                              - 'null'
                          limit:
                            type: integer
                            minimum: 1
                            maximum: 100
                          offset:
                            type: integer
                            minimum: 0
                            maximum: 1000
                          has_more:
                            type: boolean
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          source:
                            type: string
                          name_source:
                            type: string
                          coverage_note:
                            type: string
                        required:
                          - items
                          - returned_count
                          - total
                          - total_indexed
                          - party
                          - state
                          - limit
                          - offset
                          - has_more
                          - next_cursor
                          - source
                          - name_source
                          - coverage_note
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.