API Documentation

Welcome to the Empirical Markets API. Access real-time and historical financial data, AI-powered forecasts, fundamental analysis, and more through our RESTful API.

Base URL https://api.empiricalmarkets.com/v1

Authentication

All API requests require authentication using Bearer tokens. First, obtain an access token using your API key, then include it in the Authorization header for all subsequent requests.

API Keys are long-lived and can be managed from your dashboard. Access tokens are short-lived (~6 hours) and should be refreshed as needed.
Get Access Token
curl -X POST https://api.empiricalmarkets.com/v1/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'api_key=YOUR_API_KEY'import requests

response = requests.post(
    'https://api.empiricalmarkets.com/v1/token',
    headers={"Content-Type": "application/x-www-form-urlencoded"},
    data={'api_key': 'YOUR_API_KEY'}
)
token = response.json()['access_token']
print(token)
Using the Token

Use the token in your request headers:

Authorization: Bearer YOUR_ACCESS_TOKEN

Quick Start

1

Create an Account

Sign up at empiricalmarkets.com to get started.

2

Generate an API Key

Navigate to your dashboard and create a new API key.

3

Get an Access Token

Exchange your API key for a short-lived access token.

4

Make Your First Request

Start fetching data using the access token in your requests.

curl https://api.empiricalmarkets.com/v1/ticker \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Error Handling

The API uses standard HTTP status codes to indicate success or failure. Error responses include a JSON body with details about the error.

Status Code Meaning Description
200OKRequest succeeded
400Bad RequestInvalid request parameters
401UnauthorizedAuthentication required or token expired
403ForbiddenValid authentication but insufficient permissions
404Not FoundRequested resource doesn't exist
429Too Many RequestsRate limit exceeded
500Server ErrorSomething went wrong on our end
Error Response Format
{
    "error": {
        "code": 429,
        "message": "Rate limit exceeded. Please try again later.",
        "details": {
            "reset_at": "2025-01-02T18:00:00Z",
            "limit": 1000,
            "remaining": 0
        }
    }
}

Rate Limits

Rate limits vary by subscription tier. Monitor your usage via response headers.

Plan Monthly Requests Rate Limit
Unlimited 3 req/sec
Unlimited 3 req/sec
Unlimited 3 req/sec
Tip: Check these response headers to track your usage:
  • X-Rate-Limit-Limit - Your total allowed requests
  • X-Rate-Limit-Remaining - Requests remaining
  • X-Rate-Limit-Reset - When your window resets

Other

POST /v1/token Access Token free
Description

Get an access token

Authentication

This endpoint does not require authentication.

Example Request
curl -X POST "https://api.empiricalmarkets.com/v1/token"import requests
url = 'https://api.empiricalmarkets.com/v1/token'
response = requests.post(url, headers=headers)
print(response.json())

Catalog

GET /v1/catalog/assets List Available Asset Classes free
Description

Get available asset classes.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/assets"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/assets'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/catalog/assets/{asset_class}/tickers List Tickers By Asset Class free
Description

Get tickers for specified asset class (etfs or equities).

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
asset_class string path Yes Asset class. etfs
sort boolean query No Whether to sort the tickers alphabetically. True
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/assets/etfs/tickers?sort=True"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/assets/{asset_class}/tickers'
url = url.format(asset_class="etfs")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'sort': True}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/catalog/exchanges List Available Tracked Exchanges free
Description

Get available tracked exchanges.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/exchanges"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/exchanges'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/catalog/exchanges/{exchange}/tickers List Tickers By Exchange free
Description

Get tickers for a specified exchange.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
exchange string path Yes Exchange. NYS
sort boolean query No Whether to sort tickers alphabetically.
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/exchanges/NYS/tickers"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/exchanges/{exchange}/tickers'
url = url.format(exchange="NYS")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/catalog/sic List Standard Industrial Classification Codes free
Description

