Quickstart
The QuantConomy Client API is a REST API for ML‑processed financial news, assets and markets, the full set of SEC filing datasets, clustered trending stories, prediction markets, and real‑time oracle trading signals. This guide takes you from zero to your first response in a few minutes.
All requests go to the base URL:
https://api.quantconomy.com/api/v1What you need
Section titled “What you need”- An HTTP client —
curl, or any HTTP library in your language of choice. - An API key. Every data endpoint requires one — there is no anonymous
access. To try the API before signing up, use the free public demo key
mtk_demo(limited to 3 results, no pagination, shared credit budget). Create your own key at app.quantconomy.com for full access. See Authentication for the differences.
Step by step
Section titled “Step by step”-
Get an API key.
Sign in at app.quantconomy.com and go to Account → API Keys to create one. Your key looks like
mtk_a1b2c3d4...and is shown in full only once — copy it somewhere safe.In a hurry? Use the public demo key
mtk_demoto try the data endpoints right now without signing up. It’s free, but shared across everyone: it caps list results at 3, blocks pagination, and draws from a pooled ~100 credits/hour budget. See the demo key for its limits; use your own key for real usage. Every example below works withmtk_demo— just paste it in place ofmtk_your_key_here. -
Make your first request.
GET /statscosts 0 credits, so it’s the simplest call to confirm you can reach the API. Like every data endpoint it requires a key — pass the demo key (or your own).Terminal window curl https://api.quantconomy.com/api/v1/stats \-H "Authorization: Bearer mtk_demo"const res = await fetch('https://api.quantconomy.com/api/v1/stats', {headers: { Authorization: 'Bearer mtk_demo' },});const body = await res.json();console.log(body.data);import requestsres = requests.get('https://api.quantconomy.com/api/v1/stats',headers={'Authorization': 'Bearer mtk_demo'},)res.raise_for_status()print(res.json()['data']) -
Fetch some data with your key.
Send your key as a Bearer token in the
Authorizationheader. Here we list three entries (ML‑enriched news articles). With your own key you get full results, pagination, and your plan’s higher rate limits; with the demo key you’re capped at 3 results and cannot paginate (asking forlimit=5returns400).Terminal window curl "https://api.quantconomy.com/api/v1/entries?limit=3" \-H "Authorization: Bearer mtk_your_key_here"const res = await fetch('https://api.quantconomy.com/api/v1/entries?limit=3',{ headers: { Authorization: 'Bearer mtk_your_key_here' } });const body = await res.json();console.log(body.data);console.log(body.meta); // totalCount, hasMore, nextCursor, ...import requestsres = requests.get('https://api.quantconomy.com/api/v1/entries',params={'limit': 3},headers={'Authorization': 'Bearer mtk_your_key_here'},)res.raise_for_status()body = res.json()print(body['data'])print(body['meta']) # totalCount, hasMore, nextCursor, ... -
Read the response.
Every endpoint returns the same envelope (see below). On success you get
success: trueand adatapayload; list endpoints add ametablock with pagination details. You’re done — start exploring the rest of the API.
The response envelope
Section titled “The response envelope”Successful responses share a consistent shape:
{ "success": true, "data": { /* object or array */ }}List endpoints add a meta block and use cursor‑based pagination. Pass the
returned nextCursor back via the cursor query parameter, and control page
size with limit:
{ "success": true, "data": [ /* ... */ ], "meta": { "totalCount": 50000, "limit": 5, "hasMore": true, "nextCursor": "eyJpZCI6..." }}Errors share their own shape, with an HTTP status code and a machine‑readable
code:
{ "success": false, "error": { "message": "Invalid API key", "code": "UNAUTHORIZED" }, "statusCode": 401, "timestamp": "2024-01-15T10:30:00.000Z"}See Errors for the full list of status codes and error codes.