> ## 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 Trades

> Public Capitol Trades disclosure index with combined exact ticker/member, party/chamber/sector/type and publication-date filters. Native date/delay sorting is verified; value sorting requires a complete filtered result of at most 100 disclosures. The source limits history to three years. One-hour cursors bind filters, resolved identities, sort and size. Empty results are free.

Queries the public [Capitol Trades disclosure index](https://www.capitoltrades.com/trades). All filters are optional and can be combined: `ticker`, `politician`, `party`, `chamber`, `sector`, `tx_type`, `start_date` and `end_date`. Bare tickers default to `:US`; exact public issuer lookup must be complete and unambiguous. Member names must resolve uniquely; full display names and native member IDs are also accepted. Unindexed identities return an empty result. Use a full member name/ID for an initial empty filtered or terminal result: an empty page cannot independently corroborate a surname.

`sector` uses the source's 12 documented slugs, including `information-technology`, `health-care` and `financials`. Spaces and case normalize. Date bounds are inclusive **publication dates**, not transaction dates; omitted bounds use 1900-01-01/the request's UTC date when a date filter is present. Every returned row must agree with every requested identity and filter.

Use `sort=pub_date` (default), `tx_date` or `reporting_gap` with `order=asc|desc` (default desc). **Value sorting requires the complete filtered result to contain at most 100 disclosures.** That entire result is sorted before slicing. Broader results return an unbilled `422 UNSUPPORTED_PARAMETER`; narrow the filters or use a native date/delay sort. Partial pages are never presented as globally value-sorted.

`limit` is 1–100 (default 20), `offset` is 0–1,000,000. Pass a returned `next_cursor` alone to preserve filters, resolved identities, sort and window size for one hour. The preceding trade ID is rechecked; new or edited source records can require restarting. Confirmed terminal windows are empty and free.

The source limits available history to the past **three years**. `total` is its current matching indexed count, not lifetime or complete government filings. Disclosures preserve source IDs, member name/party/state/chamber, issuer/ticker/sector, publication and trade dates, transaction type, owner, reporting gap, estimated value and nullable price. Values are estimates. Birth dates and gender are omitted.

The adapter uses anonymous issuer lookup only when a ticker is supplied, and the existing Firecrawl basic transport for public HTML. Member-filtered requests add one directory read; at most two native disclosure pages are read. Bounds: shared 55-second deadline, 1 MiB issuer response, 4 MiB decoded HTML per page and 20 source reads/minute. Scripts are parsed as data without execution. No new account or private key is required.

A fresh nonempty result costs **1 credit**; empty results, errors, cache hits and successful idempotent replays cost zero. Use `X-Max-Credits: 1`. Existing approved provider free allowance only.


## OpenAPI

````yaml GET /us_congress_trades/trades
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/trades:
    get:
      tags:
        - Us Congress Trades
      summary: Us Congress Trades Trades
      description: >-
        Public Capitol Trades disclosure index with combined exact
        ticker/member, party/chamber/sector/type and publication-date filters.
        Native date/delay sorting is verified; value sorting requires a complete
        filtered result of at most 100 disclosures. The source limits history to
        three years. One-hour cursors bind filters, resolved identities, sort
        and size. Empty results are free.
      operationId: get_us_congress_trades_trades
      parameters:
        - name: ticker
          in: query
          required: false
          example: NVDA
          schema:
            type: string
          description: >-
            Exact source ticker; bare symbols default to :US.
            Incomplete/ambiguous issuer lookups fail closed.
        - name: politician
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unambiguous source member surname, full display name or member ID.
            Use a full name/ID for an initial empty filtered or terminal result,
            since an empty page cannot corroborate a surname.
        - name: party
          in: query
          required: false
          schema:
            type: string
            enum:
              - democrat
              - republican
        - name: chamber
          in: query
          required: false
          example: senate
          schema:
            type: string
            enum:
              - senate
              - house
        - name: sector
          in: query
          required: false
          schema:
            type: string
          description: >-
            Supported source sector slug; spaces/case normalize. Values:
            communication-services, consumer-discretionary, consumer-staples,
            energy, financials, health-care, industrials,
            information-technology, materials, real-estate, utilities, other.
        - name: tx_type
          in: query
          required: false
          example: buy
          schema:
            type: string
            enum:
              - buy
              - sell
              - exchange
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Inclusive publication-date bound, YYYY-MM-DD; not transaction date.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Inclusive publication-date bound, YYYY-MM-DD; not transaction date.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - pub_date
              - tx_date
              - value
              - reporting_gap
          description: >-
            Default pub_date. Value sort requires the complete filtered result
            to fit in 100 disclosures; broader results return unbilled 422
            UNSUPPORTED_PARAMETER.
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          description: asc or desc (default desc).
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: 1–100 rows, default 20.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1000000
          description: Rows to skip, 0–1000000; prefer next_cursor.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque one-hour cursor usable alone. Binds every filter, identity,
            sort/order and size; checks the preceding disclosure. Source changes
            require restarting.
        - 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: >-
            Public Capitol Trades disclosure index with combined exact
            ticker/member, party/chamber/sector/type and publication-date
            filters. Native date/delay sorting is verified; value sorting
            requires a complete filtered result of at most 100 disclosures. The
            source limits history to three years. One-hour cursors bind filters,
            resolved identities, sort and size. Empty results are free.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                url:
                                  type: string
                                issuer:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                                    ticker:
                                      type:
                                        - string
                                        - 'null'
                                    sector:
                                      type:
                                        - string
                                        - 'null'
                                  required:
                                    - id
                                    - name
                                    - ticker
                                    - sector
                                politician:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    first_name:
                                      type: string
                                    last_name:
                                      type: string
                                    display_name:
                                      type: string
                                    party:
                                      type: string
                                    state:
                                      type: string
                                    chamber:
                                      type: string
                                  required:
                                    - id
                                    - first_name
                                    - last_name
                                    - display_name
                                    - party
                                    - state
                                    - chamber
                                pub_date:
                                  type: string
                                tx_date:
                                  type: string
                                tx_type:
                                  type: string
                                owner:
                                  type:
                                    - string
                                    - 'null'
                                reporting_gap_days:
                                  type: integer
                                  minimum: 0
                                value_estimate_usd:
                                  type: integer
                                  minimum: 0
                                price_usd:
                                  type:
                                    - number
                                    - 'null'
                              required:
                                - id
                                - url
                                - issuer
                                - politician
                                - pub_date
                                - tx_date
                                - tx_type
                                - owner
                                - reporting_gap_days
                                - value_estimate_usd
                                - price_usd
                          returned_count:
                            type: integer
                            minimum: 0
                          total:
                            type: integer
                            minimum: 0
                          filters:
                            type: object
                            properties:
                              ticker:
                                type: string
                              politician:
                                type: string
                              party:
                                type: string
                              chamber:
                                type: string
                              sector:
                                type: string
                              tx_type:
                                type: string
                              start_date:
                                type: string
                              end_date:
                                type: string
                            additionalProperties: false
                          issuer:
                            type:
                              - object
                              - 'null'
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              ticker:
                                type: string
                            required:
                              - id
                              - name
                              - ticker
                          politician:
                            type:
                              - object
                              - 'null'
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                            required:
                              - id
                              - name
                          sort:
                            type: string
                            enum:
                              - pub_date
                              - tx_date
                              - value
                              - reporting_gap
                          order:
                            type: string
                            enum:
                              - asc
                              - desc
                          limit:
                            type: integer
                            minimum: 1
                            maximum: 100
                          offset:
                            type: integer
                            minimum: 0
                          has_more:
                            type: boolean
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          source:
                            type: string
                          coverage_note:
                            type: string
                        required:
                          - items
                          - returned_count
                          - total
                          - filters
                          - issuer
                          - politician
                          - sort
                          - order
                          - limit
                          - offset
                          - has_more
                          - next_cursor
                          - 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.