Get all SIC (Standard Industrial Classification) codes.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/sic"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/sic'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/catalog/sic/{sic_code} Get Standard Industrial Classification Code Details... free
Description

Get details for a specific SIC (Standard Industrial Classification) code.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
sic_code integer path Yes SIC code. 3571
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/sic/3571"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/sic/{sic_code}'
url = url.format(sic_code="3571")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/catalog/sic/{sic_code}/tickers List Tickers By Standard Industrial Classification Code... free
Description

Get equity tickers for a given SIC (Standard Industrial Classification) code.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
sic_code integer path Yes SIC code. 3571
sort boolean query No Whether to sort tickers alphabetically.
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/sic/3571/tickers"import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/sic/{sic_code}/tickers'
url = url.format(sic_code="3571")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())

Company

GET /v1/company/{ticker} Get Company Metadata free
Description

Get company metadata

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Ticker symbol of the company. AAPL
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/company/AAPL"import requests
url = 'https://api.empiricalmarkets.com/v1/company/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/company/{ticker}/former Get Former Company Names free
Description

Get former company names for a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Ticker symbol of the company. AAPL
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/company/AAPL/former"import requests
url = 'https://api.empiricalmarkets.com/v1/company/{ticker}/former'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/company/{ticker}/filings Get Company Sec Filings free
Description

Get recent SEC filings for a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Ticker symbol of the company. AAPL
start_date string query Yes Start date for filings (YYYY-MM-DD) 2023-01-01
end_date string query Yes End date (inclusive) for filings (YYYY-MM-DD) 2023-12-31
forms string query No Optional list of SEC form types to filter by. ['10-K', '10-Q']
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/company/AAPL/filings?start_date=2023-01-01&end_date=2023-12-31&forms=['10-K', '10-Q']"import requests
url = 'https://api.empiricalmarkets.com/v1/company/{ticker}/filings'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'forms': ['10-K', '10-Q']}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/company/{ticker}/filings/forms Get Sec Forms For A Company free
Description

Get all unique SEC forms filed by a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Ticker symbol of the company. AAPL
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/company/AAPL/filings/forms"import requests
url = 'https://api.empiricalmarkets.com/v1/company/{ticker}/filings/forms'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())

Ai

AI-powered predictions and forecasts including regime detection and reversal signals.

GET /v1/ai/tasks Get Model Tasks super
Description

Get all AI model tasks.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/tasks"import requests
url = 'https://api.empiricalmarkets.com/v1/ai/tasks'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/ai/models/{task} Get Models super
Description

Get AI models for a specific task.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
task string path Yes AI task name regime
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/models/regime"import requests
url = 'https://api.empiricalmarkets.com/v1/ai/models/{task}'
url = url.format(task="regime")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/ai/predictions/regime/{ticker} Regime Predictions super
Description

Get Ticker Regime Predictions

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date (YYYY-MM-DD) 2023-01-01
model_version_id integer query No Model version ID 1
dataset string query No Dataset type inference
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/predictions/regime/AAPL?start_date=2023-01-01&model_version_id=1&dataset=inference"import requests
url = 'https://api.empiricalmarkets.com/v1/ai/predictions/regime/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'model_version_id': 1, 'dataset': 'inference'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/ai/predictions/reversal/{ticker} Reversal Likelihood Predictions super
Description

Get Ticker Reversal Likelihood Predictions

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date (YYYY-MM-DD) 2023-01-01
model_version_id integer query No Model version ID 1
dataset string query No Dataset type inference
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/predictions/reversal/AAPL?start_date=2023-01-01&model_version_id=1&dataset=inference"import requests
url = 'https://api.empiricalmarkets.com/v1/ai/predictions/reversal/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'model_version_id': 1, 'dataset': 'inference'}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Analytics

Technical analysis and market analytics tools.

GET /v1/analytics/drift-strength/series/{ticker} Drift Strength Series starter
Description

