Bargo Congress Trades API · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Bargo Congress Trades API

11 actions 11 updates update extends openapi/bargo-congress-trades-api-congress-trades-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Bargo Congress Trades API's API. It is a proposal applied on top of the contract, not a document Bargo Congress Trades API publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-mcp-toolx-mcp-parameter-gapx-rest-onlyx-apievangelist-slugx-apievangelist-providerx-apievangelist-enrichedx-apievangelist-sourcex-data-provenance

Targets 7

$.info
$.paths['/trades'].get
$.paths['/trades/{ticker}'].get
$.paths['/members/{member_slug}'].get
$.paths['/stats'].get
$.paths['/members'].get
$.paths['/health'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Bargo Congress Trades API
  version: 1.0.0
extends: openapi/bargo-congress-trades-api-congress-trades-openapi.yml
x-provenance:
  generated: '2026-08-09'
  method: generated
  source: >-
    Derived from artifacts in this repo (conventions/, rate-limits/, errors/,
    lifecycle/, mcp/, data-model/) plus the provider's published documentation.
    The harvested spec in openapi/_original/ is never mutated; this overlay is
    the sole record of our additions.
  note: >-
    Every action below adds cataloguing metadata or restates a rule the provider
    already publishes in prose. No operation, parameter, schema or response is
    added, removed or reinterpreted.
actions:
  - target: $.info
    description: Catalog identity and rating metadata.
    update:
      x-apievangelist-slug: bargo-congress-trades-api
      x-apievangelist-provider: Bargo
      x-apievangelist-enriched: '2026-08-09'
      x-apievangelist-source: https://www.bargo.ai/free-apis/congress/openapi.json

  - target: $.info
    description: >-
      Record the upstream authority and citation for the dataset, which the
      provider documents on the docs page but not in the contract.
    update:
      x-data-provenance:
        regime: STOCK Act Periodic Transaction Reports
        upstream:
          - https://disclosures-clerk.house.gov/FinancialDisclosure
          - https://efdsearch.senate.gov/search/
        disclosure_lag_days: 45
        free_tier_window: rolling 3 months
        citation_doi: 10.5281/zenodo.21574840
        official: false
        note: >-
          Independent, unofficial normalization. Not affiliated with or endorsed
          by the U.S. House, the U.S. Senate, or any member of Congress.

  - target: $.info
    description: >-
      Surface the published fair-use quotas and the attribution obligation in
      the machine-readable contract, where today they exist only in prose.
    update:
      x-rate-limits:
        anonymous: {requests_per_day: 30, rows_per_day: 100, scope: ip, max_page_size: 100}
        free_key: {requests_per_day: 100, rows_per_day: 1000, scope: key, max_page_size: 250}
        headers: 'X-RateLimit-*'
        authoritative: response-headers
        throttled_status: 429
        artifact: rate-limits/bargo-congress-trades-api-rate-limits.yml
      x-attribution:
        required: true
        rule: Visible, above-the-fold credit linking back to Bargo wherever the data is displayed publicly.
        redistribution: Bulk redistribution of raw records is not permitted.
        terms: https://www.bargo.ai/free-apis/terms

  - target: $.info
    description: >-
      Declare the agent surface. The MCP endpoint is a first-class access path
      for this API but is invisible from the OpenAPI document alone.
    update:
      x-agent-surface:
        mcp:
          url: https://www.bargo.ai/free-apis/congress/mcp
          transport: Streamable HTTP
          tools: [get_congress_trades, get_congress_member, get_congress_stats]
          auth: 'X-Api-Key (fak_ key); tools/list is anonymous'
          crosswalk: mcp/bargo-congress-trades-api-tool-crosswalk.yml
        llms_txt: https://www.bargo.ai/llms.txt
        agent_skill: https://github.com/bargo-ai/bargo-free-api-packages/blob/main/skills/bargo-congress-api/SKILL.md
        agent_card: null

  - target: $.info
    description: >-
      State the conventions an agent gets wrong without them, and point at the
      captured artifacts that carry the detail.
    update:
      x-conventions:
        read_only: true
        methods: [GET]
        cors: open
        idempotency_key: false
        idempotency_note: All operations are GET, so every call is safe and retriable; no idempotency-key contract exists or is needed.
        pagination: {style: zero-based-page, params: [page, limit], response_fields: [page, limit, count], cursor: false, total: false}
        error_envelope: '{"error": string}'
        rfc9457: false
        join_key: member_slug
        artifacts:
          conventions: conventions/bargo-congress-trades-api-conventions.yml
          errors: errors/bargo-congress-trades-api-problem-types.yml
          data_model: data-model/bargo-congress-trades-api-data-model.yml
          lifecycle: lifecycle/bargo-congress-trades-api-lifecycle.yml

  - target: $.paths['/trades'].get
    description: Bind the operation to its MCP tool and flag the parameters MCP cannot express.
    update:
      x-mcp-tool: get_congress_trades
      x-mcp-parameter-gap: [from, to, page]

  - target: $.paths['/trades/{ticker}'].get
    description: >-
      This operation is reached through the same MCP tool, by supplying the
      optional ticker argument.
    update:
      x-mcp-tool: get_congress_trades
      x-mcp-binding: fan-out
      x-mcp-parameter-gap: [from, to, page]

  - target: $.paths['/members/{member_slug}'].get
    update:
      x-mcp-tool: get_congress_member

  - target: $.paths['/stats'].get
    update:
      x-mcp-tool: get_congress_stats

  - target: $.paths['/members'].get
    description: >-
      No MCP tool exposes the member roster, so an agent on the MCP surface must
      harvest member_slug from trade rows instead.
    update:
      x-mcp-tool: null
      x-rest-only: true

  - target: $.paths['/health'].get
    description: >-
      The only fully unauthenticated operation, and the nearest thing this
      provider has to a status signal — there is no status page.
    update:
      x-mcp-tool: null
      x-rest-only: true
      x-unauthenticated: true
      x-serves-as: data-freshness-and-liveness