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.
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.
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
Create an Account
Sign up at empiricalmarkets.com to get started.
Generate an API Key
Navigate to your dashboard and create a new API key.
Get an Access Token
Exchange your API key for a short-lived access token.
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 |
|---|---|---|
200 | OK | Request succeeded |
400 | Bad Request | Invalid request parameters |
401 | Unauthorized | Authentication required or token expired |
403 | Forbidden | Valid authentication but insufficient permissions |
404 | Not Found | Requested resource doesn't exist |
429 | Too Many Requests | Rate limit exceeded |
500 | Server Error | Something 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 |
X-Rate-Limit-Limit- Your total allowed requestsX-Rate-Limit-Remaining- Requests remainingX-Rate-Limit-Reset- When your window resets
Other
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
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())
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())
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())
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())
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())
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())
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
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())
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())
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())
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.
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())
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())
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())
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.
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())
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())
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())
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.
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())
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())
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())
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())
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.
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())
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())
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())
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())
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.
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())
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())
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())
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())
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.
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())
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.
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())
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())
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())
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.
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())
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())
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())
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())