Get Drift Strength time series for a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date (YYYY-MM-DD) 2023-01-01
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/analytics/drift-strength/series/AAPL?start_date=2023-01-01"import requests
url = 'https://api.empiricalmarkets.com/v1/analytics/drift-strength/series/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/analytics/drift-strength/anomaly/{ticker} Drift Strength Anomalies starter
Description

Get Drift Strength anomalies for a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date (YYYY-MM-DD) 2023-01-01
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/analytics/drift-strength/anomaly/AAPL?start_date=2023-01-01"import requests
url = 'https://api.empiricalmarkets.com/v1/analytics/drift-strength/anomaly/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/analytics/flow-ratio/series/{ticker} Flow Ratio Series starter
Description

Get Flow Ratio time series for a given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/analytics/flow-ratio/series/AAPL"import requests
url = 'https://api.empiricalmarkets.com/v1/analytics/flow-ratio/series/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/analytics/technicals/list Get Technical Names free
Description

Get list of available technical indicator names.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/analytics/technicals/list"import requests
url = 'https://api.empiricalmarkets.com/v1/analytics/technicals/list'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())

Federal Reserve

Federal Reserve data including FOMC meetings, speeches, and economic projections.

GET /v1/fed/sentiment Fomc Sentiment Predictions starter
Description

Get FOMC Sector Sentiment Predictions

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/sentiment"import requests
url = 'https://api.empiricalmarkets.com/v1/fed/sentiment'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fed/operations/repo Nyfed Repo Operations starter
Description

Get NYFed Repo Operations

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/operations/repo"import requests
url = 'https://api.empiricalmarkets.com/v1/fed/operations/repo'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fed/operations/rrp Nyfed Reverse Repo Operations starter
Description

Get NYFed Reverse Repo Operations

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/operations/rrp"import requests
url = 'https://api.empiricalmarkets.com/v1/fed/operations/rrp'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fed/soma/holdings Nyfed Soma Holdings starter
Description

Get NYFed SOMA Holdings

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/soma/holdings"import requests
url = 'https://api.empiricalmarkets.com/v1/fed/soma/holdings'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fed/soma/holdings/latest Nyfed Soma Holdings Latest Snapshot free
Description

Get NYFed SOMA Holdings Latest Snapshot

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/soma/holdings/latest"import requests
url = 'https://api.empiricalmarkets.com/v1/fed/soma/holdings/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())

Fundamentals

Company fundamentals including financial statements, ratios, and SEC filings.

GET /v1/fundamentals/tickers Get Available Fundamental Tickers demo
Description

Get all ticker symbols with fundamental data available.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tickers"import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fundamentals/tags/{ticker} Get Fundamental Tags For Ticker starter
Description

Get all unique fundamental tags for the given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol, e.g. AAPL AAPL
taxonomy string query No Optional taxonomy filter us_gaap
period_type string query No Optional period type filter duration
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tags/AAPL?taxonomy=us_gaap&period_type=duration"import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tags/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'taxonomy': 'us_gaap', 'period_type': 'duration'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/fundamentals/tags/{ticker}/details/{tag} Get Fundamental Tag Details For Ticker... free
Description

Get details for a specific fundamental tag for the given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol, e.g. AAPL AAPL
tag string path Yes Fundamental tag of the metric Goodwill
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tags/AAPL/details/Goodwill"import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tags/{ticker}/details/{tag}'
url = url.format(ticker="AAPL", tag="Goodwill")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/fundamentals/tags/{ticker}/frequency Get Fundamental Tag Frequencies For Ticker super
Description

Get frequency of each fundamental tag for the given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol, e.g. AAPL AAPL
taxonomy string query No Optional taxonomy filter us_gaap
period_type string query No Optional period type filter duration
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tags/AAPL/frequency?taxonomy=us_gaap&period_type=duration"import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tags/{ticker}/frequency'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'taxonomy': 'us_gaap', 'period_type': 'duration'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/fundamentals/series/{ticker} Get Fundamental Time Series Data For Ticker super
Description

