Stillhouse Data API Beta
REST access to public SEC/FINRA data - Form ADV the full EDGAR filing spine (faceted search, per-filing structured detail, and documents for every registered filing family), full-text search across ten corpora, company resolution, plus Form ADV firm search and detail, adviser rep movements, 13F holdings, securities holder rollups (incl. private/pre-IPO marks and issuer financials), Form D / Reg A / crowdfunding fundraising filings, IPO and proxy feeds, structured 8-K events, X-17A-5 broker-dealers, Reg CF funding portals, new fund launches, and ADV Part 2 brochure full text. More datasets will be added under new sections of this page.
Base URL: https://api.stillhousedata.com/v1
A machine-readable OpenAPI 3.1 spec covers every endpoint on this page.
Authentication
Every request requires an API key, passed either way:
Authorization: Bearer cove_XXXXXXXX...
X-Api-Key: cove_XXXXXXXX...
Free API access: sign in and create a key: 10 calls per minute, 1 active key per account, covering every endpoint documented on this page. For higher usage limits or bulk access contact us.
Keys carry scopes. This API requires the api scope (keys scoped only to mcp will receive 403).
Keep keys server-side. Do not embed a key in browser JavaScript or mobile apps - anyone can read it there. Revoked keys stop working within about 30 seconds.
Verify connectivity with:
curl -s https://api.stillhousedata.com/v1/me \
-H "Authorization: Bearer cove_..."
Rate limits
| Bucket | Limit | Applies to |
|---|---|---|
| Search | 10 requests / minute / key | Endpoints tagged search bucket below (name/text search, list scans, feeds) |
| General | 10 requests / minute / key | All other endpoints |
The buckets are independent. Responses include standard RateLimit-* headers (limit, remaining, reset). Exceeding a bucket returns 429 with a JSON body:
{ "error": "Search limit exceeded for this API key - see the RateLimit-* response headers" }
Higher per-key limits are available for partners and gateways - contact us. GET /v1/me echoes your key's effective limits.
Errors
| Status | Meaning |
|---|---|
401 | Missing, invalid, or revoked API key |
403 | Key lacks the required api scope |
404 | Unknown endpoint (only the endpoints documented here exist), or entity not found |
429 | Rate limit exceeded - check RateLimit-Reset |
All errors are JSON: { "error": "..." }.
EDGAR filing spine - every filing family
One modular quartet over the whole EDGAR corpus (1993-today): search filings across any registered family with per-family facets, look up one filing with its structured extraction inline, fetch the document itself (markdown or original bytes), and resolve companies into their filing feeds. The family registry is served live - new families and facets appear in /filings/families with no API version change.
GET /v1/filings/families the family registry - the per-family API contract
Every filing family: slug, label, group, form_types, status, bespoke_route (a richer per-filing endpoint pattern when one exists), and feed_spec - the columns and typed facet fields that /v1/filings?family=…&filters=… accepts. This catalog is the discovery surface: poll it for new families.
GET /v1/filings/coverage per-family extraction coverage
Snapshot of how much of each family is extracted: filings count, extracted count, pct, and tier (structured | reader | listed | ledger).
GET /v1/filings search bucket search filings across every family
| Param | Description |
|---|---|
family | Family slug from /filings/families |
q | Company name (substring) |
cik | Filer CIK |
form | Exact form code, e.g. 8-K |
item | 8-K item code, e.g. 5.02 |
from / to | Filed-date bounds, YYYY-MM-DD |
sort / dir | date (default) | name; asc | desc |
filters | URL-encoded JSON AND/OR tree over the universal fields plus the family's facets (vocabulary in /filings/families). Invalid trees return 400. |
limit / offset | Cap 50 / max 100,000 (no cursor pagination yet) |
curl -s "https://api.stillhousedata.com/v1/filings?family=eightk&item=5.02&limit=5" \
-H "X-Api-Key: cove_..."
Rows carry accession, cik, company_name, form_type, filed_date, period_of_report, has_text, family, plus family-bound rows (fam_rows) where the registry binds tables.
GET /v1/filing/{accession} universal filing lookup + structured detail
Header, family, the member documents manifest, the filer's recent timeline and amendments, and two things that make it universal: a capabilities object saying exactly which follow-ups apply to this filing (original, reader, struct, bespoke, …), and family_data - the family's structured extraction inline. Dashed accessions (0001234567-26-000001).
GET /v1/doc-text/{source}/{accession} document text as markdown
The full filing text, markdown preferred with plain-text fallback (format field). source ∈ tenx (10-K/10-Q), ncsr, fundreg, x17, s1, sc13. No size cap - a big 10-K is several MB of JSON.
GET /v1/doc-text/by-cik/{cik} a registrant's readable documents
Every readable document for a CIK across the six text corpora. ?sources= narrows.
GET /v1/edgar/doc/{accession}/{seq} one original filing member - raw bytes
The document as filed: HTML, PDF, images, XML, or TXT, served with its native content type from the dissemination-archive cache. seq comes from the lookup's documents manifest. First fetch of a filing takes ~1-2s; immutable-cached after. ?raw=1 returns XML unwrapped. Send Accept: application/json (or ?format=json) to get error bodies as JSON. 413 above 250MB.
GET /v1/text-search search bucket full-text search, ten corpora
Params: q (≥ 3 chars, quoted phrases supported), family (comma-separated slugs), form, corpus, from/to, size (≤ 50), page. Corpora span 10-K/10-Q, N-CSR, fund registrations, X-17A-5, S-1, SC 13D/G, carved 8-K item sections, Form D / insider / 13F projections, and a 21.7M-document cold tier back to 1993. Per-corpus time budgets keep responses bounded; the coverage object reports any corpus that timed out - partial results are flagged, never silent.
GET /v1/text-search/corpora searchable corpora catalog
Each corpus: slug, label, whether a markdown reader exists, and current availability.
GET /v1/companies/search search bucket resolve a company
Pass exactly one of q (name fragment, ≥ 2 chars), ticker (exact), or cik (precedence: cik > ticker > q); limit ≤ 25. Rows carry cik, name, tickers, exchanges, sic, entity_type, location, total_filings. The resolved CIK feeds /v1/filings?cik=….
GET /v1/companies/{cik} one company profile
Identity, tickers/exchanges, SIC, addresses, former names, filing count, and a filings_url pointer into the filing feed.
Form ADV - investment advisers
Data derives from SEC Form ADV filings (Part 1A), FINRA/IAPD rep records, and related SEC filings (13F, N-CEN, N-MFP). Firms are keyed by CRD number. All endpoints are included with a free key.
GET /v1/adv/advisers/search search bucket firm name typeahead
Firm name typeahead. Returns up to limit firms matching q.
| Param | Description |
|---|---|
q | Name fragment, minimum 2 characters (required) |
limit | Max results, default 10, cap 25 |
curl -s "https://api.stillhousedata.com/v1/adv/advisers/search?q=citadel" \
-H "X-Api-Key: cove_..."
Example - GET /v1/adv/advisers/search?q=citadel&limit=3 (response trimmed):
[
{
"id": "3705",
"firm_name": "CITADEL ADVISORS LLC",
"city": "MIAMI",
"state": "FL",
"lat": 25.765852585926,
"lng": -80.190829386817
},
{
"id": "33899",
"firm_name": "CITADEL INVESTMENT ADVISORY INC",
"city": "WILLOUGHBY",
"state": "OH",
"lat": 41.634750442673,
"lng": -81.410315021569
},
"… 1 more"
]
GET /v1/adv/advisers/list search bucket filtered, sorted, paginated firm list
Filtered, sorted, paginated firm list.
| Param | Description |
|---|---|
q | Name filter (optional) |
state | Two-letter state code |
adviser_type | Registration type filter |
fund_type | Private fund type filter |
exclude_terminated | true to drop terminated registrations |
has_disciplinary | true for firms with disciplinary disclosures |
sort | raum (default) | date | name |
order | desc (default) | asc |
limit, offset | Pagination |
Example: GET /v1/adv/advisers/list?state=FL&limit=2 (response trimmed):
{
"rows": [
{
"id": "3705",
"crd": "148826",
"adviser_type": "IA",
"firm_name": "CITADEL ADVISORS LLC",
"city": "MIAMI",
"state": "FL",
"country": "United States",
"latest_raum": "570621709022.00",
"latest_filing_date": "2026-06-11T07:00:00.000Z",
"has_disciplinary": false,
"fund_count": 37
},
"… 1 more"
],
"total": 3009,
"limit": 2,
"offset": 0
}
GET /v1/adv/advisers/by-crd/{crd} firm profile, compact by default
Firm profile. By default returns a compact core: identity, latest-filing summary (AUM, clients, registration), and fund counts by type. Opt into heavier sections with include (full responses can exceed 100 KB for large firms):
| Param | Description |
|---|---|
include | Comma-separated sections, or all. Available: filings (full filing history incl. fee schedules and form details), funds (private funds, GAV timeseries, non-private funds), service_providers (auditors/custodians/administrators), drp (disciplinary events), people (owners & officers), branches, part1a (latest Form ADV Part 1A verbatim), sma (SMA asset allocation), linked (linked Form D issuers). The response's sections field echoes what was included. |
# compact core (default)
curl -s https://api.stillhousedata.com/v1/adv/advisers/by-crd/148826 \
-H "X-Api-Key: cove_..."
# core + private funds + disciplinary history
curl -s "https://api.stillhousedata.com/v1/adv/advisers/by-crd/148826?include=funds,drp" \
-H "X-Api-Key: cove_..."
# everything (the old behavior)
curl -s ".../by-crd/148826?include=all" -H "X-Api-Key: cove_..."
Example: GET /v1/adv/advisers/by-crd/148826 (compact default) (response trimmed):
{
"adviser": {
"id": "3705",
"crd": "148826",
"sec_file_number": "801-70860",
"adviser_type": "IA",
"firm_name": "CITADEL ADVISORS LLC",
"street": "830 BRICKELL PLAZA, FLOOR 15",
"city": "MIAMI",
"state": "FL",
"country": "United States",
"zip": "33131",
"phone": "786-741-5389",
"lat": 25.765852585926,
"lng": -80.190829386817,
"has_website": true,
"execution_type": "Domestic"
},
"latest_filing": {
"id": "5240554",
"filing_id": "-20260611",
"filing_date": "2026-06-11T07:00:00.000Z",
"filing_type": null,
"total_clients": "3284",
"discretionary_aum": "570621709022.00",
"non_discretionary_aum": "0.00",
"total_raum": "570621709022.00",
"total_accounts": "37",
"total_assets": null,
"clients_individuals": 1314,
"clients_hnw": 62,
"clients_banks": 0,
"clients_investment_cos": 0,
"clients_pooled": 0,
"clients_other": 0,
"comp_pct_aum": true,
"comp_hourly": false,
"comp_subscription": false,
"comp_fixed": false,
"comp_commissions": false,
"comp_performance": true,
"comp_other": true,
"serves_individuals": false,
"serves_hnw": false,
"serves_investment_cos": true,
"serves_pooled": false,
"serves_pensions": false,
"serves_charities": false,
"serves_corps": false,
"serves_state_municipal": false,
"serves_other": false,
"has_disciplinary": false
},
"funds_total": 0,
"funds_by_type": [],
"sections": {
"included": [],
"available": [
"filings",
"funds",
"service_providers",
"… 6 more"
]
}
}
GET /v1/adv/advisers/by-crd/{crd}/rep-flows rep arrivals & departures
Investment adviser representative arrivals and departures for the firm (from IAPD rep-movement history, 1985–present).
Example: GET /v1/adv/advisers/by-crd/6413/rep-flows (response trimmed):
{
"crd": "6413",
"summary": {
"gained": 26245,
"lost": 11882,
"net": 14363
},
"byYear": [
{
"year": 2016,
"gained": 268,
"lost": 324
},
"… 10 more"
],
"recentIn": [
{
"indvl_pk": "4775272",
"first_nm": "Alexander",
"last_nm": "Triska",
"other_org_pk": "332978",
"other_org_nm": "THE LIFE WEALTH GROUP",
"move_date": "2026-07-23T07:00:00.000Z"
},
"… 29 more"
],
"recentOut": [
{
"indvl_pk": "7901402",
"first_nm": "VINCENT",
"last_nm": "PERFETTO",
"other_org_pk": "105413",
"other_org_nm": "POTOMAC",
"move_date": "2026-07-23T07:00:00.000Z"
},
"… 29 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/holdings-13f latest 13F equity holdings
The firm's most recent 13F equity holdings, where it files 13F.
Example: GET /v1/adv/advisers/by-crd/148826/holdings-13f (response trimmed):
{
"match": true,
"manager": {
"name": "CITADEL ADVISORS LLC",
"cik": "0001423053",
"city": "MIAMI",
"state": "FL"
},
"latest_period": "2026-03-31T07:00:00.000Z",
"position_count": 6733,
"total_value": "618473172395.00",
"positions": [
{
"cusip": "78462F103",
"issuer_name": "STATE STR SPDR S&P 500 ETF T",
"title_of_class": "TR UNIT",
"value": "41989836181.00",
"shares": "347775.0000",
"option_value": "41763664188.00",
"period_of_report": "2026-03-31T07:00:00.000Z"
},
{
"cusip": "46090E103",
"issuer_name": "INVESCO QQQ TR",
"title_of_class": "UNIT SER 1",
"value": "31844154182.00",
"shares": "84364.0000",
"option_value": "31795460968.00",
"period_of_report": "2026-03-31T07:00:00.000Z"
},
"… 98 more"
],
"trend": [
{
"period_of_report": "2016-06-30T07:00:00.000Z",
"total_value": "89729351000.00"
},
{
"period_of_report": "2016-09-30T07:00:00.000Z",
"total_value": "99536214000.00"
},
"… 38 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/registered-funds Form N-CEN funds
Registered funds (Form N-CEN) advised by the firm.
Example: GET /v1/adv/advisers/by-crd/105958/registered-funds (response trimmed):
{
"crd": "105958",
"fund_count": 223,
"advised_count": 223,
"subadvised_count": 0,
"total_net_assets": 11992500758574.312,
"funds": [
{
"series_id": "S000002848",
"fund_name": "VANGUARD TOTAL STOCK MARKET INDEX FUND",
"role": "Advisor",
"is_etf": true,
"is_money_market": null,
"monthly_avg_net_assets": "1903470699301.9350",
"ncen_filing_date": "2026-03-12T07:00:00.000Z",
"nport_net_assets": "1991691212321.29",
"nport_report_date": "2026-03-31T07:00:00.000Z",
"registrant_cik": "0000036405",
"registrant_name": "VANGUARD INDEX FUNDS",
"mmf_seven_day_yield": null,
"mmf_net_assets": null,
"mmf_report_date": null,
"cef_file_number": null,
"cef_first_seen_year": null,
"cef_last_seen_year": null,
"is_current": true,
"cef_active": null
},
"… 222 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/money-market-funds Form N-MFP funds
Money market funds (Form N-MFP) advised by the firm.
Example: GET /v1/adv/advisers/by-crd/105958/money-market-funds (response trimmed):
{
"match": true,
"crd": "105958",
"funds": [
{
"cik": "0000106830",
"registrant_name": "Vanguard Money Market Reserves",
"latest_report_date": "2026-06-30T07:00:00.000Z",
"latest_net_assets": "374582503126.02",
"latest_seven_day_gross_yield": null,
"latest_mmf_category": "Government",
"last_advised_report": "2026-06-30T07:00:00.000Z",
"is_current": true
},
"… 9 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/headcount employee / rep timeseries
Monthly employee / rep headcount time series.
Example: GET /v1/adv/advisers/by-crd/6413/headcount (response trimmed):
{
"crd": "6413",
"current": 23352,
"peak": 23352,
"series": [
{
"month": "1988-04-01",
"headcount": 1
},
{
"month": "1988-08-01",
"headcount": 2
},
{
"month": "1989-07-01",
"headcount": 3
},
"… 410 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/filing-activity per-day SEC filing activity
Per-day SEC filing activity. Optional years parameter bounds the window.
Example: GET /v1/adv/advisers/by-crd/148826/filing-activity?years=1 (response trimmed):
{
"crd": "148826",
"from": "2025-07-24",
"days": [
{
"form": "f13",
"d": "2025-08-14",
"n": 1
},
{
"form": "f13",
"d": "2025-11-14",
"n": 1
},
"… 10 more"
]
}
GET /v1/adv/advisers/by-crd/{crd}/similar similar firms
Heuristically similar firms (size, location, business mix). Optional limit.
Example: GET /v1/adv/advisers/by-crd/148826/similar?limit=2 (response trimmed):
{
"items": [
{
"id": "4183",
"crd": "281215",
"firm_name": "ROKOS CAPITAL MANAGEMENT LLP",
"city": "LONDON",
"state": null,
"lat": 54,
"lng": -2,
"total_raum": "219439595264.00",
"latest_filing_date": "2026-06-29T07:00:00.000Z",
"has_disciplinary": false,
"dominant_fund_type": "Hedge Fund",
"shared_fund_types": [
"Hedge Fund"
],
"sim_size": 0.8616555678087207,
"sim_serves": 1,
"sim_fund": 1,
"sim_comp": 0.6666666666666666,
"same_state": 0,
"score": 0.8310335840590093
},
"… 1 more"
]
}
GET /v1/adv/rep/{indvlPk}/movements one rep's career history
One representative's firm-by-firm career history. indvlPk is the individual's IAPD id, as returned by rep-flows.
Example: GET /v1/adv/rep/4775272/movements (response trimmed):
{
"person": {
"indvl_pk": "4775272",
"first_nm": "Alexander",
"last_nm": "Triska",
"mid_nm": null,
"link": "https://adviserinfo.sec.gov/individual/summary/4775272"
},
"stints": [
{
"org_pk": "281958",
"org_nm": "FIRST COMMAND ADVISORY SERVICES",
"firm_legal_name": "FIRST COMMAND ADVISORY SERVICES",
"start_date": "2024-07-02T07:00:00.000Z",
"end_date": "2024-07-31T07:00:00.000Z",
"is_current": false
},
{
"org_pk": "282580",
"org_nm": "AE WEALTH MANAGEMENT, LLC",
"firm_legal_name": "AE WEALTH MANAGEMENT, LLC",
"start_date": "2024-08-09T07:00:00.000Z",
"end_date": "2025-05-01T07:00:00.000Z",
"is_current": false
},
"… 2 more"
]
}
Securities - holder rollups
One row per security, rolled up from three holder sources: 13F filings (institutional managers), N-PORT (registered fund portfolios - including private/pre-IPO issuers priced in fund marks), and N-MFP (money market funds). Public securities are keyed by CUSIP; private securities carry a name-keyed id (name~<base64url>) returned as sec_id in search rows.
GET /v1/adv/securities search bucket search the securities rollup
Search securities by issuer name or exact CUSIP.
| Param | Description |
|---|---|
q | Issuer name fragment, or an exact CUSIP |
type | public or private |
sort | value (default), f13_holders, fund_count, name |
dir | asc | desc (default) |
limit | Default 50, cap 100 |
offset | Page offset |
curl -s "https://api.stillhousedata.com/v1/adv/securities?q=openai&type=private" \
-H "X-Api-Key: cove_..."
Returns { "rows": [ { "cusip", "sec_id", "is_private", "issuer_name", "title_of_class", "asset_cat", "f13_holders", "f13_value", "fund_count", "nport_value", "combined_value", … } ] }.
GET /v1/adv/securities/{cusip} holder detail from all three sources
Holder lists for one security: 13F managers (15-month recency window), N-PORT funds, and N-MFP money market funds, each with totals. {cusip} is a CUSIP, or a private-security id from search rows' sec_id.
| Param | Description |
|---|---|
limit | Max holders per source, default 50, cap 200 |
Returns { "cusip", "is_private", "issuer_name", "f13": { "holder_count", "total_value", "holders": […] }, "nport": { … }, "nmfp": { … } }.
GET /v1/adv/securities/{cusip}/price-history N-PORT mark history
Per-period fund marks for a security - the closest thing to a price history for private companies held by registered funds.
| Param | Description |
|---|---|
scope | company (default; merges the issuer's name variants across wrapper vehicles and share classes) or exact |
GET /v1/adv/securities/{cusip}/financials issuer 10-K/10-Q key metrics
Financial statement history for the issuer behind a CUSIP (public issuers only - requires a CUSIP-to-CIK mapping): per-period revenue, net income, diluted EPS, operating cash flow, assets, liabilities, equity, and cash, with filing links.
Returns { "cusip", "cik", "ticker", "company_name", "latest": { … }, "history": [ … ] }.
Fundraising - Form D, Reg A, crowdfunding
The /feed rows carry source + accession; the per-source detail endpoints below turn those into full filings.
GET /v1/feed search bucket Form D / Reg A / crowdfunding fundraising feed
One feed across three private-fundraising sources, newest first.
| Param | Description |
|---|---|
type | Comma-separated: formd, rega, crowdfunding (default all) |
q | Company name filter |
state | Comma-separated two-letter state codes |
industry | Comma-separated industry values (any match qualifies) |
sort | date (default), amount, name, state |
dir | asc | desc (default) |
limit | Page size, cap 50 |
offset / cursor | Offset pagination, or the keyset next_cursor from the previous page (default date-desc ordering only) |
curl -s "https://api.stillhousedata.com/v1/feed?type=formd&state=CA&q=ai" \
-H "X-Api-Key: cove_..."
Rows carry source, accession, entity_name, cik, address, filing_date, submission_type, industry, amount, raised, website.
GET /v1/formd/filings/by-accession/{accession} Form D filing detail
One Form D: offering economics (total offered / sold / remaining, exemptions, minimum investment, investor count, security types), the issuer (name, address, entity type, jurisdiction, year incorporated), and the company's other Form D filings. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
Returns { "filing": { … }, "company": { … }, "other_filings": [ … ] }.
GET /v1/formd/companies/search search bucket Form D company typeahead
| Param | Description |
|---|---|
q | Name fragment, minimum 2 characters (required) |
limit | Default 10, cap 25 |
Returns [ { "id", "entity_name", "city", "state", "lat", "lng" } ].
GET /v1/rega/filings/by-accession/{accession} Reg A (Form 1-A) filing detail
One Reg A filing: submission header, issuer roll-up, and the 1-A offering core - offering terms plus a financial statement summary (balance sheet and income items, auditor). {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
Returns { "submission": { … }, "issuer": { … }, "offering": { … } }.
GET /v1/crowdfunding/filings/by-accession/{accession} Form C filing detail
One crowdfunding filing: submission header, issuer, and the Form C disclosure - offering terms, the intermediary (funding portal, commission file number, compensation), and a two-year financial comparison. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
Returns { "submission": { … }, "issuer": { … }, "offering": { … } }.
Fund launches, IPOs & proxies
GET /v1/fund-launches search bucket new ETF, mutual fund, and CEF launches
New fund launches from two signals: open-end/ETF series appearing under NEW-SERIES-AND-CLASSES in 485APOS/N-1A filings, and first-time N-2 closed-end funds.
| Param | Description |
|---|---|
q | Series or trust name filter |
bucket | etf (open-end/ETF series) or cef |
sort | date (default) or name |
dir | asc | desc (default) |
limit | Page size, cap 50 |
offset | Page offset |
Rows carry accession, cik, form, filing_date, trust_name, series_id, series_name, class_count, tickers, bucket.
GET /v1/fund-launches/by-accession/{accession} fund launch detail
One launch filing: header, series/classes, RR1 fee-table facts (management fee, 12b-1, net expenses), objective/strategy/risk narrative as markdown, advisers, authorized participants, directors, and N-CEN / N-PORT context. Sections degrade gracefully - a just-filed 485APOS has filing + series only. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
GET /v1/ipos search bucket IPO pipeline feed
S-1/F-1 registrations and pricings, newest first.
| Param | Description |
|---|---|
q | Company name filter |
stage | Pipeline stage filter |
spac | exclude or only |
sort / dir | date (default) | name; asc | desc |
limit / offset | Page size (cap 50) / offset |
Rows carry accession, cik, form_type, filed_date, company_name, sic, tickers, exchanges, is_spac.
GET /v1/ipos/by-accession/{accession} IPO filing detail
Filing header + issuer + offering details for one registration. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
GET /v1/proxies search bucket proxy statement feed
DEF 14A-family filings, newest first. Params: q (company name), category, sort=date|name, dir, limit (cap 50), offset.
GET /v1/proxies/by-accession/{accession} proxy filing detail
Filing header + issuer details for one proxy statement. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
8-K events
Current reports, both as full text and as a structured event layer carved per item code.
GET /v1/eightk/search search bucket full-text 8-K search
| Param | Description |
|---|---|
q | Query, minimum 2 characters (required) |
item | Item code filter, e.g. 5.02 |
from / to | Filed-date bounds, YYYY-MM-DD |
limit | Max results |
Returns { "query", "item", "results": [ … ] }.
GET /v1/eightk/events search bucket structured event feed
kind=officer (5.02 officer/director changes), earnings (2.02), delisting (3.01), or item with item= any code - a presence feed with excerpts (4.02 restatements, 1.03 bankruptcies, 1.01 agreements, …). Plus limit/offset.
Returns { "kind", "rows": [ … ] }.
GET /v1/eightk/by-accession/{accession} one 8-K, carved
Header, per-item sections with text and excerpts, and extracted events (officers, earnings, delistings). Dashed accession only (0001234567-26-000001).
Returns { "filing", "sections": [ … ], "officers", "earnings", "delisting" }.
Adviser pipeline, broker-dealers & funding portals
GET /v1/new-advisers search bucket newly registered advisers
Advisers by first filing date, newest first. Params: q, state (comma-separated), city, feed=IA_FIRM_SEC|IA_FIRM_STATE, type=IA|ERA, limit/offset/cursor.
Rows carry crd, firm_name, location, first_filing_date, adviser_type, latest_raum, has_disciplinary, primary_website.
GET /v1/brokers search bucket X-17A-5 broker-dealer reports
One row per broker-dealer (latest annual report), with auditor and opinion fields. Params: q, state, auditor, weakness=true (material-weakness disclosures only), sort=date|name, dir, limit (cap 100), offset.
Returns { "total", "brokers": [ … ] }.
GET /v1/brokers/{cik} one broker-dealer
Profile (name, file number, registrant type, address, contact) plus full annual-report history, newest first. {cik} is the broker's CIK (digits).
Returns { "broker": { … }, "filings": [ … ] }.
GET /v1/cfportal search bucket Reg CF funding portals
One row per portal: name, website, state, filing counts, latest filing. Params: q, state, status=active|withdrawn, sort=date|name|first|filings, dir, limit (cap 100), offset.
GET /v1/cfportal/filing/{accession} one CFPORTAL filing
Full content of one CFPORTAL registration or amendment. {accession} accepts dashed (0001234567-26-000001) or 18-digit form.
Form ADV Part 2 - brochures
Full-text ADV Part 2 firm brochures, converted to markdown.
GET /v1/brochures/search search bucket full-text brochure search
Full-text search across all brochures. Results are collapsed to one row per firm with a highlighted snippet.
| Param | Description |
|---|---|
q | Query, minimum 2 characters (required, max 100) |
page | Zero-based page, default 0 |
size | Page size, default 20, cap 50 |
curl -s "https://api.stillhousedata.com/v1/brochures/search?q=digital+assets" \
-H "X-Api-Key: cove_..."
Example - GET /v1/brochures/search?q=quantitative&size=2 (response trimmed):
{
"total": 2206,
"total_is_estimate": true,
"page": 0,
"size": 2,
"has_more": true,
"results": [
{
"id": "54468",
"crd": "135284",
"brochure_number": "1050802",
"filing_number": "0",
"filing_date": "2026-07-06T07:00:00.000Z",
"char_count": 469993,
"page_count": 122,
"image_count": 0,
"source_filename": "135284_1050802_0_20260706__Daily_Api.md",
"firm_name": "D. E. SHAW INVESTMENT MANAGEMENT, L.L.C.",
"city": "NEW YORK",
"state": "NY",
"version_count": 2,
"rank": 0.09940688,
"versions": [
{
"id": 54468,
"filing_date": "2026-07-06",
"brochure_number": "1050802",
"filing_number": "0",
"page_count": 122
},
"… 1 more"
],
"snippet": "<mark>Quantitative</mark> Strategies; <mark>Quantitative</mark> Tools**\n\nThe Adviser makes extensive use of co …"
},
"… 1 more"
]
}
GET /v1/brochures/firm/{crd} a firm's brochure versions
All brochure versions filed by a firm, newest first: { "versions": [ { "id", "brochure_number", "filing_date", "char_count", ... } ] }.
Example - GET /v1/brochures/firm/148826 (response trimmed):
{
"versions": [
{
"id": "5439",
"crd": "148826",
"brochure_number": "117200",
"filing_number": "19",
"filing_date": "2026-03-31T07:00:00.000Z",
"char_count": 198078,
"source_filename": "148826_117200_19_20260331__ADV_Brochures_2026_March_1_of_2.md",
"firm_name": "CITADEL ADVISORS LLC",
"city": "MIAMI",
"state": "FL"
},
"… 1 more"
]
}
GET /v1/brochures/{id} one brochure, full markdown
One brochure with its full markdown text. id comes from /brochures/firm/{crd} or search results.
Example - GET /v1/brochures/5439 (response trimmed):
{
"id": "5439",
"crd": "148826",
"firmName": "CITADEL ADVISORS LLC",
"city": "MIAMI",
"state": "FL",
"brochureNumber": "117200",
"filingNumber": "19",
"filingDate": "2026-03-31T07:00:00.000Z",
"charCount": 198078,
"pageCount": 62,
"imageCount": 0,
"archiveName": "ADV_Brochures_2026_March_1_of_2",
"convertedAt": "2026-04-22T23:35:14.271Z",
"sourceFilename": "148826_117200_19_20260331__ADV_Brochures_2026_March_1_of_2.md",
"markdown": "\n\n{0}------------------------------------------------\n\n# CITADEL ADVISORS LLC\n\n830 Brickell Plaza, Floor 15 Mi …"
}
Meta
GET /v1/me echo key context - auth probe
Echoes your key id, scopes, and limits - use it to verify auth. Counts against the general bucket.
Example - GET /v1/me (response trimmed):
{
"keyId": "ORnuFY1JRJHkKwDvdm4k",
"uid": "v1-local-test",
"scopes": [
"api",
"brochures"
],
"limits": {
"search": "10/min",
"general": "10/min"
}
}
A plain-text version of this page for agents and LLMs is at /llms.txt; a machine-readable spec is at /openapi.json.