curl -sS "https://data.finks.ai/v1/search" \
-H "Authorization: Bearer $FINKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Nvidia short interest, holders and insider selling",
"limit": 10,
"symbols": [
"NVDA"
]
}'
# Next page: the same body plus "cursor": <next_cursor>, while "has_more" is true.
Search
Find the news, filings and calls behind any market question.
On this page
Search
POST/v1/search
Searches briefs, articles, filings and earnings call transcripts, best match first. Read any result in full with GET /v1/content/{id}.
curl -sS "https://data.finks.ai/v1/search" \
-H "Authorization: Bearer $FINKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Nvidia short interest, holders and insider selling",
"limit": 10,
"symbols": [
"NVDA"
]
}'
# Next page: the same body plus "cursor": <next_cursor>, while "has_more" is true.
YYYY-MM-DD, point in time (behind the account flag api_point_in_time): the search as published by the end of that New York day. Results published at or after the start of the next New York day are not served, reported_facts reads only facts filed on or before it (each period's latest version filed by then), and every other data-block dataset is not read (not_point_in_time). Not after today.
Deep search's answer: a quote of a result's own text, with offsets into the text GET /v1/content/{result_id} serves (a brief's or article's body, a filing's text of section section_id, a transcript's body).
Page 1 only: what the data block is about, in query order: the companies and funds the query names, and the macro series it asks for. Absent on a later page.
depth: "standard", page 1 only: present when the query embedding did not answer within its 2.5 s budget and the page was ranked on keyword matching alone, without semantic similarity (and without filing excerpts). Absent otherwise.
sort: newest, page 1 only: why the page holds fewer than limit results. Present when fewer than limit items matched the query and the read that fills the page with its best relevance matches did not complete (timed out or failed), so the page serves the matches alone. Absent otherwise.
Statuses
200
Ranked results, best first
400
request.invalid naming the field, request.out_of_plan naming the allowed value, invalid_cursor, or cursor_expired
401
Missing, unknown, revoked, or expired key
413
request.too_large, the body is over the 2 MB limit
429
Rate limited, quota denied, or spend cap reached
501
The plan grants no serving limit
503
content.unresolved, a pool types names, or every pool searched, could not answer
A deep search records search_deep instead of search_standard.
Page with cursor: resend the same body with the previous next_cursor (only limit may change) while has_more is true. A cursor from another request is 400 invalid_cursor; an old one is 400 cursor_expired.
Timestamps are RFC 3339 in UTC. *_after is inclusive (except enriched_after) and *_before exclusive.
Search fields
GET/v1/search/fields
What your key can search: pools, datasets, event types and result fields. format=tool_schema returns a ready tool definition.
The surprise as a percent of |estimate|, one decimal. Verified actuals only, and absent when |estimate| < 0.10 or the actual and the estimate differ in sign.
The session that priced the news first: pre (before the open on the reaction date), intraday, or after (the reaction is a later trading day). The price_* fields are all present or all absent.
Filing: the event's type, one of the event-type allowlist's slugs (earnings, insider_transaction for a Form 4, insider_sale_notice for a Form 144, beneficial_ownership for a Schedule 13D/13G, periodic_report, ...). Absent on other types and when the filing's type is not on the allowlist.
Shares the owner holds after the filing's last transaction day. Absent when not filed, or when that day holds both an acquisition and a disposition (the table keeps no order within a day).
Filing: the event ledger id (le1:) of the real-world event this filing proves, shared by an 8-K and its 8-K/As. Absent when the ledger holds no row for it. On a company-timeline brief or article: the event of the 8-K folded into it.
Unicode code-point offset, inclusive, into the text GET /v1/content/{id} serves: a brief's or article's body, a filing's text of section section_id, a transcript's body. Absent when the offsets could not be verified against text.
Transcript: what url links to, e.g. sec_8k (the SEC EDGAR index page of the earnings-release 8-K the call discusses), never a transcript page. Other values may appear: treat an unknown one as another kind of source link. Absent without a url.