Get fundamental time series data for the given ticker.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
period_type string query No Optional period type filter all
revision string query No Which revision to use. Currently only applied to period_type=instant tags. all
tags string query No Optional list of specific tags to filter the results ['Assets', 'CommonStockSharesOutstanding']
limit string query No Limit the number of results returned. 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/series/AAPL?period_type=all&revision=all&tags=['Assets', 'CommonStockSharesOutstanding']&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/series/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'period_type': 'all', 'revision': 'all', 'tags': ['Assets', 'CommonStockSharesOutstanding'], 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Macro

Macroeconomic data from BLS, economic calendars, and indicators.

GET /v1/macro/collections Available Macro Collection Ids demo
Description

Get metadata for all macroeconomic collections.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/collections"import requests
url = 'https://api.empiricalmarkets.com/v1/macro/collections'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/macro/collections/{collection_id} Collection Id Metadata demo
Description

Get metadata for a specific collection ID.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
collection_id string path Yes The collection ID to retrieve metadata for.
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/collections/example_value"import requests
url = 'https://api.empiricalmarkets.com/v1/macro/collections/{collection_id}'
url = url.format(collection_id="example_value")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/macro/series Available Macro Series Ids demo
Description

Get available Series IDs for a specific collection ID.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
collection_id string query Yes Filter by collection ID gdp-nominal
frequency string query No Frequency: M (Monthly), Q (Quarterly)) M
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/series?collection_id=gdp-nominal&frequency=M"import requests
url = 'https://api.empiricalmarkets.com/v1/macro/series'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'collection_id': 'gdp-nominal', 'frequency': 'M'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/macro/series/{series_id} Macro Timeseries Data demo
Description

Get macroeconomic timeseries data for a specific Series ID.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
series_id string path Yes The Series ID to retrieve data for. E
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/series/EMBIEYTSMKSIM"import requests
url = 'https://api.empiricalmarkets.com/v1/macro/series/{series_id}'
url = url.format(series_id="EMBIEYTSMKSIM")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/macro/schedule/{year} Economic Release Calendar starter
Description

Get the economic release calendar for a specific year.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
year integer path Yes Report Year 2023
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/schedule/2023"import requests
url = 'https://api.empiricalmarkets.com/v1/macro/schedule/{year}'
url = url.format(year="2023")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())

Ohlc

Open, High, Low, Close price data for stocks and other securities.

GET /v1/ohlc/tickers Available Tickers starter
Description

Available tickers.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
asset_class string query No Asset class to filter tickers by. all
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ohlc/tickers?asset_class=all"import requests
url = 'https://api.empiricalmarkets.com/v1/ohlc/tickers'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'asset_class': 'all'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/ohlc/series/{ticker} Ticker Ohlc starter
Description

Equity and ETF OHLC Data

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Ticker symbol to retrieve OHLC data for. AAPL
start_date string query No Inclusive start date YYYY-MM-DD 2023-01-01
end_date string query No Inclusive end date YYYY-MM-DD 2023-12-31
limit integer query No Max rows to return (<= 5000) 1000
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ohlc/series/AAPL?start_date=2023-01-01&end_date=2023-12-31&limit=1000"import requests
url = 'https://api.empiricalmarkets.com/v1/ohlc/series/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 1000}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Insiders

Insider trading data and SEC Form 4 filings.

GET /v1/insiders/{ticker} Insiders super
Description

Insiders

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date for the date range filter (YYYY-MM-DD) 2023-01-01
end_date string query No Inclusive end date for the date range filter (YYYY-MM-DD) 2023-12-31
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/AAPL?start_date=2023-01-01&end_date=2023-12-31"import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/insiders/{ticker}/tx Non Deriv Insiders super
Description

Non-Derivative Insider Transactions

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
code string query No Transaction code. S
start_date string query No Start date for the date range filter (YYYY-MM-DD) 2023-01-01
end_date string query No Inclusive end date for the date range filter (YYYY-MM-DD) 2023-12-31
limit string query No Limit the number of results returned. 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/AAPL/tx?code=S&start_date=2023-01-01&end_date=2023-12-31&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/{ticker}/tx'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'code': 'S', 'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/insiders/{ticker}/tx/sale Non Deriv Insider Sales super
Description

