API Console Documentation

The Kaleidoscope Console tool catalog as REST endpoints — 76 tools across 20 families, with the same numbers Console shows. Code samples in cURL, Python and JavaScript, and a live Try it on every tool.

Getting started

Base URL, authentication, responses, errors and conventions.

Requests

GET | POST https://ir.kscope.io/console/v1/{family}/{tool}

Arguments go in the query string or a JSON body. An argument a tool doesn't declare is a 400, so a typo never silently returns unfiltered data. Company tools take one of ticker, cik, cusip or q.

Authentication & access

Pass your API key as key. Each family needs its permission on your key — shown on every family below; ac_all grants them all. No family comes with another's permission. Some sections are add-ons sold on top of their family (shown on the family); without one, those sections are left out and warnings says so. Every call counts toward your monthly quota; /tools and /resolve are free.

Responses

{ "status": "success", "data": { … }, "meta": { "tool", "family", "as_of", "warnings": [ … ], "next", "pagination", "cursor", "request_id", "timestamp" } }

meta.warnings flags figures withheld or estimated. Paged tools add meta.pagination and meta.next — the next page's URL, without your key. Feeds add meta.cursor: keep meta.cursor.next after your last page and pass it as cursor next time to get only what changed.

Errors

{ "error": { "code": 400, "type": "INVALID_PARAMETER", "message": "…", "field": "…", "hint": "…" } }

400 bad argument · 401 missing or invalid key · 403 family (or the add-on for every section you asked for) not on your key ·404 unknown tool or company · 429 rate limit · 502 data source unavailable — retry.

Conventions

  • Dates are ISO 8601; amounts are USD unless a field says otherwise; fields ending _pct are percents (12.5 = 12.5%). Exception: the track-record tools (insider_track_record, insider_proven_buys, person_profile record) give hit rates and returns as fractions (0.62 = 62%), as Console does.
  • Filings are identified by accession number — open one with get_filing.
  • Estimates are labelled is_estimate: projected earnings dates, filing deadlines, expected proxies, estimated ex-dividend dates. Sectors are SIC-based.
  • Within v1, tools may add optional arguments and fields; nothing is removed or renamed.

What's new

New and changed endpoints, newest first. Changes within v1 only add arguments and fields.

2026-10-20

Families match the module list

The families are now the 13 modules of the price list, with the same names and keys everywhere. company_filings moved to Overviews & Filings (/console/v1/overview/company_filings), company_red_flags to the new Research & Provenance family (/console/v1/research/company_red_flags, permission ac_research) and company_people to People (/console/v1/people/company_people). company_filings now lists every filing (all forms, Forms 3 / 4 / 5 included, back to 1994) with its exhibits and agreements, filtered by the company only; the classifier tags moved to filing_signals in Research & Provenance. New: the rest of Research & Provenance and the three industry packs, each its own permission (ac_intelligence_bio, ac_intelligence_power, ac_intelligence_mining). The Research & Filings family (ac_filings) is retired, and no family comes with every grant any more: each needs its own permission (ac_all covers them all). The classifier signals feed is now called the Filing signals feed (same URL and permission).

35 new endpoints

Updated

  • company_filings — every filing with its exhibits and agreements, from the full filing index
2026-10-20

Capital Graph

The Capital Graph module: a company’s or a manager’s network from the filings, walkable node by node.

3 new endpoints

2026-10-18

Data feeds

Three bulk feeds, each its own permission, paged by cursor: one full load, then only what changed.

4 new endpoints

2026-10-14

In step with Console

Updated

  • company_snapshot — companies with several share classes (BRK, GOOGL): share_classes, shares_outstanding_class and market_cap_by_class
  • ownership_summary — multi-class companies get a share count and their % figures
  • short_interest — % of the traded class’s shares where a company has several classes
  • material_contracts — a stored $0 is now no amount; amount_note says Redacted or Undisclosed
  • company_deals — value_note (Redacted / Undisclosed) when a deal has no value
  • company_proxy_votes — golden parachutes split out of say-on-pay; director support is the lowest single-director vote
  • insider_liquidity — modified and reinstated 10b5-1 plans count as active
  • company_dilution — misread convertible rows and non-USD debt read as dollars are dropped
  • ecm_monitor — companies with no market cap on file count as small; ATM programs add $0 to the underwriter table
  • company_people — age taken from the newest proxy
  • person_profile — age taken from the newest proxy
2026-10-14

News is its own family

company_news moved to the new News family: /console/v1/news/company_news, permission ac_news (ac_all covers it). It no longer comes with every grant; Research & Filings still does.

2026-10-12

Console Wave 1 & 2

8 new endpoints

Updated

  • company_snapshot — flags add going-concern doubt and an open exchange-listing deficiency
  • person_profile — new record section: the Buy Track Record
  • company_deals — filing trail from MARS deal-to-filing links where they exist; trail_source says which
2026-10-08

Sections sold like Console

One permission per Console module; overviews and filings come with any API Console permission; add-on ac_people_personal for the personal sections of person_profile.

2026-10-06

Phase 1

26 tools across 12 families, each checked against Console.

Discovery

What your key can call, and what an identifier resolves to. Free — not counted toward your quota.

GET /console/v1/tools — the tools your key can call, with every parameter.

GET /console/v1/resolve?q= — the company a ticker / CIK / CUSIP / name resolves to, plus ranked candidates.

curl "https://ir.kscope.io/console/v1/resolve?q=hf%20sinclair&key=YOUR_API_KEY"

Overviews & Filings

The company snapshot, the event calendar, every filing with its exhibits and agreements, the filing itself, and the market-wide catalyst calendar. Permission: ac_overview

company_snapshot updated

GET · POST /console/v1/overview/company_snapshot

One-call company snapshot (Console DES): identity and SIC-based sector; last price, 52-week range and 1D/1M/3M/YTD/1Y total returns; guarded market cap, shares outstanding, P/E, EV and dividend yield; 13F holders and institutional % of shares outstanding; next report date (confirmed vs projected); TTM revenue, operating income, net income, EPS and free cash flow from de-cumulated quarters; and flags (activist 13D, 13F cluster entry/exit, accumulation streaks, credit stress, going-concern doubt, open exchange-listing deficiency, short squeeze/spike); FINRA short interest (% of shares out, days to cover). Percent fields are percents (12.5 = 12.5%).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_overview or ac_all · over the limit returns 429 with Retry-After

company_event_calendar

GET · POST /console/v1/overview/company_event_calendar

