Programmatic access to 316 endpoints covering congressional trades, portfolios, signals, financial disclosures, and more.
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.
curl https://api.disclosedcapitol.com/v1/tools
{
"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": { "...": {} } } } }
]
}Get new trades, filings, and contract awards pushed to your endpoint the moment they land. 6 event types. Included with Pro.
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"
[
{
"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.
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) | |
| GET | /trades/bulk-latestComposite latest trades with enrichment data | |
| GET | /politiciansPolitician list with stats and rankings | |
| GET | /politicians/{id}Politician profile with trading stats | |
| GET | /politicians/{id}/tradesAll trades for a politician | |
| GET | /tickers/{ticker}/tradesCongressional trades for a specific stock | |
| GET | /tickers/topMost-traded tickers in Congress | |
| GET | /feed/liveReal-time trade feed | |
| GET | /feed/recentRecent trades for display | |
| GET | /searchGlobal search across politicians, tickers, and bills | |
| GET | /stats/summaryPlatform summary: total trades, politicians, activity |
| PUSH | disclosure.detected Pro | |
| PUSH | trade.created Pro | |
| PUSH | insider.filed Pro | |
| PUSH | lobbying.filed Pro | |
| PUSH | contract.awarded Pro | |
| PUSH | whale.filed Pro |
| GET | /alerts/webhook-events Pro | |
| GET | /alerts/webhooks/guide Pro | |
| GET | /alerts/subscriptions Pro | |
| POST | /alerts/subscriptions Pro | |
| DELETE | /alerts/subscriptions/{id} Pro | |
| POST | /alerts/subscriptions/{id}/test Pro | |
| POST | /alerts/subscriptions/{id}/rotate-secret Pro |
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
[
{
"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
Hand-picked high-value endpoints to get started
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.
| Code | What it means · How to recover |
|---|---|
| 400 | Bad Request. Malformed parameters or missing required fields. Check parameter names + types against the endpoint spec; do not retry as-is. |
| 401 | Unauthorized. Missing or invalid DC-API-Key header. Verify the key is active in Account → API Keys. If recently rotated, update your client. |
| 402 | 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. |
| 403 | Forbidden. Your tier does not include this endpoint. Upgrade or use an equivalent lower-tier endpoint listed below. |
| 404 | Not Found. Endpoint path or resource ID does not exist. Check the politician_id / ticker / committee_code against /search before retrying. |
| 422 | 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. |
| 429 | 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. |
| 500 | Internal Server Error. Unexpected server failure — we log + alert on these. Retry with exponential backoff. If persistent, email support@disclosedcapitol.com. |
| 502 | 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.
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.
| 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.
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%.