Non-Derivative Insider Sales

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date for the date range filter (YYYY-MM-DD) 2023-01-01
end_date string query No Inclusive end date for the date range filter (YYYY-MM-DD) 2023-12-31
limit string query No Limit the number of results returned. 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/AAPL/tx/sale?start_date=2023-01-01&end_date=2023-12-31&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/{ticker}/tx/sale'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/insiders/{ticker}/tx/purchase Non Deriv Insider Buys super
Description

Non-Derivative Insider Purchase

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
ticker string path Yes Stock ticker symbol AAPL
start_date string query No Start date for the date range filter (YYYY-MM-DD) 2023-01-01
end_date string query No Inclusive end date for the date range filter (YYYY-MM-DD) 2023-12-31
limit string query No Limit the number of results returned. 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/AAPL/tx/purchase?start_date=2023-01-01&end_date=2023-12-31&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/{ticker}/tx/purchase'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Treasury

US Treasury yields, rates, and auction data.

GET /v1/treasury/maturities List Yield Curve Maturities... free
Description

List all available maturities in the treasury yield curve dataset.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/maturities"import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/maturities'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/treasury/yields/latest Get the latest full yield curve snapshot free
Description

Get the latest full yield curve snapshot

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/yields/latest"import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/yields/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
GET /v1/treasury/yields/{maturity} Get paginated treasury yield curve data... free
Description

Retrieve treasury yield curve data with filtering and cursor-based pagination. Pagination: - Omit cursor for the first page (latest `limit` rows, sorted by date desc). - Pass next_cursor from prior response to get older rows.

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
maturity string path Yes Maturity to filter by (e.g., '1mo', '10yr') 1mo
start_date string query No Start date for the date range filter (YYYY-MM-DD) 2022-01-01
end_date string query No Inclusive end date for the date range filter (YYYY-MM-DD) 2022-12-31
year string query No Convenience filter: restrict results to a calendar year 2022
cursor string query No Pagination cursor: fetch rows older than this date (use next_cursor from previous response) 2022-06-30T00:00:00Z
limit integer query No Number of rows (default 500, max 1500) 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/yields/1mo?start_date=2022-01-01&end_date=2022-12-31&year=2022&cursor=2022-06-30T00:00:00Z&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/yields/{maturity}'
url = url.format(maturity="1mo")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2022-01-01', 'end_date': '2022-12-31', 'year': 2022, 'cursor': '2022-06-30T00:00:00Z', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())
GET /v1/treasury/spreads/{maturity_a}/{maturity_b} Get paginated treasury yield spreads (maturity_a - maturity_b)... free
Description

Get paginated treasury yield spreads (maturity_a - maturity_b)

Authentication

This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.

Parameters
Name Type In Required Description Example
maturity_a string path Yes Minuend (e.g., '10yr') 10yr
maturity_b string path Yes Subtrahend (e.g., '2yr') 2yr
start_date string query No Start date (YYYY-MM-DD) 2022-01-01
end_date string query No Inclusive end date (YYYY-MM-DD) 2022-12-31
year string query No Convenience filter: restrict results to a calendar year (e.g., 2022) 2022
cursor string query No Fetch rows older than this date 2022-06-30T00:00:00Z
limit integer query No Rows per page (default 500, max 1500) 100
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/spreads/10yr/2yr?start_date=2022-01-01&end_date=2022-12-31&year=2022&cursor=2022-06-30T00:00:00Z&limit=100"import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/spreads/{maturity_a}/{maturity_b}'
url = url.format(maturity_a="10yr", maturity_b="2yr")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2022-01-01', 'end_date': '2022-12-31', 'year': 2022, 'cursor': '2022-06-30T00:00:00Z', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())