Disclosed CapitolDisclosedCapitol
Home
Plans
Chad AI
API
Sign InGet Pro

Never Miss a Trade

Get weekly trade alerts free.

Explore

  • Politician Trades
  • Politicians
  • Executive Branch
  • Companies
  • All Stocks A–Z
  • Leaderboard
  • Compare Politicians
  • Committee Portfolios
  • Chad AI

Money & Policy

  • Government Contracts
  • Lobbying
  • Legislation
  • Campaign Finance
  • Institutional (13F)
  • Whale Watch (13D)

Markets

  • Markets Overview
  • Top Companies
  • Insider Trends
  • Economic Indicators
  • Live News

Resources

  • API Access
  • Developers
  • Data Export
  • Glossary
  • Methodology
  • Data Sources
  • How It Works

Company

  • About Us
  • Press
  • FAQ
  • Pricing
  • vs. Capitol Trades
  • Contact
  • Watchlist

Legal

  • Editorial Standards
  • Corrections
  • Disclaimers
  • Privacy
  • Terms
© 2026 Disclosed Capitol. All rights reserved.
TermsPrivacyDisclaimer
HomeTrades
Chad
WatchlistAccount

API Access

Programmatic access to 316 endpoints covering congressional trades, portfolios, signals, financial disclosures, and more.

Get API Key

Try it now — no key, no signup

GET /v1/tools is public — paste this in a terminal and it works instantly, no key. For the other endpoints, get your free key + 750 credits. Commercial use welcome.

Terminal
curl https://api.disclosedcapitol.com/v1/tools
200 OK · application/json · trimmed
{
  "base_url": "https://api.disclosedcapitol.com",
  "auth": { "header": "DC-API-Key", "billing": "pay-per-use, billed to your key" },
  "routing": {
    "lookup":          { "method": "GET", "path": "/search" },
    "query_trades":    { "method": "GET", "path": "/trades" },
    "semantic_search": { "method": "GET", "path": "/v1/semantic-search" },
    "get_portfolio":   { "method": "GET", "path": "/portfolio/{politician_id}", "path_params": ["politician_id"] },
    "get_conflicts":   { "method": "GET", "path": "/conflict/{politician_id}", "path_params": ["politician_id"] }
  },
  "anthropic": [
    { "name": "query_trades", "description": "Search congressional & executive stock trades...", "input_schema": { "type": "object", "properties": { "ticker": {"type": "string"}, "politician_id": {"type": "integer"}, "...": {} } } }
  ],
  "openai": [
    { "type": "function", "function": { "name": "query_trades", "description": "...", "parameters": { "type": "object", "properties": { "...": {} } } } }
  ]
}

Real-time webhooks — push, don't poll

Get new trades, filings, and contract awards pushed to your endpoint the moment they land. 6 event types. Included with Pro.

See webhook events ↓Get Pro

Authentication

Every request needs an API key, passed as a DC-API-Key header. Base URL is https://api.disclosedcapitol.com.

curl https://api.disclosedcapitol.com/trades?limit=5 \
  -H "DC-API-Key: dc_your_key_here"
200 OK · application/json · trimmed
[
  {
    "id": 249075,
    "politician_id": 7,
    "politician_name": "Ed Case",
    "party": "D",
    "state": "HI",
    "chamber": "House",
    "ticker": "AAPL",
    "trade_type": "Buy",
    "asset_type": "Stock",
    "amount_range": "$1,001 - $15,000",
    "transaction_date": "2026-05-14",
    "disclosure_date": "2026-05-31",
    "days_to_disclose": 17,
    "sector": "Technology",
    "price_on_trade_date": 298.21,
    "price_on_disclosure": 312.06,
    "gain_7d": 2.27,
    "source": "house.gov"
  },
  "... 4 more trades"
]

Keep keys server-side. If a key is exposed, rotate it from Account → API Keys.

316

endpoints in production

