API Console Documentation

The Kaleidoscope Console tool catalog as REST endpoints — 34 tools across 13 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://docs.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. Overviews and Research & Filings come with any API Console permission; News needs its own. 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", "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.

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-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://docs.kscope.io/console/v1/resolve?q=hf%20sinclair&key=YOUR_API_KEY"

Overviews

Identity, the company snapshot, the event calendar, people and board, the filing itself, and the market-wide catalyst calendar. Permission: ac_overview — included with any API Console permission

company_snapshot beta 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 any API Console permission) or ac_all · over the limit returns 429 with Retry-After

company_event_calendar beta

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 any API Console permission) or ac_all · over the limit returns 429 with Retry-After

company_people beta updated

GET · POST /console/v1/overview/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_overview (or any API Console permission) or ac_all · over the limit returns 429 with Retry-After

get_filing beta

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 any API Console permission) or ac_all · over the limit returns 429 with Retry-After

catalyst_calendar beta 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 any API Console permission) or ac_all · over the limit returns 429 with Retry-After

Research & Filings

Filings tagged by the Argos classifiers, and red flags. Permission: ac_filings — included with any API Console permission

company_filings beta paged

GET · POST /console/v1/filings/company_filings

Filings (Console FIL): every filing the company made or was the subject of (13D/G about it) over 3 years, including predecessor registrants, newest first, by accession number.

Full description Less

Each filing carries the curated Argos classifier tags found in it (theme, label, direction, score, best evidence sentence). 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_filings (or any API Console permission) or ac_all · over the limit returns 429 with Retry-After

company_red_flags beta new

GET · POST /console/v1/filings/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_filings (or any API Console permission) or ac_all · over the limit returns 429 with Retry-After

News

News as events with their extracted facts (partner content; its own permission). Permission: ac_news

company_news beta 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

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 beta 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 beta

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 beta

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 beta 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 beta 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 beta 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 beta 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 beta

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 beta 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 beta

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 beta

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 beta

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

Fundamentals

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

geographic_revenue beta

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 beta

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 beta 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 beta

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 beta

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 beta 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 beta 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 beta

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 beta 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 beta 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 beta

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 beta 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: 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)

person_profile beta 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 beta 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