Event calendar (Console EVT). Upcoming: next earnings (vendor-confirmed or projected with window and confidence), 10-K/10-Q filing deadlines from fiscal year end + filer status (approximate, late flagged), expected proxy, declared dividends (amount, change, ex/record/pay dates) or else an estimated next ex-dividend, catalysts. Past: earnings with surprise and day-1 move, split-adjusted dividends and splits, filings with 8-K item labels, auditor changes, Item 1.03 8-Ks and credit-stress signals. Predecessor registrants are included (e.g. DINO's HollyFrontier history). Estimates carry is_estimate=true.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
window_back_days int Only past items (earnings, dividends, splits, filings, auditor changes, bankruptcy 8-Ks) dated within this many days; default: everything on file (about 3 years)
Range: 1–3650
window_fwd_days int Only upcoming items dated within this many days (default 365)
Range: 1–730
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_overview or ac_all · over the limit returns 429 with Retry-After

get_filing

GET · POST /console/v1/overview/get_filing

Open a filing from our store by accession number: form, company and CIK, filed / period dates, the list of documents in the submission (sequence, type, filename, description) and its item sections (10-K, 10-Q, 8-K, 20-F, 40-F). Returns the text (or HTML) of the main document, a chosen exhibit (seq) or one item (section), in chunks: content_length, offset and next_offset page through long documents. Never returns SEC.gov links.

Parameters

ParameterTypeDescription
accession str required Accession number, e.g. 0000320193-25-000079 (every API Console tool returns them)
seq int Document sequence within the filing (1 = the main document; exhibits follow — see 'documents')
Range: 1–10000
section str An item of a 10-K / 10-Q / 8-K / 20-F / 40-F, e.g. 1A, 7, 2.02 (see 'sections')
format enum 'text' (HTML converted to plain text) or 'html' (as filed)
One of: text, html
Default: text
offset int Character offset into the content (for long documents)
Default: 0
Range: ≥ 0
max_chars int Characters to return from offset (default 100,000; max 1,000,000)
Default: 100000
Range: 1000–1000000
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_overview or ac_all · over the limit returns 429 with Retry-After

catalyst_calendar new paged

GET · POST /console/v1/overview/catalyst_calendar

Catalyst Calendar (Console app): market-wide agenda of dated events that move stocks — FDA decisions (PDUFA) and advisory committees, clinical readouts, device approvals and panels, CMS coverage and rate notices, tariffs, foreign permits, IPO lock-ups, debt maturities (off by default), exchange-compliance deadlines still open, and expected earnings dates (projected; by default $10B+ only, since ~2,400 a month bury everything else).

Full description Less

Rows: date (and range end when only a window is known), type, label, group (Healthcare / Policy / Capital markets / Credit / Earnings), company (cik, ticker, name, market cap, SIC-based sector), title, confirmed, accession. Only verified / vouched rows with confidence ≥ 0.4. types lists every type in the window with its count and source freshness (stale, last extracted).

Parameters

ParameterTypeDescription
window enum Days ahead
One of: 7, 30, 90, 180
Default: 30
types list Only these event types: earnings, pdufa, adcom, clinical_readout, device_pma, device_panel, cms_coverage, cms_rate_notice, tariff, foreign_permit, ipo_lockup, listing_deadline, debt_maturity. Default: all but debt_maturity; earnings only for $10B+ companies unless asked for (or min_cap / q is given)
sector enum SIC-based sector
One of: Information Technology, Health Care, Financials, Consumer Discretionary, Communication Services, Industrials, Consumer Staples, Energy, Utilities, Real Estate, Materials, Unclassified
min_cap float Minimum market cap, USD
Range: ≥ 0
q str Company name or headline contains, or exact ticker
limit int Rows per page (max 3000)
Default: 200
Range: 1–3000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_overview or ac_all · over the limit returns 429 with Retry-After

company_filings updated paged

GET · POST /console/v1/overview/company_filings

Filings: every filing the company made, newest first — all forms, including Forms 3 / 4 / 5 filed about its insiders — each with its exhibits.

Full description Less

A filing is its accession number, form, filing date and filer; each exhibit is its type (EX-10.1, EX-99.1 …), title and file name, and, when it is a contract, the agreement's own title, type and execution date. Filter by the company only; page with limit and offset (up to 10,000 deep). Open a filing or exhibit with get_filing.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
limit int Rows per page (max 100)
Default: 50
Range: 1–100
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_overview or ac_all · over the limit returns 429 with Retry-After

Research & Provenance

Filing provenance: the classifier catalog and every flagged sentence with its accession, classifier-tagged filings, the filing-signal screen, semantic search over filing sections, new-risk-factor and IPO screens, IPO deal terms and prospectus risk factors, and red flags. Permission: ac_research

company_red_flags new

GET · POST /console/v1/research/company_red_flags

Red Flags (Console RF): accounting, listing, risk and related-party trouble for one company.

Full description Less

cards — going concern, material weakness, restatements (3 years), impairments (2 years), exchange listing, Item 1.03 8-K, new risk factors, related-party (3 years) — each with state clear / info / warn / hot, date, detail, accession and count. financial events (going concern, material weakness, restatement, impairment, write-down, discontinued operations, credit-loss provision); listing — exchange notices (deficiency, determination, hearing, regained compliance, delisting) with compliance deadline, and the current status; risks — risk-factor paragraphs new against the prior year's filing, ranked high → medium → low materiality, with history by filing; related — related-party transactions (party, relationship, type, amount, direction). A going-concern note counts as a flag only when the text says going concern / substantial doubt, isn't about a subsidiary, segment or country, and market cap is under $2B (else state info: check the filing). A listing notice is open until its deadline passes, the company regains compliance, or (late filing) a later 10-K / 10-Q is filed. coverage is the newest date per source, so a quiet company isn't mistaken for a clean one while a feed lags.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

search_classifiers new paged

GET · POST /console/v1/research/search_classifiers

The sentence classifiers that score every SEC filing sentence: name, readable label, what it detects, source (human-written or auto-discovered), direction (positive / negative where it has one), version and whether it is in the licensed signals feed; the curated ones carry their theme. Use a name with get_sentences or screen_companies. Without a keyword or source, lists them all.

Parameters

ParameterTypeDescription
keyword str Words to find in the classifier name or description
source enum human = written and validated by analysts; auto = discovered clusters
One of: human, auto
sellable_only bool Only the classifiers licensed in the filing signals feed
Default: False
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

get_sentences new paged

GET · POST /console/v1/research/get_sentences

The sentences that made a classifier fire, with the filing they came from: the sentence, its score (0–1), classifier, form, filing date and accession — for a company (with one or more classifiers) or for one filing. Best score first (ties by sentence), so quote these as the evidence for a signal. Scores rank over the whole history unless you set since.

Parameters

ParameterTypeDescription
ticker str Company ticker (optional)
cik int Company CIK (optional)
Range: ≥ 1
accession str One filing by accession number, instead of a company
classifier list Classifier name(s) (search_classifiers). Required with a company; optional with an accession (default: every classifier that fired in the filing)
since date Only sentences filed on or after this date
filed_before date Only sentences filed on or before this date
limit int Rows per page (max 50)
Default: 20
Range: 1–50
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

filing_signals new paged

GET · POST /console/v1/research/filing_signals

Filing signals: every filing the company made or was the subject of (13D/G about it) over 3 years, including predecessor registrants, newest first, each with the curated classifier tags found in it (theme, label, direction, score) and the best evidence sentence for each. Also returns theme totals (last 12 months vs the 12 before), counts per form group and the company's latest filing signal profile. Structured-note prospectuses (424B / FWP) are capped at 100.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
groups list Only these form groups: periodic, current, proxy, offering, ownership, other
tagged_only bool Only filings with at least one classifier tag
Default: False
direction enum Only filings with a positive / negative tag
One of: positive, negative
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

screen_companies new paged

GET · POST /console/v1/research/screen_companies

Screen every SEC filer on the signal profile of its latest filing: composite, distress and positive signal scores, how much the profile changed (mutation) and how unusual it is (entropy surprise), the top rising classifiers, insider buying, bond-spread widening and 8-K activity in the last 90 days (items, counts and the recent events with their accessions). One row per company with its CIK, ticker, SIC sector and the accession of the filing scored. Scores grow with company size and filing length; compare like with like.

Parameters

ParameterTypeDescription
sort_by enum Rank by this score (largest first)
One of: echo_composite, distress_echo, positive_echo, profile_mutation, entropy_surprise, n_classifiers_fired, turnaround_signal, crisis_intensity, eightk_density_90d
Default: echo_composite
echo_composite_min float Composite signal score at least
echo_composite_max float Composite signal score at most
distress_echo_min float Distress signal score at least
positive_echo_min float Positive signal score at least
profile_mutation_min float How much the filing profile changed vs the company's own history, at least
entropy_surprise_min float How unusual the set of classifiers that fired is, at least
classifier str Only companies where this classifier is among the top rising
form str Only companies whose latest filing is this form (e.g. 10-K, 10-Q, 8-K)
sic_min int SIC code at least
Range: 0–9999
sic_max int SIC code at most
Range: 0–9999
eightk_items list 8-K items filed in the last 90 days, any of (e.g. 4.02, 5.02, 1.03)
eightk_density_min int 8-Ks in the last 90 days, at least
Range: ≥ 0
insider_buying bool Only companies with insider buying in the last 30 days
credit_widening bool Only companies whose bond spreads are widening (z-score ≥ 1.5)
filer_status enum SEC filer status
One of: large_accelerated, accelerated, non_accelerated
smaller_reporting bool Smaller reporting company
emerging_growth bool Emerging growth company
wksi bool Well-known seasoned issuer
filed_since date Only companies whose latest filing is on or after this date
limit int Rows per page (max 100)
Default: 20
Range: 1–100
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

sections_filing_change_screen new paged

GET · POST /console/v1/research/sections_filing_change_screen

Which companies rewrote their risk factors (Item 1A) the most: for each company's latest annual or quarterly report in the year, the risk-factor paragraphs that are new against its prior year's filing — how many, how many rated high or medium materiality, and their risk categories — with the filing's accession and the prior filing's date. Covers risk factors only (Item 1A), not MD&A or legal proceedings. The per-company paragraphs are in company_red_flags.

Parameters

ParameterTypeDescription
year int Filings made in this year (default: this year)
Range: 2016–2100
min_new int At least this many new risk-factor paragraphs
Default: 1
Range: ≥ 1
min_high int At least this many of them rated high materiality
Default: 0
Range: ≥ 0
sector enum SIC-based sector
One of: Information Technology, Health Care, Financials, Consumer Discretionary, Communication Services, Industrials, Consumer Staples, Energy, Utilities, Real Estate, Materials, Unclassified
sort enum Rank by new paragraphs (n_new) or by high-materiality ones (n_high)
One of: n_new, n_high
Default: n_new
limit int Rows per page (max 100)
Default: 25
Range: 1–100
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

sections_ipo_screen new paged

GET · POST /console/v1/research/sections_ipo_screen

IPOs priced in a window, newest first, from the final prospectus (424B4): company, ticker, exchange, offer price and the filed range, gross proceeds, implied market cap, shares offered, dual-class flag, lead underwriters, SIC sector and the prospectus's accession. SPACs are left out unless you ask for them; de-SPAC listings are flagged. Coverage starts in 2020. Deal detail: sections_ipo_offering.

Parameters

ParameterTypeDescription
since date Priced on or after (default: 90 days ago)
until date Priced on or before (default: today)
sector enum SIC-based sector
One of: Information Technology, Health Care, Financials, Consumer Discretionary, Communication Services, Industrials, Consumer Staples, Energy, Utilities, Real Estate, Materials, Unclassified
include_spacs bool Include blank-check companies (SPACs, SIC 6770)
Default: False
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

sections_ipo_offering new

GET · POST /console/v1/research/sections_ipo_offering

One company's IPO deal card from its final prospectus: offer price and filed range, shares offered (primary, secondary, over-allotment), gross and net proceeds, implied market cap, exchange and ticker, share classes and voting ratio, every underwriter with its role, use of proceeds, and the lock-up — days, expiry, share of float locked and each lock-up tier (who is covered, early-release terms). Coverage: IPOs from 2020.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

sections_ipo_risk_factors new paged

GET · POST /console/v1/research/sections_ipo_risk_factors

The risk factors of a company's IPO prospectus (the final 424B4, else its first S-1 / F-1), in the order the prospectus lists them: each risk factor's heading, the group it sits under (e.g. 'Risks related to our business'), and the opening of its text where the heading is found in the section.

Full description Less

Also returns the count per group and the prospectus's accession, form and date. These are the headings marked as headings in the filing's layout; some prospectuses set many of theirs in running text, and then the list is partial (warning headings_partial). Open the full section with get_filing (section RISK FACTORS).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
accession str A specific prospectus (default: the IPO prospectus, else the first S-1 / F-1)
max_chars int Snippet length per risk factor
Default: 400
Range: 0–2000
limit int Rows per page (max 300)
Default: 150
Range: 1–300
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_research or ac_all · over the limit returns 429 with Retry-After

Ownership

Who holds the stock and how that is changing: 13F, 13D/G, Form 4 insiders, short interest, insider liquidity (Form 144, vesting, 10b5-1 plans) and insiders' buy track records. Permission: ac_ownership

ownership_summary updated

GET · POST /console/v1/ownership/ownership_summary

Ownership Summary (Console OWN) for one 13F quarter: institutional % of shares outstanding and of float, insider % (Form 4), float, top-10 concentration, holder count and quarter-over-quarter change (new / exited / increased / decreased, computed from our own prior-quarter comparison), active vs passive %, investor-type mix, holder quality (shares held by managers beating vs lagging the S&P 500 over 2 years), a 9-quarter history and the top 20 holders. Percent fields are percents. Insider data is current-state, so historical quarters are 13F-only.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
quarter date 13F report date (quarter-end, YYYY-MM-DD); default: the latest complete quarter
share_classes enum 'primary' = the main listed class; 'all' = every common class merged into primary-class equivalents (e.g. GOOGL + GOOG)
One of: primary, all
Default: primary
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

holders_combined

GET · POST /console/v1/ownership/holders_combined

Combined holder register (Console HDS): 13F institutions (canonical manager, share classes merged when share_classes=all) plus Schedule 13D/G beneficial owners and Form 4 insiders, one row per owner, largest first, with % of shares outstanding, market value, quarter-over-quarter change, investor type, passive flag and the filings behind each row. Historical quarters are 13F-only. Returns up to limit rows; n_13f_holders is the full 13F holder count.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
quarter date 13F report date (quarter-end, YYYY-MM-DD); default: the latest complete quarter
share_classes enum 'primary' = the main listed class; 'all' = every common class merged into primary-class equivalents (e.g. GOOGL + GOOG)
One of: primary, all
Default: primary
limit int Holders to return, largest first (max 1000)
Default: 200
Range: 1–1000
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

ownership_activity

GET · POST /console/v1/ownership/ownership_activity

Ownership Activity (Console OA): 13F buyers, sellers, new positions and exits in one quarter (top 25 each), computed from our own prior-quarter comparison (never the upstream 'new' flag), with net shares, passive vs active net, holder-quality net flow, and the notable-manager flow trend over 8 quarters.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
quarter date 13F report date (quarter-end, YYYY-MM-DD); default: the latest complete quarter
outperformers_only bool Narrow the buyer/seller/new/exit lists to managers beating the S&P 500 over 2 years (the summary always covers everyone)
Default: False
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

short_interest updated

GET · POST /console/v1/ownership/short_interest

FINRA short interest (Console SI): latest biweekly settlement with short shares, % of shares outstanding and of float, days to cover, change vs prior settlement and year ago, 1-year high/low, squeeze / spike / covering flags, and the settlement history restated for stock splits. Ticker reuse (a symbol that belonged to another issuer) is cut out of the history.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
include_series bool Include the full biweekly settlement history
Default: True
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

insider_liquidity updated

GET · POST /console/v1/ownership/insider_liquidity

Insider Liquidity (Console LIQ): when insiders can sell and have said they will.

Full description Less

form144 — Form 144 notices of proposed sales, 12 months: seller (+ person_id), relationship, shares, stated value, at_close (shares × last close), estimated (MARS flagged the stated value implausible, so only the at-close estimate is given), mismatch (stated value more than 3× off the at-close value), earliest sale date, exchange, broker, accession. calendar — vesting and option-expiry events in the next 365 days from Form 4 footnotes (insider, title, C-suite, shares, vesting value at the last close, security, accession) with a months rollup. plans — Rule 10b5-1 adoptions and terminations since 2023 (name, title, action, type, adopted, end, shares, options, accession); active allows one plan per person at a time — a newer adoption or later termination closes the earlier one, and a plan with no end date is taken as over 15 months after adoption. cards — Form 144 $ (90 days; totals use the smaller value on a mismatch), vesting (next 90 days), options expiring (12 months), active plans.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

insider_track_record new paged

GET · POST /console/v1/ownership/insider_track_record

Insider buy track record (Console INS buyers' records · person Buy Track Record): how open-market buys did afterwards against the S&P 500.

Full description Less

Person mode (insider_cik or person_id): summary (grade, scored buys n90, hit rate vs SPY hit30/90/180, median excess med30/90/180, median raw return ret30/90/180, total bought, n stocks, first / last buy, dropped) and episodes (date, company, role, value, price, raw r30/90/180 and excess x30/90/180, implausible) — paged, newest first, up to 300 on file. Company mode (ticker / cik / cusip / q): every insider with an open-market buy there in days, with their whole record (all companies) and their buys here, best record first — paged. Scoring (Console's own, not MARS's roll-up): buys by one person in one stock within 30 days of the first count once (an episode, priced at the first buy); excess return = the stock's return − SPY's over the same 30 / 90 / 180 calendar days (unadjusted closes; price only, dividends excluded); returns above +200 / 300 / 400% are left out (dropped: a reused ticker scored the wrong company); plan buying is left out (days with 8+ insiders buying the same stock at a company with 3+ such days). Grade from 90-day excess returns, 3+ scored episodes: strong = 4+, ≥ 65% beat SPY, median ≥ +5 pts; good = ≥ 55%, median > 0; weak = median ≤ −5 pts and < 45%; else mixed; few under 3. Ratios are fractions (0.62 = 62%).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
insider_cik int The insider's SEC CIK (Form 4 reporting owner) — one person's record
Range: ≥ 1
person_id str MARS person UUID (company_people / person_profile return it) — one person's record
days int Company mode: buyers with an open-market buy in this many days (Console INS: 730)
Default: 730
Range: 1–3650
limit int Rows per page (max 300)
Default: 100
Range: 1–300
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

insider_proven_buys new paged

GET · POST /console/v1/ownership/insider_proven_buys

Insider Track Record app (Console 'Buyers'): market-wide, recent open-market buys by insiders whose past buys beat the S&P 500.

Full description Less

rows — one per insider × company: first / last buy in the window, days bought, $ value, role, C-suite, the company (cik, ticker, name, market cap, SIC-based sector) and the buyer's record (grade, n90, hit90, med30/90/180, ret90, episodes, n stocks, total bought, first / last, dropped) — newest first, paged. companies — companies with 2+ such buyers. kpis over every buy in the window (buys, buyers, graded, proven, $). leaders — the best records among active buyers (5+ scored buys, a buy in the last 2 years). Plan-buying days are left out of the buy list too. Scoring (Console's own, not MARS's roll-up): buys by one person in one stock within 30 days of the first count once (an episode, priced at the first buy); excess return = the stock's return − SPY's over the same 30 / 90 / 180 calendar days (unadjusted closes; price only, dividends excluded); returns above +200 / 300 / 400% are left out (dropped: a reused ticker scored the wrong company); plan buying is left out (days with 8+ insiders buying the same stock at a company with 3+ such days). Grade from 90-day excess returns, 3+ scored episodes: strong = 4+, ≥ 65% beat SPY, median ≥ +5 pts; good = ≥ 55%, median > 0; weak = median ≤ −5 pts and < 45%; else mixed; few under 3. Ratios are fractions (0.62 = 62%).

Parameters

ParameterTypeDescription
window enum Buys in the last N days
One of: 30, 90, 180
Default: 30
grade enum Buyer's record: proven = strong + good
One of: proven, strong, all, weak
Default: proven
role enum Officers or directors only
One of: officer, director
min_value float Minimum $ bought at the company in the window
Range: ≥ 0
min_cap float Minimum market cap, USD
Range: ≥ 0
sector enum SIC-based sector
One of: Information Technology, Health Care, Financials, Consumer Discretionary, Communication Services, Industrials, Consumer Staples, Energy, Utilities, Real Estate, Materials, Unclassified
limit int Rows per page (max 1500)
Default: 100
Range: 1–1500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_ownership or ac_all · over the limit returns 429 with Retry-After

Activism

Activist campaigns, 13D filers and shareholder-meeting vote results. Permission: ac_activism

activism_campaigns

GET · POST /console/v1/activism/activism_campaigns

Corporate Activism (Console ACTV): every 13D/13G holder's latest position (form, % of class, shares, activist flag, campaign status, extracted intent and tone), the full 13D/G filing trail with intent, and campaign events from 8-K / proxy filings (proxy solicitations, board demands, cooperation agreements, contested elections, poison pills, withdrawals) with outcome and accession.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
since date Only filings and campaign events on or after this date (positions are current-state)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_activism or ac_all · over the limit returns 429 with Retry-After

company_proxy_votes updated

GET · POST /console/v1/activism/company_proxy_votes

Proxy Votes (Console PV): shareholder-meeting results for 10 years and what's on the next ballot.

Full description Less

meetings — date, annual / special, accession, and each proposal with for / against / abstain / broker non-votes, support % (for ÷ (for + against + abstain), broker non-votes excluded: the ISS / Glass Lewis convention), outcome, outcome_note when the vote count overrides a contradictory recorded outcome (say on pay, auditor, directors — directors are never failed by the count: plurality-elected directors stand below 50%), and against_mgmt (a management proposal failed or a shareholder proposal passed). ballot — the newest proxy filed after the latest result (null when no meeting is pending). cards — last meeting, say on pay (warn under 70%), director support (warn under 80%; slate total), auditor ratification, shareholder proposals (5 years), next ballot. sop_history (oldest first) and shareholder proposals. latest_data is the newest vote result on file.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_activism or ac_all · over the limit returns 429 with Retry-After

Credit & Debt

Bonds, yields, maturities and credit stress. Permission: ac_credit

bond_yields

GET · POST /console/v1/credit/bond_yields

Bond yields (Console CAPS / DEBT): each fund-held bond of the issuer (and its predecessors) — CUSIP, coupon, maturity, fund-held par and value, number of funds, the month-end CONSENSUS price across funds' N-PORT marks (not a trade or dealer quote), its dispersion, yield to maturity (semi-annual, fractional periods), 1-month and 3-month price change and a distressed flag (YTM >= 12% or price < 50) — plus par-weighted coupon / yield / price and the next maturity. Uses the newest settled month; report_date says which. Matured bonds are dropped.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_credit or ac_all · over the limit returns 429 with Retry-After

Private Capital

Private capital: Form D raises, funding rounds and BDC lending. Permission: ac_private

company_private_capital

GET · POST /console/v1/private/company_private_capital

Private Capital (Console PVT): one company's private financing — Form D offerings with amendments grouped (offered, sold, investors, exemptions, filings by accession), funding rounds deduplicated across outlets ('duplicates' lists merged copies) with investors and leads, valuations only when not flagged aspirational or outlier, Reg CF offerings, related persons, placement agents (CRD), totals that never blend equity with debt, and the days a Form D preceded the news. Pass ticker / cik / cusip / q, or company_id for a private company.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
company_id str MARS company id (UUID) — for private companies with no SEC CIK
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_private or ac_all · over the limit returns 429 with Retry-After

Advisers (ADV)

Investment advisers from Form ADV: private funds, fees and people. Permission: ac_advisers

adv_private_funds

GET · POST /console/v1/advisers/adv_private_funds

Private funds (Console ADV, Form ADV Schedule D 7.B(1)) of a registered investment adviser: each fund's type, gross asset value, minimum investment, beneficial owners, % non-US, 3(c)(1)/3(c)(7) exclusion, master/feeder structure, audit, domicile and its auditors / prime brokers / custodians / administrators / marketers; fund counts and GAV by type; and a provider league table across the adviser's current funds. Pass crd, or a 13F manager cik / name — a firm with several advisers (BlackRock, Goldman) lists them in advisers and opens on the one with the most private funds; pick another with crd.

Parameters

ParameterTypeDescription
crd int The adviser's CRD number
Range: 1–999999999
cik int A 13F manager CIK — resolved to its registered advisers (largest first)
Range: ≥ 1
q str An adviser or manager name (e.g. "Politan Capital")
current_only bool Only funds on the adviser's latest Schedule D (others are flagged current=false)
Default: False
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_advisers or ac_all · over the limit returns 429 with Retry-After

Capital Graph

The Capital Graph: holders, people, deals, investors and counterparties as one network, every link from a filing. Permission: ac_graph

company_graph new

GET · POST /console/v1/graph/company_graph

Capital Graph of a company (Console Capital Graph): who is linked to it, from the filings, as one network — Owners (13F holders at the latest quarter, 13D and 13G filers, N-PORT fund holders over the last ~4 months), People (board members, officers, Form 4 insiders over 3 years, founders), Corporate (acquisitions both ways, subsidiaries, parent), Capital (private-round investors, Form D placement agents) and Commercial (counterparties to filed material contracts, both ways).

Full description Less

Each section is one kind of link (edge, direction in = they point at this node, out = it points at them) with its total and up to 25 items: the other node's id and type (pass both to graph_node to walk on), name, CIK and ticker where it has them, records (how many filings / positions / transactions make the link), last_date (the newest of them, YYYY-MM-DD), weight in the section's weight_unit (usd: dollar value, sorted largest first; pct: % of class; num: tie strength) and text (a person's role or a contract's type). A section whose query timed out is listed in failed instead (retry later); empty sections are left out.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
groups list Only these groups: Owners, People, Corporate, Capital, Commercial (default all)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_graph or ac_all · over the limit returns 429 with Retry-After

holder_graph new

GET · POST /console/v1/graph/holder_graph

Capital Graph of a 13F manager (Console holder Capital Graph): Public equity (13F positions at the latest quarter, 13D and 13G stakes), Private capital (private-round investments, Form D placements) and Funds (the N-PORT funds it manages, by net assets).

Full description Less

A manager split across several investor records (BlackRock, Vanguard) is merged into one view; merged_records says how many. Each section is one kind of link (edge, direction in = they point at this node, out = it points at them) with its total and up to 25 items: the other node's id and type (pass both to graph_node to walk on), name, CIK and ticker where it has them, records (how many filings / positions / transactions make the link), last_date (the newest of them, YYYY-MM-DD), weight in the section's weight_unit (usd: dollar value, sorted largest first; pct: % of class; num: tie strength) and text (a person's role or a contract's type). A section whose query timed out is listed in failed instead (retry later); empty sections are left out.

Parameters

ParameterTypeDescription
cik int required The 13F manager's CIK
Range: ≥ 1
groups list Only these groups: Public equity, Private capital, Funds (default all)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_graph or ac_all · over the limit returns 429 with Retry-After

graph_node new

GET · POST /console/v1/graph/graph_node

One node of the Capital Graph by id — the next hop from an item of company_graph, holder_graph or another graph_node: a person (board seats, officer roles, Form 4 insider roles, companies founded, career, education, connections), an investor (as holder_graph), a fund (holdings at the latest N-PORT month, adviser), an institution (alumni) or a company (as company_graph).

Full description Less

Each section is one kind of link (edge, direction in = they point at this node, out = it points at them) with its total and up to 25 items: the other node's id and type (pass both to graph_node to walk on), name, CIK and ticker where it has them, records (how many filings / positions / transactions make the link), last_date (the newest of them, YYYY-MM-DD), weight in the section's weight_unit (usd: dollar value, sorted largest first; pct: % of class; num: tie strength) and text (a person's role or a contract's type). A section whose query timed out is listed in failed instead (retry later); empty sections are left out.

Parameters

ParameterTypeDescription
type enum required The node type, as an item's type
One of: company, person, investor, fund, institution
id str required The node id, as an item's id
groups list Only these groups (a node's groups are listed in the answer's groups)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_graph or ac_all · over the limit returns 429 with Retry-After

Fundamentals

De-cumulated financials, geographic revenue, supply chain, contracts, comps, dilution and equity capital markets. Permission: ac_fundamentals

geographic_revenue

GET · POST /console/v1/fundamentals/geographic_revenue

Geographic revenue (Console GEO): revenue by country and region exactly as the company tagged it in XBRL — never estimated; a filer's 'rest of world' stays 'rest of world (as reported)' — turned into non-overlapping slices (value, % of revenue, year-over-year change, multi-year trend), with super-region (Americas / Europe / Asia-Pacific / Africa-Middle East) and developed / emerging / frontier roll-ups, the tag and accession used, and coverage: the share of revenue the disclosure explains plus xbrl's own coverage check (coverage_pct, is_anomalous). Fiscal-year revenue comes from de-cumulated quarters. History starts ~2020 (inline XBRL).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
years int Fiscal years to return, newest first
Default: 4
Range: 1–6
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

supply_chain

GET · POST /console/v1/fundamentals/supply_chain

Supply chain (Console SPLC): the company's own 10-K / 10-Q concentration disclosures (named and unnamed customers and suppliers with % of revenue / purchases / receivables, each tied to its filing), the companies that name this one as a customer or supplier in their filings (e.g. Cirrus Logic: Apple = 90% of net sales), and news-sourced relationships (customers, suppliers, partners, distributors, licensors, JVs, competitors) with mention counts. Filing data leads; news relationships are noisier (direction errors exist upstream).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

material_contracts updated paged

GET · POST /console/v1/fundamentals/material_contracts

Material contracts (Console MC): every agreement the company (and its predecessors) filed as an exhibit since 2016 — title, type and family, execution / filing date, counterparties (companies and people, with roles), amount, term, amendment flag, a key quote, and the clause types it contains (change of control, non-compete, indemnification…) — plus facets: agreements per family and year, clause types with counts, and named people (employment / severance terms). Each agreement opens with get_filing(accession, seq). Clause passages are located only for merger agreements so far; other types list the clause type.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
since date Only agreements executed (or filed) on or after this date
types list Only these agreement types or families (e.g. credit, employment, ma, merger_agreement)
has_clause list Only agreements containing any of these clause types (keys from clause_types)
limit int Rows per page (max 500)
Default: 50
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

capital_structure

GET · POST /console/v1/fundamentals/capital_structure

Capital structure (Console CAPS): price, cover-page shares (with accession) and the guarded market cap; debt (short / long term), cash, leases, equity and EV; TTM revenue, EBIT, EBITDA (only where D&A is tagged), net income and interest; leverage and coverage ratios; 8 quarters of history; the filer's own debt schedule from its latest 10-K / 10-Q; debt issued per 8-K Item 2.03 (issuances, not balances); fund-held bonds and the maturity ladder (N-PORT, fund-held par only); credit-stress signals. Banks and insurers (SIC 60-64) are flagged financial: EV and debt-based ratios don't apply.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

comps

GET · POST /console/v1/fundamentals/comps

Comps (Console COMP): trailing valuation and operating metrics for the company and its peers — market cap (guarded), EV, P/E, EV/Sales, EV/EBIT, EV/EBITDA, P/B, revenue growth, gross / operating / net margin, ROE, dividend yield, 1-year total return, net debt / EBIT — with peer medians that exclude the company. Default peers: up to 12 same-industry (SIC) majors by market cap; or pass your own. Trailing only (no estimates); EV multiples hidden for banks and insurers.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
peers list Custom peer set: tickers or CIKs (max 20); default = same 4-digit SIC, widening to 3 / 2 digits, ranked by market cap
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

company_dilution updated

GET · POST /console/v1/fundamentals/company_dilution

Dilution & Capital Markets (Console ECM): how a company raises money and what it does to the share count, 5 years.

Full description Less

offerings — registered offerings (shelf takedowns, ATMs, registered directs, resales, rights offerings, shelf registrations; equity and debt flagged apart): amount, shares, price, secondary, ATM, warrants, underwriters, accession; a preliminary and final prospectus for one deal are folded into one row. private — unregistered issuance (8-K 3.02 / 1.01): instrument, amount, conversion price, discount, variable (variable-price / reset converts), investors, maturity. A conversion price under $0.10 and under 2% of the last price is a conversion rate or par value read as a price: it is dropped and its variable flag not trusted. charter — reverse / forward splits, authorized-share changes, preferred designations. pipes — Form D placements by the public company. ipo — the IPO (price, range, proceeds, underwriters, lock-up tiers). cards — equity raised (12 months, ATM capacity not counted), ATM program, shelf, variable converts (2 years), reverse splits, authorized shares, PIPEs, IPO. Coverage: registered offerings cover ~900 filers a year, mostly small caps — 'none on record' is not 'none filed' (coverage gives each source's newest date).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

ecm_monitor updated

GET · POST /console/v1/fundamentals/ecm_monitor

ECM Monitor (Console app): market-wide equity capital markets and dilution, listed companies only.

Full description Less

kpis — primary offerings, $ raised (ex-ATM), ATMs, resales, reverse splits, authorized-share increases, variable-price converts, lock-ups ahead. Lists (newest first, up to 400 each): offerings (equity only; amended prospectuses folded), reverse_splits, authorized (share increases), private (placements and converts with the conversion-rate-misread rule of company_dilution), lockups (IPO lock-ups ending from 30 days ago to 120 days ahead; blank-check IPOs at $10 and warrant / unit lines skipped). league — underwriters on primary offerings (deals, lead, $ credited split evenly), by_sector. Each row carries the company (cik, ticker, name, market cap, SIC-based sector) and the accession. coverage gives each source's newest date.

Parameters

ParameterTypeDescription
window enum Filed in the last N days (lock-ups: the next 120 days, regardless)
One of: 30, 90, 180, 365
Default: 90
sector enum SIC-based sector
One of: Information Technology, Health Care, Financials, Consumer Discretionary, Communication Services, Industrials, Consumer Staples, Energy, Utilities, Real Estate, Materials, Unclassified
under_2b bool Companies under $2B market cap only
Default: False
q str Company name contains, or exact ticker
lists list Only these lists: offerings, reverse_splits, authorized, private, lockups (default all)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_fundamentals or ac_all · over the limit returns 429 with Retry-After

Sector Intelligence

The 11 SIC-based sectors and their industries: returns, 13F, insider, short and activism signals, valuation, Form D raises and catalysts. Permission: ac_intelligence

sector_monitor

GET · POST /console/v1/intelligence/sector_monitor

Sector monitor (Console Sector Intelligence): the 11 SIC-based sectors side by side over the screening universe (listed issuers with 10+ 13F holders, funds excluded): companies and total market cap, 1-day / 1-month / 3-month / YTD / 1-year returns, 1-month breadth (% of companies up), notable-manager 13F net flow, cluster entries / exits, median change in institutional % held and % of companies gaining holders, insider buying and selling (90 days), median short interest and squeeze setups, 13D filers and activism campaign events, companies reporting in the next 14 days, and median valuation — plus, for the window, the insider sector pulse (discretionary open-market trades by SIC) and new Form D raises mapped to sectors.

Full description Less

Aggregates: returns (chg_1d, r1m, r3m, ytd, r1y, in %) are market-cap weighted; valuation figures (*_med: pe, ev_sales, ev_ebit, ev_ebitda, pb, rev_growth, gross / op / net margin, roe, div_yield) are medians of trailing-twelve-month values; flows are sums. total is the whole universe; formd_unmapped is Form D raised by issuers outside the 11 sectors (other / unclassified industries). Sector slugs feed sector_detail.

Parameters

ParameterTypeDescription
window enum Days covered by the insider pulse and Form D figures (returns, 13F and the 90-day insider columns have fixed horizons)
One of: 30, 90, 180, 365
Default: 90
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence or ac_all · over the limit returns 429 with Retry-After

sector_detail paged

GET · POST /console/v1/intelligence/sector_detail

Sector detail (Console Sector Intelligence): one sector — its 4-digit SIC industries with the same aggregates as sector_monitor (biggest first), Form D raises (window total, by Form D industry, the 15 largest offerings and 12 months of monthly totals), the insider pulse (window total and the 12 industries with the largest net flow), 1-month movers up and down ($1B+), notable-manager 13F buys and sells, cluster entries / exits, the largest insider buying (90 days), the most-shorted names ($300M+), recent 13D / activism, earnings in the next 30 days, catalysts in the next 90 days (FDA dates, lock-ups, …; by accession), the cheapest and richest trailing P/E ($1B+), and the constituents by market cap — paged with limit / offset (total counts them). Aggregates: returns (chg_1d, r1m, r3m, ytd, r1y, in %) are market-cap weighted; valuation figures (*_med: pe, ev_sales, ev_ebit, ev_ebitda, pb, rev_growth, gross / op / net margin, roe, div_yield) are medians of trailing-twelve-month values; flows are sums.

Parameters

ParameterTypeDescription
sector enum required Sector slug (from sector_monitor)
One of: information-technology, health-care, financials, consumer-discretionary, communication-services, industrials, consumer-staples, energy, utilities, real-estate, materials
window enum Days covered by the insider pulse and Form D figures (returns, 13F and the 90-day insider columns have fixed horizons)
One of: 30, 90, 180, 365
Default: 90
limit int Rows per page (max 2000)
Default: 100
Range: 1–2000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence or ac_all · over the limit returns 429 with Retry-After

industry_detail paged

GET · POST /console/v1/intelligence/industry_detail

Industry detail (Console Sector Intelligence): one 4-digit SIC industry — its aggregates, the insider pulse for that SIC, movers, 13F flows, insider buying, shorts, activism, upcoming earnings and catalysts, cheap / rich trailing P/E, constituents (paged with limit / offset), plus its sibling industries in the same sector (companies and market cap) and the sector-wide aggregate for comparison. Aggregates: returns (chg_1d, r1m, r3m, ytd, r1y, in %) are market-cap weighted; valuation figures (*_med: pe, ev_sales, ev_ebit, ev_ebitda, pb, rev_growth, gross / op / net margin, roe, div_yield) are medians of trailing-twelve-month values; flows are sums.

Parameters

ParameterTypeDescription
sic str required 4-digit SIC industry code (from sector_detail industries)
window enum Days covered by the insider pulse and Form D figures (returns, 13F and the 90-day insider columns have fixed horizons)
One of: 30, 90, 180, 365
Default: 90
limit int Rows per page (max 2000)
Default: 100
Range: 1–2000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence or ac_all · over the limit returns 429 with Retry-After

Charts

Price history and the events that move it. Permission: ac_charts

price_history

GET · POST /console/v1/charts/price_history

Price history (Console Charts): daily bars from atlas market.prices_v — o / h / l / c split-adjusted to today's shares, a total return (adj_close: splits + dividends reinvested), raw as traded that day, v volume.

Full description Less

Ranges longer than 3 years come as weekly bars (open of the week's first day, high / low of the week, last close, summed volume; weekly says so). Also the splits in range, the first bar on file, and suggested benchmarks (SPY, the SIC sector's SPDR ETF, five largest SIC peers). Studies are computed on split-adjusted daily closes with ~400 days of warm-up, so MA 200 / MACD are defined from the first bar. US-listed shares only.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
range enum Chart range
One of: 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y, 10Y, MAX
Default: 1Y
indicators bool Add technical studies per bar: ma20 / ma50 / ma200, Bollinger bands (bbu / bbl), RSI-14, MACD (macd / macds / macdh)
Default: False
compare list Up to 6 tickers to return total-return series for (e.g. SPY, the sector ETF, peers — see benchmarks)
studies bool Add the lower-pane studies: institutional % held and 13F holders per quarter, FINRA short interest per settlement, net insider $ per month, quarterly revenue / EPS / free cash flow
Default: False
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_charts or ac_all · over the limit returns 429 with Retry-After

chart_events paged

GET · POST /console/v1/charts/chart_events

Chart events (Console Charts): the filing-native markers Console draws on a company's price chart, each with the accession it came from — earnings (beat / miss vs the company's own trend, day-1 move), cash dividends (split-adjusted to today's shares) and splits, insider open-market buys / discretionary sells / 10b5-1 plan sales (one marker per day and kind), initial 13D / 13G and activists' 13D amendments, activism campaign events, new Form D offerings, debt issued (8-K Item 2.03), material commercial / M&A / capital-markets / real-estate / credit agreements, auditor changes, 8-K Item 1.03 bankruptcy, and US macro release days (CPI, jobs, GDP, PCE, FOMC). Each marker: d (date), t (type), label, detail, acc, value, tone (+1 good / -1 bad). Predecessor registrants are included (e.g. HollyFrontier for DINO). counts is per type over the whole range.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
range enum Chart range
One of: 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y, 10Y, MAX
Default: 1Y
types list Only these marker types: earnings, dividend, split, insider, stake, campaign, formd, debt, contract, auditor, bankruptcy, macro
order enum Date order
One of: desc, asc
Default: desc
limit int Rows per page (max 2000)
Default: 500
Range: 1–2000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_charts or ac_all · over the limit returns 429 with Retry-After

People

People: a company's officers and board, and person profiles: roles, holdings and track records. Permission: ac_people · Add-on ac_people_personal (People — personal records): person_profile sections property (county assessor records), locations (city / state), windfalls (liquidity events in the news) and connections.relationships (family and other personal ties)

company_people updated

GET · POST /console/v1/people/company_people

People & Board (Console MGMT): current executives (ranked by title) and directors, rebuilt from Form 4 filings, the latest proxy and 8-K 5.02 appointments/departures — with title, age, latest-year pay (proxy), Form 4 holdings (direct / indirect / derivative), other board seats and the source filings; plus recent appointment / departure events and, optionally, former officers.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
include_former bool Include people who left (with the 8-K that says so)
Default: True
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_people or ac_all · over the limit returns 429 with Retry-After

person_profile updated

GET · POST /console/v1/people/person_profile

Person profile (Console People): one person, every section always present (empty when MARS has nothing yet).

Full description Less

header (name, variants, CIK / CRD, LinkedIn, photo, age from the latest proxy); current — roles current by evidence (Form 4 filer in the last ~13 months, latest-year proxy pay, 8-K appointments with no later departure); boards (public, nonprofit from IRS 990s, other from bios); career; education; bios; pay (every company and year, executive and director); holdings (current Form 4 balances, valued at the latest close); trades (open-market buys, discretionary sells, 10b5-1 sales, 3 years); record (Buy Track Record: every open-market buy since 1999 and how it did vs the S&P 500 at 30 / 90 / 180 days — see insider_track_record); liquidity (score and signals, pending Form 144 sales, insider activity counts); windfalls (liquidity events reported in the news); property (county assessor records: county, city, value, last sale — never street addresses); locations (city / state only); connections (co-workers by tie strength, family and other ties with the source quote); appointments. Identify the person by person_id, cik or crd. Filings go by accession number. Not included on purpose: political donations. Personal records — property, locations, windfalls and connections.relationships — need the add-on permission ac_people_personal (or ac_all); without it they are left out and warnings says so.

Add-on ac_people_personal unlocks connections.relationships, locations, property, windfalls. Without it those parts are left out and meta.warnings says so; asking only for them is a 403.

Parameters

ParameterTypeDescription
person_id str MARS person UUID (company_people returns it)
cik int The person's SEC filer CIK (Form 3/4/5 reporting owner)
crd int The person's FINRA CRD number
sections list Only these sections (the header is always returned): current, boards, career, education, bios, pay, holdings, trades, record, liquidity, windfalls, property, locations, connections, appointments
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar
Presets:

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_people or ac_all · over the limit returns 429 with Retry-After

M&A

M&A: deal history, SEC-first and deduplicated. Permission: ac_transactions

company_deals updated paged

GET · POST /console/v1/transactions/company_deals

M&A history (Console M&A History): one row per real deal the company was in — as acquirer, target or seller — SEC first: filed merger / stock-purchase / asset-purchase agreements (2016+, including agreements filed by the counterparty), then news, de-duplicated (the same deal reported many times is one row; investments mis-typed as acquisitions are left out).

Full description Less

Each deal: counterparty, kind, status (pending / closed / terminated…), announced and closed dates, value and its source, advisers, and the dated trail of agreements, filings (merger proxies, S-4, tender offers, 8-K items, delisting) and news. Filings by accession number. News-only deals nothing corroborates are hidden unless include_unconfirmed=true.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
roles list Only deals where the company is: acquirer, target, seller
status list Only deals in these statuses: closed, terminated, pending, announced, loi, talks, rumor, reported
since date Only deals announced on or after this date
include_unconfirmed bool Include news-only deals with no SEC agreement, filing trail or corroboration (hidden by default, as in Console)
Default: False
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_transactions or ac_all · over the limit returns 429 with Retry-After

Biotech pack

Biotech pack: pipelines, trial readouts, FDA approvals, CRLs, warning letters and inspections, patent cliffs, cash runway and base rates. Sold on its own. Permission: ac_intelligence_bio

bio_entity_resolve new

GET · POST /console/v1/intelligence.bio/bio_entity_resolve

Resolve a gene / protein / modality / indication alias to its canonical name (HGNC symbol for genes), with every candidate: PD-1 is both PDCD1 and SNCA. Exact match on the normalized alias first (resolution exact_normalize); when that misses, a substring match on names and aliases (substring). Pass a canonical gene to bio_target_base_rate, bio_target_trajectory or bio_landscape.

Parameters

ParameterTypeDescription
query str required A gene, protein, modality or indication name or alias (e.g. PD-1, HER2, ALS)
limit int Most candidates from the substring fallback
Default: 5
Range: 1–20
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_pipeline new

GET · POST /console/v1/intelligence.bio/bio_pipeline

A company's drug pipeline from its filings, point in time.

Full description Less

mode 'at': the latest snapshot on or before as_of_date — each asset with its name, modality, highest phase, targets (gene, HGNC id), indications (lead flag) and the accession it was read from. mode 'history': every snapshot in date order and program_trajectories, each program's resolved outcome (approved / acquired / discontinued), resolution date and phase reached.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
mode enum 'at': the pipeline as of a date; 'history': every snapshot plus each program's resolved outcome
One of: at, history
Default: at
as_of_date date The date for mode 'at' (default today): the latest snapshot on or before it
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_landscape new paged

GET · POST /console/v1/intelligence.bio/bio_landscape

Who is working on a target or an indication: every company's assets on that gene (or matching that indication) in its latest pipeline snapshot on or before as_of_date — company (CIK, ticker, name; name_resolved false for private or delisted sponsors), asset, modality, highest phase, snapshot date, accession and snippet. Also n_companies and n_assets over the whole result. Resolve aliases with bio_entity_resolve first.

Parameters

ParameterTypeDescription
axis enum required Cut the landscape by target gene (exact HGNC symbol) or indication (contains)
One of: gene, indication
value str required The gene symbol (e.g. TTR) or indication text (e.g. obesity)
as_of_date date Each company's latest snapshot on or before this date (default today)
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_catalyst_dossier new

GET · POST /console/v1/intelligence.bio/bio_catalyst_dossier

One page before an FDA decision: the company's next PDUFA or advisory-committee date in the next year (from the catalyst calendar), and a one-line headline per context pillar, each with a drill link to the detailed tool — prior CRLs (count, most recent reason, drug and date), the post-CRL base rate for that reason (median 252-day abnormal return, share down, approved-later rate), the base rate for the lead program's target gene, management (officers with a prior approval elsewhere), manufacturing risk (OAI inspections, latest classification) and the pipeline (assets in the latest snapshot). A pillar that fails says available: false; the rest still answer.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
as_of date The date to read the context as of (default today)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_trial_readouts new paged

GET · POST /console/v1/intelligence.bio/bio_trial_readouts

Clinical-trial readouts the company disclosed in its filings, newest first: drug, phase, outcome (MET / MISSED / MIXED), p-value, endpoint, the sentence it was read from, filing date and accession. pvalue_outcome_conflict flags rows whose p-value contradicts the outcome.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
phase enum Only this phase
One of: 1, 2, 3
outcome enum Only this outcome
One of: MET, MISSED, MIXED
as_of date Only readouts filed before this date (point in time)
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_fda_approvals new paged

GET · POST /console/v1/intelligence.bio/bio_fda_approvals

FDA drug and biologic approvals (CDER and CBER), newest first, for one company or the whole market: application and submission number, action date, sponsor, brand, active ingredient, modality, source, biosimilar flag, and the matched public company (CIK, ticker, match method and confidence).

Parameters

ParameterTypeDescription
ticker str Only this company: ticker
cik int Only this company: CIK
Range: ≥ 1
drug str Brand name or active ingredient contains
modality enum Only this modality
One of: CAR-T, gene_therapy, cell_therapy, mAb, mAb_bispecific, small_molecule, siRNA, antisense_oligo, peptide, protein
since date Only FDA actions on or after this date
Default: 2015-01-01
originals_only bool Original approvals only (no supplements)
Default: True
exclude_biosimilar bool Leave out biosimilars
Default: False
min_confidence float Least sponsor-match confidence (default 0.85; 0 when modality is given without a company)
Range: 0–1
limit int Rows per page (max 500)
Default: 50
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_crl_outcomes new paged

GET · POST /console/v1/intelligence.bio/bio_crl_outcomes

What happened after FDA Complete Response Letters: by_reason — per reason category (CMC / manufacturing, efficacy, safety, bioequivalence, clinical design, labeling, inspection, other) the number of CRLs, median and mean 252-day and median 126-day SPY-adjusted abnormal return, share down at 252 days, and the approved-later rate among CRLs with a known resolution, computed over every matching CRL; events — each CRL (drug, company, reason, date and its precision, abnormal returns at 21 / 63 / 126 / 252 days, eventual approval), newest first, paged.

Parameters

ParameterTypeDescription
ticker str Only this company: ticker
cik int Only this company: CIK
Range: ≥ 1
reason_category enum Only CRLs with this reason
One of: cmc_manufacturing, efficacy, safety, bioequivalence_pk, clinical_design, labeling, inspection_483, other, unknown
summary_only bool Only the per-reason base rates, no events
Default: False
limit int Rows per page (max 500)
Default: 200
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_prior_crl_reason new paged

GET · POST /console/v1/intelligence.bio/bio_prior_crl_reason

A sponsor's prior FDA Complete Response Letters known before as_of, newest first: application, letter date, reason category with its confidence, the key deficiency sentence, the disclosing filing's accession (for CRLs disclosed in filings), whether it was approved later (only when that approval also predates as_of), and flags for the same application or the same molecule in another formulation. An empty answer is not evidence of no prior CRL (coverage_caveat).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
as_of date Only letters known before this date (default today): point in time
application str The application under review now (e.g. 'BLA 761303'), to flag same-application CRLs
drug str The drug under review now, to flag CRLs on the same molecule in another formulation
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_warning_letters new paged

GET · POST /console/v1/intelligence.bio/bio_warning_letters

FDA warning letters, newest first: company on the letter, issue and posting dates, issuing office, subject, whether there is a response and a close-out letter, and the matched public company (CIK, ticker, match method and confidence). For inspection results see bio_inspections.

Parameters

ParameterTypeDescription
ticker str Only this company: ticker
cik int Only this company: CIK
Range: ≥ 1
company str Company name on the letter contains (e.g. a contract manufacturer)
issuing_office str Issuing office contains (e.g. Office of Manufacturing Quality)
since date Only letters issued on or after this date
Default: 2015-01-01
min_confidence float Least company-match confidence when a ticker / CIK is given
Default: 0.85
Range: 0–1
limit int Rows per page (max 500)
Default: 50
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_inspections new paged

GET · POST /console/v1/intelligence.bio/bio_inspections

FDA inspections and their classification, newest first: site (FEI number, legal name, city, state, country), fiscal year, project area, product type, classification (OAI / VAI / NAI) and date, whether citations were posted, whether the site is a contract manufacturer, and the matched public company.

Parameters

ParameterTypeDescription
ticker str Only this company: ticker
cik int Only this company: CIK
Range: ≥ 1
company str Inspected firm's legal name contains (e.g. a contract manufacturer)
classification enum OAI (official action indicated), VAI (voluntary action) or NAI (no action)
One of: OAI, VAI, NAI
worst_only bool Only OAI inspections (overrides classification)
Default: False
project_area str Project area contains (e.g. Drug Quality Assurance)
since date Only inspections classified on or after this date
Default: 2015-01-01
min_confidence float Least company-match confidence when a ticker / CIK is given
Default: 0.85
Range: 0–1
limit int Rows per page (max 500)
Default: 50
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_target_base_rate new

GET · POST /console/v1/intelligence.bio/bio_target_base_rate

The historical success rate of drug programs on a target gene up to as_of_date: programs resolved, positive (approved, or acquired while active), approved, acquired, discontinued, and the success rate; verdict is insufficient_priors under 3 resolved programs. With exclude_cik the rate is recomputed without that company. methodology_note says exactly what counts as success.

Parameters

ParameterTypeDescription
gene str required HGNC gene symbol (resolve aliases with bio_entity_resolve)
as_of_date date Point in time (default today)
exclude_cik int Leave this company's own programs out (the prior for a company's own drug)
Range: ≥ 1
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_target_trajectory new

GET · POST /console/v1/intelligence.bio/bio_target_trajectory

How crowded a target is over time, quarter by quarter: companies and assets on the gene, the furthest phase reached (and its rank) and the leading companies (CIK, ticker, phase).

Parameters

ParameterTypeDescription
gene str required HGNC gene symbol
start_date date First quarter
end_date date Last quarter
last_n_quarters int Only the last N quarters (overrides the dates)
Range: 1–200
compact bool Leave out top_companies
Default: False
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_risk_score new

GET · POST /console/v1/intelligence.bio/bio_risk_score

A biotech's de-risking score for the latest quarter on or before as_of_date, with its components (assets in the pipeline, an approved drug, market cap, cash runway in years, partnership, target crowdedness) and their sources. A sizing / volatility signal, not a direction call: read caveat.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
as_of_date date Point in time (default today)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_cash_runway new

GET · POST /console/v1/intelligence.bio/bio_cash_runway

Cash runway quarter by quarter, newest first: years of runway (cash / annual operating burn), cash, quarterly burn, free cash flow, quarter-over-quarter change and the declining streak; summary flags a deteriorating runway (3+ quarters declining).

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
as_of date Only quarters published before this date (point in time)
last_n int Quarters to return, newest first
Default: 8
Range: 1–40
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_patent_cliff new paged

GET · POST /console/v1/intelligence.bio/bio_patent_cliff

When a company's drugs lose exclusivity, soonest first: brand, ingredient, modality, loss-of-exclusivity date and its source (Orange Book patents, or the 12-year biologic rule — loe_source_is_real_patent_data), latest and earliest patent expiry, patent count, substance patent, latest exclusivity expiry, Orange Book edition and application number.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
before date Only loss of exclusivity on or before this date
drug str Brand name or active ingredient contains
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_company_people new paged

GET · POST /console/v1/intelligence.bio/bio_company_people

A biotech's insiders (Forms 3 / 4) with their record across every company they have been an insider of: role here, officer / director, first and last filing here, and track_record — companies, top role, and how many reached an approval, were acquired, failed or are still active. Officers first, then by approvals.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
officers_only bool Officers only (no directors-only insiders)
Default: False
limit int Rows per page (max 200)
Default: 50
Range: 1–200
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

bio_person_track_record new paged

GET · POST /console/v1/intelligence.bio/bio_person_track_record

One person's biotech track record: every company they were an insider of (role, first and last filing, the company's outcome: approval / acquired / failed / active) and the counts. Find them by name or CIK; most approvals first.

Parameters

ParameterTypeDescription
name str Insider name contains (as filed, e.g. 'LEIDEN JEFFREY')
owner_cik int The insider's SEC CIK
Range: ≥ 1
include_funds bool Include funds and other entities, not only people
Default: False
limit int Rows per page (max 100)
Default: 25
Range: 1–100
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_bio or ac_all · over the limit returns 429 with Retry-After

Power pack

Power pack: utilities and subsidiaries, capacity events, forward demand, supply curve, outages, rate cases and gas views, from the filings. Sold on its own. Permission: ac_intelligence_power

sec_power_gazetteer new paged

GET · POST /console/v1/intelligence.power/sec_power_gazetteer

The power universe: power-relevant SEC filers (utilities and their operating companies, independent power producers, LNG, midstream and pipeline filers), survivorship-complete with successor / predecessor links. With a ticker, CIK or name: that one entity's card (role and its confidence, ISO, generating capacity and mix, share regulated, parent, HQ state, status, first and last filing). Without one: the list, largest generating capacity first, filtered by role, ISO, activity and SEC filer status.

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
role str List only this role: utility, ipp, lng_terminal, midstream, pipeline …
iso str List only this ISO: PJM, ERCOT, CAISO, MISO, NYISO, ISO-NE, SPP, non-RTO, multi
active_only bool List only active entities
Default: True
filer_status enum List only this SEC filer status
One of: large_accelerated, accelerated, non_accelerated
is_smaller_reporting_company bool List only smaller reporting companies (or not)
is_emerging_growth_company bool List only emerging growth companies (or not)
is_well_known_seasoned_issuer bool List only well-known seasoned issuers (or not)
limit int Rows per page (max 1000)
Default: 100
Range: 1–1000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_fundamentals new

GET · POST /console/v1/intelligence.power/sec_power_fundamentals

One utility's power panel from its filings: its identity (role, ISO, share regulated, active), the last 10 years with data — capacity added and retired (MW, by fuel), net change, firm forward demand and its year-over-year change, outage count and MW affected — its rate cases (commission, case, decision date, allowed ROE with a suspect flag outside 3–20%, revenue increase, outcome, accession), and coverage: which datasets have any rows for it, so an empty panel isn't read as a finding. The company is resolved in the power universe (utilities and their operating companies, IPPs, LNG and midstream filers) by ticker, CIK or name.

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_capacity_events new paged

GET · POST /console/v1/intelligence.power/sec_power_capacity_events

Generating units being added or retired, as disclosed in filings, soonest target date first: filer (CIK, name, ticker), unit, addition / retirement, fuel, MW, target date, status, state, ISO, disclosed capex, accession and snippet — the latest filing per unit and event (with as_of, as known on that date). Market-wide, or one filer. For the aggregate curve use sec_power_supply_curve.

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
event_type enum Additions or retirements
One of: addition, retirement
fuel str Fuel: coal, gas, nuclear, solar, wind, battery, hydro …
status str Status: announced, planned, under_construction, retired …
iso str ISO: PJM, ERCOT, CAISO, MISO, NYISO, ISO-NE, SPP, non-RTO
year_from int First target year
Default: 2024
Range: 1900–2100
year_to int Last target year
Default: 2040
Range: 1900–2100
as_of date Point in time: only filings on or before this date (default: latest filings)
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_demand_forward new paged

GET · POST /console/v1/intelligence.power/sec_power_demand_forward

Forward large-load demand utilities disclose (data centers, industrial, crypto, hydrogen, EV charging): each load's filer, counterparty, expected MW and GWh, start year, status, geography, ISO, accession and snippet; and summary over everything that matches (not just this page): firm vs pipeline MW and counts, firm loads with no MW, and the split by start year. Firm = contract, in service, executed, firm or permitting.

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
counterparty_type str data_center, industrial, crypto, hydrogen, ev_charging, mixed
status str Firm: contract, in_service, executed, firm, permitting; pipeline: mou, in_negotiation, announced, planned, pipeline
iso str ISO: PJM, ERCOT, CAISO, MISO …
year_from int First start year
Default: 2024
Range: 1900–2100
year_to int Last start year
Default: 2035
Range: 1900–2100
include_undated bool Also loads with no start year
Default: False
as_of date Point in time: only filings on or before this date (default: latest filings)
limit int Rows per page (max 1000)
Default: 200
Range: 1–1000
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_supply_curve new

GET · POST /console/v1/intelligence.power/sec_power_supply_curve

The net forward supply curve across all filers: per fuel and target year, MW added and retired, the number of units each way, net MW, and a representative accession and snippet. Point in time with as_of (plans filed later don't leak in).

Parameters

ParameterTypeDescription
iso str Only this ISO
fuel str Only this fuel
year_from int First target year
Default: 2024
Range: 1900–2100
year_to int Last target year
Default: 2035
Range: 1900–2100
as_of date Point in time: only filings on or before this date (default: latest filings)
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_outages new paged

GET · POST /console/v1/intelligence.power/sec_power_outages

Plant outages material enough to be disclosed in a 10-K / 10-Q / 8-K, newest first: filer, unit, fuel, MW affected, outage type, start and expected return, cause, accession and snippet (latest filing per unit, outage type and start date).

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
outage_type str forced, planned, weather, derate, extended
fuel str Only this fuel
from date Only outages starting (or filed) on or after this date
to date Only outages starting (or filed) on or before this date
as_of date Point in time: only filings on or before this date (default: latest filings)
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_rate_cases new paged

GET · POST /console/v1/intelligence.power/sec_power_rate_cases

Utility rate cases from filings, latest ruling first: filer, utility, commission, case, ruling and effective dates, revenue increase, allowed ROE, outcome, summary, accession and snippet (latest filing per case); and roe_distribution_by_commission over every matching case (not just this page): cases, mean, median, min and max allowed ROE in percent.

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
commission str Commission contains (e.g. 'North Carolina')
outcome str approved, settled, denied, withdrawn, partial, approved_with_modifications, pending …
from date Only rulings on or after this date
to date Only rulings on or before this date
as_of date Point in time: only filings on or before this date (default: latest filings)
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

sec_power_gas_views new paged

GET · POST /console/v1/intelligence.power/sec_power_gas_views

What gas and power filers say about gas markets in their filings, newest first: filer, market, view (bullish / bearish / neutral), key drivers, basis levels, supply-demand text, period, accession and snippet; and net_sentiment_by_market over every matching view (bullish minus bearish, with the counts).

Parameters

ParameterTypeDescription
ticker str Power entity by ticker (holding company)
cik int Power entity by CIK (works for untickered operating companies)
Range: ≥ 1
q str Power entity by name contains (e.g. 'Georgia Power')
market str marcellus, lng_export, appalachia, permian_waha, haynesville, henry_hub …
view_direction enum Only this view
One of: bullish, bearish, neutral
from date Only views filed on or after this date
to date Only views filed on or before this date
as_of date Point in time: only filings on or before this date (default: latest filings)
limit int Rows per page (max 500)
Default: 100
Range: 1–500
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_power or ac_all · over the limit returns 429 with Retry-After

Mining pack

Mining pack: reserves and resources as filed, by deposit. Sold on its own. Permission: ac_intelligence_mining

mining_company_reserves new

GET · POST /console/v1/intelligence.mining/mining_company_reserves

Reserves, production and cost for the gold majors covered, reconciled from their technical report summaries and annual filings: proven + probable reserves (Moz and koz, proven and probable split), completeness (a figure that fails the reconciliation is withheld, not guessed), annual gold production and all-in sustaining cost, fiscal year, effective and filing dates, form and accession; with include_deposits, each deposit's category, tonnes, grade, contained metal, ownership and source document. Gold by default; silver, copper and uranium where filed.

Parameters

ParameterTypeDescription
ticker str One company, by the pack's ticker (GOLD = Barrick); omit for every company covered
commodity str gold (default), silver, copper or uranium; pass all for every commodity
Default: gold
include_deposits bool Also the deposit rows behind each total
Default: False
limit int Most deposit rows per company and commodity
Default: 100
Range: 1–500
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_intelligence_mining or ac_all · over the limit returns 429 with Retry-After

News

News as events with their extracted facts (partner content; its own permission, not part of any module). Permission: ac_news

company_news paged

GET · POST /console/v1/news/company_news

News (Console NEWS): one line per event, newest first — MARS-extracted events with their facts (funding round and amount, acquirer and target, regulator action, appointment, contract, data breach, auditor change) plus articles from the news index that name the company or carry its ticker; coverage of the same event within 14 days folds into also. Auto-written holdings / short-interest stories, other companies' analyst notes, 'warn'-tier rows and securities-lawsuit solicitations are left out. Links to SEC filings are returned as an accession number, never a URL.

Parameters

ParameterTypeDescription
ticker str Ticker symbol (e.g. AAPL, BRK.B)
cik int SEC Central Index Key
cusip str 9-character CUSIP
q str Free text: ticker, CIK, CUSIP or company name
Pass one of ticker, cik, cusip or q.
days int Look-back window in days (default 365)
Default: 365
Range: 1–730
kinds list Only items of these kinds / topics: Funding, M&A, Regulatory, People, Contract, Data breach, Auditor change, Article, Results, Licensing, Dividend, Appointment, Announcement, Promotional
include_promotional bool Include promotional / advertorial items
Default: True
limit int Rows per page (max 400)
Default: 50
Range: 1–400
offset int Rows to skip
Default: 0
Range: ≥ 0
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_news or ac_all · over the limit returns 429 with Retry-After

Insider trades feed

Bulk feed of every Form 4 / 5 transaction line, corrections kept: one full load, then only what changed. Permission: ac_feeds_insider

insider_trades_feed new feed

GET · POST /console/v1/feeds.insider/insider_trades_feed

Insider trades feed: every Form 4 / 5 transaction line (about 11.8M rows), one row per line keyed by stable_feed_id (accession : insider CIK : D/N : line number), which survives a reparse — use it, not a row number, as the row's identity.

Full description Less

Each row has the issuer (CIK, ticker, company_id), the insider (CIK, name, title as filed, officer / director / 10% owner flags), the classified transaction (txn_class: open_market_buy, open_market_sell, planned_sale_10b5_1, exercise, tax_withholding, award, other; is_planned from the 10b5-1 checkbox or a footnote), shares, price, value_usd (the only cleaned dollar figure — do not multiply shares by price yourself), shares owned after, ownership (direct / indirect) and footnotes. Corrections are kept, not dropped: a line a 4/A corrected stays with is_superseded = true and the amending accession, and the 4/A's lines carry amends_accession. deleted_at is set only when a filing left the source. A row reappears in the feed only when something a customer can see changed (content_hash); when a column is added every row reappears once. Paging: leave out since and cursor for the full load from the beginning (or pass since=<UTC date-time> to start there); follow meta.next while meta.cursor.has_more; then keep meta.cursor.next and pass it as cursor on your next pull to get only the rows that changed since. Rows are ordered by their change time, then their id, and become available 15 minutes after they change (meta.as_of is that cut-off), so a cursor never skips a row that was still being written.

Parameters

ParameterTypeDescription
since str Start from rows changed after this UTC time (ISO date or date-time, e.g. 2026-10-17 or 2026-10-17T14:00:00). Leave out, with no cursor, for the full load from the beginning
cursor str Resume after the last row you received: meta.cursor.next of your previous page (opaque). Not with since
limit int Rows per page (max 5000)
Default: 1000
Range: 1–5000
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_feeds_insider or ac_all · over the limit returns 429 with Retry-After

BDC loan book feed

Bulk feed of every loan in BDCs' schedules of investments, quarter by quarter. Permission: ac_feeds_credit

bdc_loan_book_feed new feed

GET · POST /console/v1/feeds.credit/bdc_loan_book_feed

BDC loan book feed: every loan line in business development companies' 10-Q / 10-K schedules of investments (about 104,000 rows, 21 BDCs), one row per BDC, borrower facility and quarter (report_date).

Full description Less

tranche_id identifies the facility across quarters and does not change when a value is corrected; deal_id is the row. Each row has the BDC (ticker, name, CIK), the borrower (name, company_id, industry), seniority, outstanding principal, amortized cost, fair value, mark_ratio (fair value / cost), non-accrual, cash and PIK coupon (bps) and benchmark, maturity and origination dates, and the source accession. under_audit_review marks a line whose mark swing is being checked; tranche_low_confidence marks BDCs whose facility matching across quarters is weaker (currently OBDC). Only verified lines are included. A line removed upstream drops out of the feed rather than coming back marked deleted, so reload the full book (about 21 pages of 5,000) after each quarter's filings. Paging: leave out since and cursor for the full load from the beginning (or pass since=<UTC date-time> to start there); follow meta.next while meta.cursor.has_more; then keep meta.cursor.next and pass it as cursor on your next pull to get only the rows that changed since. Rows are ordered by their change time, then their id, and become available 15 minutes after they change (meta.as_of is that cut-off), so a cursor never skips a row that was still being written.

Parameters

ParameterTypeDescription
since str Start from rows changed after this UTC time (ISO date or date-time, e.g. 2026-10-17 or 2026-10-17T14:00:00). Leave out, with no cursor, for the full load from the beginning
cursor str Resume after the last row you received: meta.cursor.next of your previous page (opaque). Not with since
limit int Rows per page (max 5000)
Default: 1000
Range: 1–5000
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_feeds_credit or ac_all · over the limit returns 429 with Retry-After

Filing signals feed

Bulk feed of licensed sentence-classifier hits on SEC filings, with the sentence, plus the classifier catalog. Permission: ac_feeds_classifiers

classifier_signals_feed new feed

GET · POST /console/v1/feeds.classifiers/classifier_signals_feed

Filing signals feed: each time one of the licensed sentence classifiers (see classifier_catalog) fires on a sentence of an SEC filing — hit_id (sentence_id:classifier, stable), the classifier, its model version when the hit was scored (a retrain does not rewrite old hits), score (probability, above 0.5), the filing (accession, form, filing date), the filer (CIK, company_id) and the sentence itself.

Full description Less

Hits are only ever added: one is never changed or withdrawn, so deleted_at is always empty. Within a filing, sentence_id follows the document order; open the filing with get_filing. Paging: leave out since and cursor for the full load from the beginning (or pass since=<UTC date-time> to start there); follow meta.next while meta.cursor.has_more; then keep meta.cursor.next and pass it as cursor on your next pull to get only the rows that changed since. Rows are ordered by their change time, then their id, and become available 15 minutes after they change (meta.as_of is that cut-off), so a cursor never skips a row that was still being written.

Parameters

ParameterTypeDescription
since str Start from rows changed after this UTC time (ISO date or date-time, e.g. 2026-10-17 or 2026-10-17T14:00:00). Leave out, with no cursor, for the full load from the beginning
cursor str Resume after the last row you received: meta.cursor.next of your previous page (opaque). Not with since
limit int Rows per page (max 5000)
Default: 1000
Range: 1–5000
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_feeds_classifiers or ac_all · over the limit returns 429 with Retry-After

classifier_catalog new

GET · POST /console/v1/feeds.classifiers/classifier_catalog

The licensed sentence classifiers behind classifier_signals_feed: id, name, what each one detects, its direction (positive / negative / neutral for the company) and current model version.

Parameters

ParameterTypeDescription
key str required Your API key (query string or JSON body)

Example Request

cURL
Python
JavaScript

Try it

— live call with the API key in the top bar

Rate limit: 3,600 requests/hour per key

Counts toward your monthly quota · requires ac_feeds_classifiers or ac_all · over the limit returns 429 with Retry-After