One REST API, every politician trade, every committee portfolio, every overlap. Below is a curated tour of 75 of the most-used endpoints across 8 categories. The full 316-endpoint catalog with live credit costs comes back from GET /credits/endpoints or GET /openapi.json.

GET/tradesPaginated trade feed with filters (politician, ticker, date, type, party)Paginated trade feed with filters (politician, ticker, date, type, party)
GET/trades/bulk-latestComposite latest trades with enrichment dataComposite latest trades with enrichment data
GET/politiciansPolitician list with stats and rankingsPolitician list with stats and rankings
GET/politicians/{id}Politician profile with trading statsPolitician profile with trading stats
GET/politicians/{id}/tradesAll trades for a politicianAll trades for a politician
GET/tickers/{ticker}/tradesCongressional trades for a specific stockCongressional trades for a specific stock
GET/tickers/topMost-traded tickers in CongressMost-traded tickers in Congress
GET/feed/liveReal-time trade feedReal-time trade feed
GET/feed/recentRecent trades for displayRecent trades for display
GET/searchGlobal search across politicians, tickers, and billsGlobal search across politicians, tickers, and bills
GET/stats/summaryPlatform summary: total trades, politicians, activityPlatform summary: total trades, politicians, activity

Webhooks

(13)
Pro
Real-time push feeds — included with Pro · we POST a signed payload to your URL the moment an event fires — no polling, no per-call credits
PUSHdisclosure.detected ProFires the instant a new congressional filing appears in the public index — before the PDF is even parsed. The lowest-latency way to react to a new filing.
PUSHtrade.created ProFires when a new congressional trade is ingested (post-parse): politician, ticker, action, amount range, asset/option detail, and dates.
PUSHinsider.filed ProFires when a new SEC Form-4 insider transaction is ingested — insider, ticker, buy/sell, shares, price, plus a flag for whether a politician also traded the same ticker recently.
PUSHlobbying.filed ProFires when a new federal lobbying (LDA) filing is ingested: registrant, client, filing type/period, reported income/expenses/amount, and the filing URL.
PUSHcontract.awarded ProFires when a new federal government contract award is ingested from USASpending: recipient, matched ticker, awarding agency, amount, dates, NAICS.
PUSHwhale.filed ProFires when a new SEC 13D/G filing is ingested — an activist or >5% stakeholder disclosing a position, with a flag for whether a politician also traded the same ticker.
Management endpoints
GET/alerts/webhook-events ProCatalog of all webhook event types with filters and payload shapes
GET/alerts/webhooks/guide ProFull integration guide: payload envelope, HMAC signature verification, retries, sample payloads
GET/alerts/subscriptions ProList your webhook subscriptions
POST/alerts/subscriptions ProRegister a webhook: event type + delivery='webhook' + your webhook_url
DELETE/alerts/subscriptions/{id} ProRemove a subscription
POST/alerts/subscriptions/{id}/test ProSend a signed sample payload to your endpoint
POST/alerts/subscriptions/{id}/rotate-secret ProRotate the HMAC signing secret
316 endpoints in production · 75 curated above · Base URL: https://api.disclosedcapitol.com · All requests require DC-API-Key header

Example responses

Real-shaped JSON for four flagship endpoints — /trades is expanded below; click the others to expand them, or click any row in the catalog above to see the request and response for that endpoint inline.

Recent congressional trades with enrichment (price, return, alpha)

