retrieve via MCP).
Responses use the standard { ...payload, meta } envelope, and errors use the standard error envelope described in Errors. POST /v1/retrieve is rate-limited per plan and returns 429 when the per-minute limit is exceeded.
POST /v1/retrieve
Semantic retrieval over the document corpus — SEC filings and earnings-call transcripts. Send a natural-language query and receive ranked, source-attributed passages (“chunks”). The response is the product: cited chunks you can feed directly to an LLM or display with citations — never a generated answer. Plan: Free and above · Credits: 1 per call · Rate limited: yes (429 on breach)string
required
The natural-language search query. 1–2,000 characters.
object
Optional filters narrowing the search.
tickers(string[]) — up to 25 trading symbols, each ≤10 characters.year(integer) — calendar year, 2000–2100.quarter(string) — one ofQ1,Q2,Q3,Q4.source_types(string[]) — up to 10 document-type filters.
integer
Number of chunks to return, 1–50. Clamped to your plan’s ceiling: Free 10, Professional 25, Fund 50.
boolean
When
true, rerank results for higher precision.boolean
default:"false"
When
true, each chunk’s source.segments is populated with the source document’s ordered segments (with character offsets) for citation highlighting. Off by default.Leave
filters.year and filters.quarter unset unless you genuinely need a specific period. A guessed period silently returns stale passages rather than an error. Use GET /v1/documents/by-ticker first to see which periods exist.score is a cosine distance — lower means more similar. When the exact requested period was unavailable, meta.periodMismatch carries a { requested, served, message } notice instead of failing.GET /v1/documents/by-ticker/{ticker}
Lists corpus documents for a ticker in reverse-recency order, paginated withlimit + offset. The ticker is expanded to every symbol the company is known by, so a renamed listing still returns its history.
Plan: Free and above · Credits: 1 per call
integer
Filter to one calendar year (2000–2100).
string
Filter to one quarter:
Q1, Q2, Q3, or Q4.integer
default:"20"
Page size, 1–100.
integer
default:"0"
Number of rows to skip. Increment by
limit to paginate.This is the reliable way to discover which periods exist for a company. Call it before pinning a
year/quarter in /v1/retrieve, instead of assuming a period from today’s date.GET /v1/documents/{id}
Fetches metadata for a single document by its id. Plan: Free and above · Credits: 1 per call — refunded automatically if the document is not found (404)GET /v1/documents/{id}/segments
Returns the ordered segments of one document — for transcripts, one segment per speaker turn, with speaker attribution and character offsets suitable for highlighting. Plan: Free and above · Credits: 1 per callinteger
default:"20"
Number of segments to return, 1–100.
charStart/charEnd are computed from segment content and order at read time, so they always match the text exactly.GET /v1/usage
Returns your own usage summary over a time window — total requests, chunks returned, and a per-key breakdown. Scoped to the account behind the API key you call with. Plan: Free and above · Credits: free (not metered)string
ISO-8601 start of the window. Defaults to the start of the current month (UTC).
string
ISO-8601 end of the window. Defaults to now.