GET https://api.disclosedcapitol.com/trades?limit=2
200 OK · application/json
[
  {
    "id": 249075,
    "politician_id": 7,
    "politician_name": "Ed Case",
    "party": "D",
    "state": "HI",
    "chamber": "House",
    "ticker": "AAPL",
    "trade_type": "Buy",
    "asset_type": "Stock",
    "amount_range": "$1,001 - $15,000",
    "amount_low": 1001.0,
    "amount_high": 15000.0,
    "transaction_date": "2026-05-14",
    "disclosure_date": "2026-05-31",
    "days_to_disclose": 17,
    "sector": "Technology",
    "industry": "Consumer Electronics",
    "price_on_trade_date": 298.21,
    "price_on_disclosure": 312.06,
    "gain_7d": 2.27,
    "current_return": null,
    "days_held": 18,
    "source": "house.gov"
  },
  {
    "id": 249066,
    "politician_id": 178,
    "politician_name": "Marjorie Taylor Greene",
    "party": "R",
    "state": "GA",
    "chamber": "House",
    "ticker": "PLTR",
    "trade_type": "Buy",
    "asset_type": "Stock",
    "amount_range": "$1,001 - $15,000",
    "transaction_date": "2026-05-12",
    "disclosure_date": "2026-05-30",
    "days_to_disclose": 18,
    "price_on_trade_date": 28.47,
    "price_on_disclosure": 30.12,
    "gain_7d": 5.79
  }
]

Politician stats: CAGR, Sharpe, alpha, conflict score, holdings

Coordinated trading clusters — 3+ politicians, same ticker, same week

Live portfolio: open positions with unrealized P&L and weight

Recommended Endpoints

Hand-picked high-value endpoints to get started

1./trades— Latest congressional trades
2./chad/chat— Chad AI assistant
3./politicians/{id}— Politician performance profile
4./portfolio/{id}/positions— Live portfolio holdings
5./clusters/recent— Coordinated trading clusters
6./legislation/suspicious-timing— Suspicious timing patterns
7./overlap— Trade × lobbying overlap
8./tickers/top— Most-traded stocks in Congress

Error responses

Every error returns a JSON body of the form { "detail": "..." } with an appropriate HTTP status. Build retry logic against these codes — most are recoverable without manual intervention.

CodeStatusWhat it means · How to recover
400Bad Request
Bad Request. Malformed parameters or missing required fields.
Check parameter names + types against the endpoint spec; do not retry as-is.
401Unauthorized
Unauthorized. Missing or invalid DC-API-Key header.
Verify the key is active in Account → API Keys. If recently rotated, update your client.
402Payment Required
Payment Required. Credit balance is zero — request would deduct below zero.
Top up at /account?tab=billing or wait for the next monthly Pro allowance.
403Forbidden
Forbidden. Your tier does not include this endpoint.
Upgrade or use an equivalent lower-tier endpoint listed below.
404Not Found
Not Found. Endpoint path or resource ID does not exist.
Check the politician_id / ticker / committee_code against /search before retrying.
422Unprocessable Entity
Unprocessable Entity. Parameter values failed validation (e.g. malformed date, out-of-range limit).
Inspect the response body for the field name. Fix and retry.
429Too Many Requests
Too Many Requests. Per-minute rate limit exceeded for your priority tier.
Back off for the seconds in the Retry-After header (default 60), then retry. Increase tier by raising 30-day spend.
500Internal Server Error
Internal Server Error. Unexpected server failure — we log + alert on these.
Retry with exponential backoff. If persistent, email support@disclosedcapitol.com.
502Bad Gateway
Bad Gateway. Upstream data source (e.g. SEC, House clerk) is temporarily unreachable.
Retry after 30–60s. The data layer falls back to cached values when possible.

Tip: never deduct credits on the client. Always read the actual balance from GET /credits/balance after a request — it reflects retries, partial deductions, and refunds.

Rate limits & quotas

Two independent guards: a per-minute burst limit on request rate, and your credit balance as a hard ceiling on volume. Both fail closed with a clear retry signal.

Per-minute burst
HTTP 429
Starter ($5+/30d)60 req/min
Plus ($25+/30d, Pro/Dev)240 req/min
Power ($100+/30d)600 req/min

On 429: response includes a Retry-After: 60 header. Back off, then retry.

Credit balance
HTTP 402

Each request deducts credits. When balance hits zero, the API returns 402 Payment Required until you top up.

Check remaining balance any time: GET /credits/balance

Tip: track the balance returned in /credits/balance and alert your own system below 20%.