API Documentation
The Empirical Markets API is an all-in-one financial data platform for traders, researchers, and developers.
Access a comprehensive ecosystem of data through a consistent RESTful interface — spanning AI-powered predictions and signals, historical market prices, company fundamentals, SEC filings, macroeconomic indicators, insider trading activity, Federal Reserve operations, and more.
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
Verify your token is working by querying the /me endpoint, which returns details about your access token and subscription.
curl https://api.empiricalmarkets.com/v1/me -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
Authenticated API access is governed by two plan-based controls:
- A monthly request quota
- A short-window burst rate limit policy
Burst limits apply to entitlement-governed API routes and vary by subscription tier. Monthly quotas are tied to your billing period.
Short-window rate limits are operational controls and may change as needed to maintain platform stability and fair usage.
Exceeding any limit will result in a 429 Too Many Requests response.
You can monitor your monthly usage at any time from the API Dashboard.
| Plan | Monthly Quota | Requests / Second | Requests / Minute |
|---|---|---|---|
| Demo |
200
|
1
|
60
|
| Starter |
5,000
|
3
|
180
|
| Super |
20,000
|
5
|
300
|
Pagination
Many endpoints that return timeseries data use date cursor pagination.
Rather than page numbers, results are paginated by date. Each response includes a date_cursor object you can use to fetch the next page.
Cursor Response Object
| Field | Type | Description |
|---|---|---|
| limit | integer | Maximum number of records requested. |
| count | integer | Number of records returned in this page. |
| has_more | boolean | Whether additional pages are available. |
| next_cursor | string | null | Pass this value as the date_cursor query parameter to retrieve the next page. null when no further pages exist. |
Example Response
{
"data": [...],
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-06-30"
}
}
Fetching the Next Page
Pass next_cursor as the date_cursor query parameter on your next request.
Results are returned in reverse-chronological order. Continue until has_more is false.
curl "https://api.empiricalmarkets.com/v1/ohlc/AAPL?date_cursor=2023-06-30" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
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())
Example Response
200
Access token.
{
"access_token": "ded3e3ex01s...",
"token_type": "Bearer"
}
Description
Get information about the authenticated user's token.
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/me"
import requests
url = 'https://api.empiricalmarkets.com/v1/me'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Information about the current user's token.
{
"expires_at": "2026-04-13T20:11:38",
"ttl": 3600,
"api_quota_limit": 5000,
"api_quota_period_start": "2026-04-03T19:11:38",
"api_quota_period_end": "2026-05-03T19:11:38",
"api_rate_limit_per_second": 3,
"api_rate_limit_per_minute": 180
}
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())
Example Response
200
List of available asset classes.
{
"asset_class": [
"etfs",
"equities"
]
}
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 (enum) | path | Yes | Asset class. |
ENUM
|
| 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())
Example Response
200
List of ticker symbols for the specified asset class.
{
"asset_class": "equities",
"tickers": [
"AAPL",
"MSFT",
"JPM",
"GOOGL",
"AMZN"
]
}
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())
Example Response
200
List of available tracked exchanges.
{
"exchange": [
"CBOE",
"NASDAQ",
"NYS",
"NYSE",
"OTC"
]
}
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. |
True
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/exchanges/NYS/tickers?sort=True"
import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/exchanges/{exchange}/tickers'
url = url.format(exchange="NYS")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'sort': True}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Mapping of exchange to its associated tickers.
{
"exchange": "NASDAQ",
"tickers": [
"AAPL",
"MSFT",
"GOOGL",
"AMZN",
"TSLA"
]
}
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())
Example Response
200
List of SIC (Standard Industrial Classification) codes and their descriptions.
{
"sic_codes": [
{
"code": 1311,
"description": "Crude Petroleum & Natural Gas"
},
{
"code": 3571,
"description": "Electronic Computers"
}
]
}
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())
Example Response
200
Details of the specified SIC (Standard Industrial Classification) code.
{
"code": 3571,
"description": "Electronic Computers"
}
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. |
True
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/sic/3571/tickers?sort=True"
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>'}
params = {'sort': True}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Distinct list of tickers whose company has the given Standard Industrial Classification code.
{
"sic": 3571,
"tickers": [
"AAPL",
"DELL",
"OMCL",
"OSS",
"SCKT",
"SMCI",
"ZEPP"
]
}
Description
Get details for a specific ticker symbol.
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. |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/catalog/tickers/AAPL"
import requests
url = 'https://api.empiricalmarkets.com/v1/catalog/tickers/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Details of the specified ticker symbol.
{
"ticker": "AAPL",
"name": "Apple Inc.",
"exchange": "NASDAQ",
"asset_class": "Equities",
"asset_class_underlying": "Equities",
"sic_code": 3571,
"sic_description": "Electronic Computers",
"fiscal_year_end": "09-30",
"state_of_incorporation": "CA",
"last_close": 150.25,
"pct_return": 0.0125,
"as_of": "2025-09-30"
}
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())
Example Response
200
Company metadata including name, SIC code, and fiscal year end.
{
"ticker": "AAPL",
"name": "Apple Inc.",
"sic_code": "3571",
"sic_description": "Electronic Computers",
"fiscal_year_end": "09-30"
}
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())
Example Response
200
List of former company names with their respective date ranges.
{
"ticker": "AAPL",
"former_names": [
{
"ticker": "AAPL",
"former_name": "APPLE COMPUTER INC",
"from_date": "1994-01-26T00:00:00",
"to_date": "2007-01-04T00:00:00"
}
]
}
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/forms"
import requests
url = 'https://api.empiricalmarkets.com/v1/company/{ticker}/forms'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of unique SEC form types filed by the company.
{
"ticker": "AAPL",
"forms": [
"10-K",
"10-Q",
"8-K"
]
}
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 | No | Start date for filings (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | End date (inclusive) for filings (YYYY-MM-DD) |
2023-12-31
|
| forms | array | query | No | Optional list of SEC form types to filter by. |
['10-K', '10-Q']
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
100
|
| order | string | query | No | Sort order for filings by filed_date. 'desc' returns newest first. |
desc
|
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&forms=10-Q&limit=100&order=desc"
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'], 'limit': 100, 'order': 'desc'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
List of SEC filings including form type, filing date, and URL.
{
"ticker": "AAPL",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"filings": [
{
"ticker": "AAPL",
"accession_number": "0000320193-24-000123",
"form": "10-K",
"filed_date": "2024-09-28T00:00:00",
"report_date": "2024-09-30T00:00:00",
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"primary_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"items": "Annual report for fiscal year 2024"
}
]
}
Ai
AI-powered predictions and forecasts including regime detection and reversal signals.
Description
Get available AI signals and associated metadata.
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/signals"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available AI signals.
{
"signals": [
{
"signal": "high-reclaim",
"description": "Probability of price reclaiming recent highs within the next N days",
"value_type": "probability"
}
]
}
Description
Get metadata for a given AI signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | AI signal name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/signals/high-reclaim"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals/{signal}'
url = url.format(signal="high-reclaim")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Metadata for the given AI signal.
{
"signal": "high-reclaim",
"description": "Probability of price reclaiming recent highs within the next N days",
"value_type": "probability"
}
Description
Get associated models for a given AI signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | AI signal name |
ENUM
|
| latest | boolean | query | No | If true, return only the latest model version | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/signals/high-reclaim/models"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals/{signal}/models'
url = url.format(signal="high-reclaim")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available model versions that produce the given AI signal.
{
"signal": "high-reclaim",
"models": [
{
"model_id": 1,
"model_name": "Taurus",
"model_version": "v1.0.0",
"signal_direction": "long",
"age_days": 10
}
]
}
Description
Get specific model that produces the given AI-generated signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | AI signal name |
ENUM
|
| model_id | integer | path | Yes | Model version ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/signals/high-reclaim/models/1"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals/{signal}/models/{model_id}'
url = url.format(signal="high-reclaim", model_id="1")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Model that produces the given AI-generated signal.
{
"model_id": 1,
"model_name": "Taurus",
"model_version": "v1.0.0",
"signal_direction": "long",
"age_days": 10
}
Description
Get available tickers for a given AI signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | AI signal name |
ENUM
|
| model_id | integer | query | No | Filter by specific Model ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/signals/high-reclaim/tickers?model_id=1"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals/{signal}/tickers'
url = url.format(signal="high-reclaim")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'model_id': 1}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
List of available tickers for the given AI signal.
{
"signal": "high-reclaim",
"model_id": 1,
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get time series data for a given AI signal and 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 |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | AI signal name |
ENUM
|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| model_id | integer | query | No | Filter by specific Model ID. If unspecified, the latest model version is used. |
1
|
| dataset | string (enum) | query | No | Dataset split to query for |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/signals/high-reclaim/tickers/AAPL?model_id=1&dataset=test"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/signals/{signal}/tickers/{ticker}'
url = url.format(signal="high-reclaim", ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'model_id': 1, 'dataset': 'test'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series data points for the given AI signal and ticker.
{
"ticker": "AAPL",
"signal": "high-reclaim",
"signal_description": "Probability of price reclaiming recent highs within the next N days",
"model_id": 1,
"model_name": "Taurus",
"value_type": "probability",
"data": [
{
"date": "2023-01-01",
"ticker": "AAPL",
"signal": "high-reclaim",
"model_id": 1,
"value": 0.94,
"value_type": "probability"
}
]
}
Description
Get AI-generated events derived from a wide variety of models.
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/events"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of AI-generated event types and associated metadata.
{
"events": [
{
"event": "",
"description": "Price is predicted to recapture recent highs within the near future",
"signal": "high-reclaim"
}
]
}
Description
Get metadata for a given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}'
url = url.format(event="high-reclaimed")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Metadata for the given AI-generated event type.
{
"event": "",
"description": "Price is predicted to recapture recent highs within the near future",
"signal": "high-reclaim"
}
Description
Get latest events for a given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| model_id | integer | query | No | Filter by specific Model ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/latest?model_id=1"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/latest'
url = url.format(event="high-reclaimed")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'model_id': 1}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Latest events for the given AI-generated event type.
{
"event": "",
"data": [
{
"model_id": 1,
"date": "2023-01-01",
"ticker": "AAPL",
"event": "",
"value": 0.94,
"value_type": ""
}
]
}
Description
Get model versions that produce the given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| latest | boolean | query | No | If true, return only the latest model version | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/models"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/models'
url = url.format(event="high-reclaimed")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of model versions that produce the given AI-generated event type.
{
"event": "",
"models": [
{
"model_id": 1,
"model_name": "Taurus",
"model_version": "v1.0.0",
"signal_direction": "long",
"age_days": 10
}
]
}
Description
Get specific model that produces the given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| model_id | integer | path | Yes | Model version ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/models/1"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/models/{model_id}'
url = url.format(event="high-reclaimed", model_id="1")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Model that produces the given AI-generated event type.
{
"model_id": 1,
"model_name": "Taurus",
"model_version": "v1.0.0",
"signal_direction": "long",
"age_days": 10
}
Description
Get performance metrics for a specific model that produces the given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| model_id | integer | path | Yes | Model version ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/models/1/metrics"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/models/{model_id}/metrics'
url = url.format(event="high-reclaimed", model_id="1")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Performance metrics for a model that produces the given AI-generated event type.
{
"model_id": 1,
"model_name": "Taurus",
"model_version": "v1.0.0",
"signal_direction": "long",
"metrics": [
{
"metric_name": "precision",
"metric_value": 0.95,
"direction": "long",
"eval_horizon": 5
}
]
}
Description
Get available tickers for a given AI-generated event type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| model_id | integer | query | No | Filter by specific Model ID |
1
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/tickers?model_id=1"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/tickers'
url = url.format(event="high-reclaimed")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'model_id': 1}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Successful Response
{}
Description
Get time series data for a given AI-generated event type and 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 |
|---|---|---|---|---|---|
| event | string (enum) | path | Yes | AI-generated event type |
ENUM
|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| model_id | integer | query | No | Filter by specific Model ID |
1
|
| dataset | string (enum) | query | No | Dataset split to query for |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/events/high-reclaimed/tickers/AAPL?model_id=1&dataset=test"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/events/{event}/tickers/{ticker}'
url = url.format(event="high-reclaimed", ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'model_id': 1, 'dataset': 'test'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series data for the given AI-generated event type and ticker.
{
"ticker": "AAPL",
"event": "",
"event_description": "Price is predicted to recapture recent highs within the near future",
"model_name": "Taurus",
"data": [
{
"model_id": 1,
"date": "2023-01-01",
"ticker": "AAPL",
"event": "",
"value": 0.94,
"value_type": "",
"price": 150.25
}
]
}
Description
Get available AI sentiment topics and associated metadata.
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/sentiment"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available AI sentiment topics.
{
"topics": [
{
"topic": "",
"description": "Sector-level market sentiment derived from Federal Reserve publications.",
"dimension_type": ""
}
]
}
Description
Get metadata for a given AI sentiment topic.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| topic | string (enum) | path | Yes | AI sentiment topic name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/sentiment/fed-market-sectors"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment/{topic}'
url = url.format(topic="fed-market-sectors")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Metadata for the given AI sentiment topic.
{
"topic": "",
"description": "Sector-level market sentiment derived from Federal Reserve publications.",
"dimension_type": "",
"dimensions": [
"consumer-discretionary",
"consumer-staples",
"energy",
"financials",
"healthcare",
"industrials",
"materials",
"overall",
"real-estate",
"technology",
"utilities"
],
"value_type": "score",
"value_map": {
"1": "Strongly Bearish",
"2": "Slightly Bearish",
"3": "Neutral",
"4": "Slightly Bullish",
"5": "Strongly Bullish"
}
}
Description
Get the latest sentiment for all dimensions in a topic.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| topic | string (enum) | path | Yes | AI sentiment topic name |
ENUM
|
| model_name | string | query | No | — | |
| model_version | string | query | No | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/sentiment/fed-market-sectors/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment/{topic}/latest'
url = url.format(topic="fed-market-sectors")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Latest sentiment
{
"topic": "",
"description": "Sector-level market sentiment derived from Federal Reserve publications.",
"dimension_type": "",
"value_type": "score",
"value_map": {
"1": "Strongly Bearish",
"2": "Slightly Bearish",
"3": "Neutral",
"4": "Slightly Bullish",
"5": "Strongly Bullish"
},
"sentiment": [
{
"date": "2025-11-26",
"model_name": "Newton",
"model_version": "1.0.0",
"dimension": "financials",
"score": 5,
"change": 1,
"reasoning": "The economy is showing signs of growth."
}
]
}
Description
Get model versions that produce sentiment for the given topic.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| topic | string (enum) | path | Yes | AI sentiment topic name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/sentiment/fed-market-sectors/models"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment/{topic}/models'
url = url.format(topic="fed-market-sectors")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of model versions for the given sentiment topic.
{
"topic": "fed-market-sectors",
"description": "Sector-level market sentiment derived from Federal Reserve publications.",
"models": [
{
"model_name": "Newton",
"model_version": "1.0.0"
}
]
}
Description
Get available dimension values for a given AI sentiment topic.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| topic | string (enum) | path | Yes | AI sentiment topic name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/sentiment/fed-market-sectors/dimensions"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment/{topic}/dimensions'
url = url.format(topic="fed-market-sectors")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available dimensions for the given topic.
{
"topic": "",
"dimension_type": "category",
"dimensions": [
"technology",
"energy",
"financials"
]
}
Description
Get sentiment time series for a given topic and dimension value.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| topic | string (enum) | path | Yes | AI sentiment topic name |
ENUM
|
| dimension | string | path | Yes | Dimension value to get sentiment for |
technology
|
| model_name | string | query | No | Optional filter by model name | — |
| model_version | string | query | No | Optional filter by model version | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ai/sentiment/fed-market-sectors/dimensions/technology"
import requests
url = 'https://api.empiricalmarkets.com/v1/ai/sentiment/{topic}/dimensions/{dimension}'
url = url.format(topic="fed-market-sectors", dimension="technology")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
AI sentiment values for the given topic and dimension.
{
"topic": "",
"description": "Sector-level market sentiment derived from Federal Reserve publications.",
"dimension": "financials",
"dimension_type": "",
"model": "Newton",
"value_type": "score",
"value_map": {
"1": "Strongly Bearish",
"2": "Slightly Bearish",
"3": "Neutral",
"4": "Slightly Bullish",
"5": "Strongly Bullish"
},
"sentiment": [
{
"date": "2025-11-26",
"model_name": "Newton",
"model_version": "1.0.0",
"dimension": "financials",
"score": 5,
"reasoning": "The economy is showing signs of growth."
}
]
}
Federal Reserve
Federal Reserve data including FOMC meetings, speeches, and economic projections.
Description
Get list of all SOMA Securities.
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/holdings"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/holdings'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of all SOMA Securities.
{
"securities": [
{
"description": "Agency-guaranteed residential mortgage-backed securities.",
"name": "Mortgage-Backed Securities",
"security": "mbs"
},
{
"description": "Agency-guaranteed multifamily mortgage-backed securities.",
"name": "Commercial Mortgage-Backed Securities",
"security": "cmbs"
},
{
"description": "Treasury securities whose principal adjusts with the Consumer Price Index.",
"name": "Treasury Inflation-Protected Securities",
"security": "tips"
},
{
"description": "Treasury securities with a variable interest rate indexed to the 13-week T-bill.",
"name": "Floating Rate Notes",
"security": "frn"
},
{
"description": "Fixed-rate Treasury securities with maturities between 2 years and 30 years.",
"name": "Treasury Notes & Bonds",
"security": "notes-bonds"
},
{
"description": "Fixed-rate Treasury securities with maturities of one year or less.",
"name": "Treasury Bills",
"security": "bills"
},
{
"description": "Debt securities issued by government-sponsored enterprises including Fannie Mae, Freddie Mac, and the Federal Home Loan Banks.",
"name": "Agency Debt",
"security": "agency"
},
{
"description": "Aggregate of all Treasury securities (bills, notes, bonds, TIPS, and FRNs) held in SOMA.",
"name": "Total Treasury Holdings",
"security": "treasury-total"
},
{
"description": "Aggregate of all mortgage-backed securities (MBS and CMBS) held in SOMA.",
"name": "Total Mortgage Holdings",
"security": "mortgage-total"
},
{
"description": "Total par value of all securities held in the System Open Market Account.",
"name": "Total SOMA Holdings",
"security": "total"
}
]
}
Description
Get Federal Reserve 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/holdings/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/holdings/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Federal Reserve Holdings Latest Snapshot
{
"date": "2025-11-26",
"latest": {
"date": "2025-11-26",
"mbs": 1500000.0,
"cmbs": 300000.0,
"tips": 500000.0,
"frn": 200000.0,
"notes_bonds": 2500000.0,
"bills": 1000000.0,
"agency": 800000.0,
"treasury_total": 4000000.0,
"mortgage_total": 1800000.0,
"total": 5800000.0
}
}
Description
Get Federal Reserve Holdings Historical 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 |
|---|---|---|---|---|---|
| start_date | string | query | No | Start date |
2024-01-01
|
| end_date | string | query | No | End date |
2024-01-31
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2024-06-01
|
| limit | integer | query | No | Max rows to return (<= 1000) |
500
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/holdings/historical?start_date=2024-01-01&end_date=2024-01-31&date_cursor=2024-06-01&limit=500"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/holdings/historical'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2024-01-01', 'end_date': '2024-01-31', 'date_cursor': '2024-06-01', 'limit': 500}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Federal Reserve Holdings Historical Data
{
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"holdings": [
{
"date": "2025-11-26",
"mbs": 1500000.0,
"cmbs": 300000.0,
"tips": 500000.0,
"frn": 200000.0,
"notes_bonds": 2500000.0,
"bills": 1000000.0,
"agency": 800000.0,
"treasury_total": 4000000.0,
"mortgage_total": 1800000.0,
"total": 5800000.0
}
]
}
Description
Get list of all Fed 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"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/operations'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of all Fed operations.
{
"operations": [
"repo",
"reverse-repo"
]
}
Description
Get time series data for a specific Fed operation type.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| operation | string (enum) | path | Yes | Fed operation type |
ENUM
|
| start_date | string | query | No | Start date |
2024-01-01
|
| end_date | string | query | No | End date |
2024-01-31
|
| unit | string (enum) | query | No | Unit for total_amount field in the response. |
ENUM
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2024-06-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/operations/repo?start_date=2024-01-01&end_date=2024-01-31&unit=millions&date_cursor=2024-06-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/operations/{operation}'
url = url.format(operation="repo")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2024-01-01', 'end_date': '2024-01-31', 'unit': 'millions', 'date_cursor': '2024-06-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series data for a specific Fed operation type.
{
"operation": "repo",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"series": [
{
"date": "2025-11-26",
"operation_type": "Repo",
"total_amount": 5000.0,
"total_amount_unit": "millions",
"num_counterparties": 7
}
]
}
Description
Get list of available Federal Reserve publications.
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/publications"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/publications'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available Federal Reserve publications.
{
"publications": [
{
"publication": "beige-book",
"name": "Beige Book",
"description": "The Beige Book is a report published by the Federal Reserve eight times a year, providing a snapshot of current economic conditions across the 12 Federal Reserve Districts."
}
]
}
Description
Get release dates for a specific Federal Reserve publication.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| publication | string (enum) | path | Yes | Publication name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/publications/beige-book"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/publications/{publication}'
url = url.format(publication="beige-book")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Release Dates for a specific Federal Reserve publication.
{
"publication": "beige-book",
"name": "Beige Book",
"description": "The Beige Book is a report published by the Federal Reserve eight times a year, providing a snapshot of current economic conditions across the 12 Federal Reserve Districts.",
"release_dates": [
"2025-11-26",
"2025-10-15",
"2025-08-20"
]
}
Description
Get details for a specific Federal Reserve publication.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| publication | string (enum) | path | Yes | Publication name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/publications/beige-book/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/publications/{publication}/latest'
url = url.format(publication="beige-book")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Successful Response
{}
Description
Get Federal Reserve Publication details and content for a specific release date.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| publication | string (enum) | path | Yes | Fed publication name |
ENUM
|
| date | string | path | Yes | Date of the publication release in YYYY-MM-DD format |
2023-01-25
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fed/publications/beige-book/release/2023-01-25"
import requests
url = 'https://api.empiricalmarkets.com/v1/fed/publications/{publication}/release/{date}'
url = url.format(publication="beige-book", date="2023-01-25")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Successful Response
{}
Insiders
Insider trading data and SEC Form 4 filings.
Description
Get list of available tickers with insider trading data.
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/insiders/tickers"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available tickers with insider trading data.
{
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get insider trading transaction reports 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 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
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
256
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/reports?start_date=2023-01-01&end_date=2023-12-31&limit=256"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/reports'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 256}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Successful Response
{
"ticker": "TSLA",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"reports": [
{
"ticker": "TSLA",
"filed_date": "2024-12-31",
"reporter": {
"name": "Musk Elon",
"title": "CEO"
},
"non_deriv_txs": {
"code": "G",
"description": "Bona fide gift",
"ownership": "I",
"price": 0.0,
"shares": 268000.0
},
"deriv_txs": {
"code": "S",
"description": "Sale",
"ownership": "D",
"price": 800.0,
"shares": 1000.0
},
"footnotes": {
"1": "The transaction was reported late due to a delay in filing the Form 4."
}
}
]
}
Description
Get list of insider transaction reporters 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 |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/reporters"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/reporters'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of insider transaction reporters for the given ticker.
{
"reporters": [
{
"reporter_name": "Musk Elon",
"reporter_title": "CEO"
}
]
}
Description
Get list of insider transaction codes and their descriptions across all 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/transactions/codes"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/transactions/codes'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of insider transaction codes and their descriptions across all tickers.
{
"codes": [
{
"code": "S",
"description": "Open market or private sale"
},
{
"code": "P",
"description": "Open market or private purchase"
}
]
}
Description
Get time series of insider non-derivative transactions given a transaction 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| code | string (enum) | path | Yes | Transaction code. |
ENUM
|
| 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
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/transactions/codes/P?start_date=2023-01-01&end_date=2023-12-31&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/transactions/codes/{code}'
url = url.format(ticker="AAPL", code="P")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series of insider transactions for the given ticker and transaction code.
{
"ticker": "TSLA",
"code": "G",
"code_description": "Bona fide gift",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"transactions": [
{
"ticker": "TSLA",
"filed_date": "2024-12-31",
"tx_instrument": "Common Stock",
"tx_code": "G",
"tx_shares": 268000.0,
"tx_price": 0.0,
"tx_ownership": "I",
"reporter_name": "Musk Elon",
"reporter_title": "CEO"
}
]
}
Description
Get list of insider derivative transaction codes and their descriptions across all 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/derivatives/codes"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/derivatives/codes'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of insider derivative transaction codes and their descriptions across all tickers.
{
"codes": [
{
"code": "S",
"description": "Open market or private sale"
},
{
"code": "P",
"description": "Open market or private purchase"
}
]
}
Description
Get time series of insider derivative transactions given a transaction 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| code | string (enum) | path | Yes | Transaction code. |
ENUM
|
| 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
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/derivatives/codes/P?start_date=2023-01-01&end_date=2023-12-31&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/derivatives/codes/{code}'
url = url.format(ticker="AAPL", code="P")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Successful Response
{
"ticker": "TSLA",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"transactions": [
{
"ticker": "TSLA",
"filed_date": "2024-12-31",
"tx_instrument": "Common Stock",
"tx_code": "G",
"tx_shares": 268000.0,
"tx_price": 0.0,
"tx_ownership": "I",
"reporter_name": "Musk Elon",
"reporter_title": "CEO"
}
]
}
Description
Get time series of insider sales volume 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 |
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
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/sales?start_date=2023-01-01&end_date=2023-12-31&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/sales'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series of insider sales volume for the given ticker.
{
"ticker": "TSLA",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"ticker": "TSLA",
"report_date": "2025-12-05",
"total_value": 132000
}
]
}
Description
Get insider sales 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 | Ticker symbol |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/sales/anomalies"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/sales/anomalies'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Insider sales anomalies for the given ticker.
{
"ticker": "TSLA",
"anomalies": [
{
"ticker": "TSLA",
"report_date": "2025-12-05",
"total_value": 132000,
"anomaly_type": "high"
}
]
}
Description
Get time series of insider purchase volume 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 |
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
|
| date_cursor | string | query | No | Cursor for pagination (filed_date from previous response). | — |
| limit | integer | query | No | Maximum number of records to return. |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/purchases?start_date=2023-01-01&end_date=2023-12-31&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/purchases'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series of insider purchase volume for the given ticker.
{
"ticker": "TSLA",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"ticker": "TSLA",
"report_date": "2025-12-05",
"total_value": 132000
}
]
}
Description
Get insider purchase 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 | Ticker symbol |
AAPL
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/tickers/AAPL/purchases/anomalies"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/tickers/{ticker}/purchases/anomalies'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Insider purchase anomalies for the given ticker.
{
"ticker": "TSLA",
"anomalies": [
{
"ticker": "TSLA",
"report_date": "2025-12-05",
"total_value": 132000,
"anomaly_type": "high"
}
]
}
Description
Get time series of insider sales volume for the entire market.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| 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
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2024-06-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/aggregates/sales?start_date=2023-01-01&end_date=2023-12-31&date_cursor=2024-06-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/aggregates/sales'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'date_cursor': '2024-06-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series of insider sales volume for the entire market.
{
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"report_date": "2025-12-05",
"ticker_count": 143,
"total_value": 267000000
}
]
}
Description
Get insider sales anomalies for the entire market.
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/insiders/aggregates/sales/anomalies"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/aggregates/sales/anomalies'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Insider sales anomalies for the entire market.
{
"anomalies": [
{
"report_date": "2025-12-05",
"ticker_count": 143,
"total_value": 267000000
}
]
}
Description
Get time series of insider purchase volume for the entire market.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| 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
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2024-06-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/insiders/aggregates/purchases?start_date=2023-01-01&end_date=2023-12-31&date_cursor=2024-06-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/aggregates/purchases'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2023-12-31', 'date_cursor': '2024-06-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series of insider purchase volume for the entire market.
{
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"report_date": "2025-12-05",
"ticker_count": 143,
"total_value": 267000000
}
]
}
Description
Get insider purchase anomalies for the entire market.
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/insiders/aggregates/purchases/anomalies"
import requests
url = 'https://api.empiricalmarkets.com/v1/insiders/aggregates/purchases/anomalies'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Insider purchase anomalies for the entire market.
{
"anomalies": [
{
"report_date": "2025-12-05",
"ticker_count": 143,
"total_value": 267000000
}
]
}
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())
Example Response
200
List of ticker symbols with fundamental data available.
{
"tickers": [
"AAPL",
"MSFT",
"GOOGL"
]
}
Description
Get the latest duration fundamental 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
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tickers/AAPL/duration/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/duration/latest'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Latest duration fundamental data for the ticker.
{
"ticker": "MSFT",
"data": [
{
"ticker": "MSFT",
"entity_name": "Microsoft Corporation",
"end_date": "2025-09-30T00:00:00",
"filed_date": "2025-10-29T00:00:00",
"tag": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
"value": 2641000000.0,
"accession_number": "0001193125-25-256321",
"fy": 2026,
"fp": "Q1",
"form": "10-Q",
"unit": "USD",
"taxonomy": "us_gaap",
"label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
"documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
"period_type": "instant",
"balance": "credit"
}
]
}
Description
Get all unique duration 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 (enum) | query | No | Which taxonomy to use. |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tickers/AAPL/duration/tags?taxonomy=all"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/duration/tags'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'taxonomy': 'all'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
All unique duration fundamental tags for the ticker.
{
"ticker": "JPM",
"tags": [
{
"tag": "Goodwill",
"label": "Goodwill",
"documentation": "Amount, after accumulated impairment loss, of asset...",
"period_type": "instant",
"balance": "debit"
}
]
}
Description
Get duration 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
|
| tag | string | path | Yes | Specific tag to filter the results |
Revenue
|
| start_date | string | query | No | Optional start date filter in YYYY-MM-DD format to filter results from that date onward |
2020-01-01
|
| end_date | string | query | No | Optional end date filter in YYYY-MM-DD format to filter results up to that date |
2023-01-01
|
| limit | integer | 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/tickers/AAPL/duration/tags/Revenue?start_date=2020-01-01&end_date=2023-01-01&limit=100"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/duration/tags/{tag}'
url = url.format(ticker="AAPL", tag="Revenue")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2020-01-01', 'end_date': '2023-01-01', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Duration fundamental time series data for the ticker.
{
"ticker": "MSFT",
"data": [
{
"ticker": "MSFT",
"entity_name": "Microsoft Corporation",
"end_date": "2025-09-30T00:00:00",
"filed_date": "2025-10-29T00:00:00",
"tag": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
"value": 2641000000.0,
"accession_number": "0001193125-25-256321",
"fy": 2026,
"fp": "Q1",
"form": "10-Q",
"unit": "USD",
"taxonomy": "us_gaap",
"label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
"documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
"period_type": "instant",
"balance": "credit"
}
]
}
Description
Get the latest instant fundamental 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
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tickers/AAPL/instant/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/instant/latest'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Latest instant fundamental data for the ticker.
{
"ticker": "MSFT",
"data": [
{
"ticker": "MSFT",
"entity_name": "Microsoft Corporation",
"end_date": "2025-09-30T00:00:00",
"filed_date": "2025-10-29T00:00:00",
"tag": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
"value": 2641000000.0,
"accession_number": "0001193125-25-256321",
"fy": 2026,
"fp": "Q1",
"form": "10-Q",
"unit": "USD",
"taxonomy": "us_gaap",
"label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
"documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
"period_type": "instant",
"balance": "credit"
}
]
}
Description
Get all unique instant 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 (enum) | query | No | Which taxonomy to use. |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/fundamentals/tickers/AAPL/instant/tags?taxonomy=all"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/instant/tags'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'taxonomy': 'all'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
All unique instant fundamental tags for the ticker.
{
"ticker": "JPM",
"tags": [
{
"tag": "Goodwill",
"label": "Goodwill",
"documentation": "Amount, after accumulated impairment loss, of asset...",
"period_type": "instant",
"balance": "debit"
}
]
}
Description
Get instant 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
|
| tag | string | path | Yes | Fundamental tag to filter by, e.g. Assets |
Assets
|
| revision | string (enum) | query | No | Which revision to use. 'first'=original filing, 'last'=most recent restatement, 'all'=every filing. The default is `last`. |
ENUM
|
| start_date | string | query | No | Optional start date filter in YYYY-MM-DD format |
2020-01-01
|
| end_date | string | query | No | Optional end date filter in YYYY-MM-DD format |
2023-01-01
|
| limit | integer | 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/tickers/AAPL/instant/tags/Assets?revision=all&start_date=2020-01-01&end_date=2023-01-01&limit=100"
import requests
url = 'https://api.empiricalmarkets.com/v1/fundamentals/tickers/{ticker}/instant/tags/{tag}'
url = url.format(ticker="AAPL", tag="Assets")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'revision': 'all', 'start_date': '2020-01-01', 'end_date': '2023-01-01', 'limit': 100}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Instant fundamental time series data for the ticker.
{
"ticker": "MSFT",
"data": [
{
"ticker": "MSFT",
"entity_name": "Microsoft Corporation",
"end_date": "2025-09-30T00:00:00",
"filed_date": "2025-10-29T00:00:00",
"tag": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
"value": 2641000000.0,
"accession_number": "0001193125-25-256321",
"fy": 2026,
"fp": "Q1",
"form": "10-Q",
"unit": "USD",
"taxonomy": "us_gaap",
"label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
"documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
"period_type": "instant",
"balance": "credit"
}
]
}
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())
Example Response
200
Successful Response
{
"collection_ids": {
"description": "Percent Change From Preceding Period in Real Gross Domestic Product",
"id": "gdp-pct-change",
"topics": [
"gdp"
]
}
}
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())
Example Response
200
Successful Response
{
"id": "gdp-pct-change",
"description": "Percent Change From Preceding Period in Real Gross Domestic Product",
"topics": [
"gdp"
]
}
Description
Get available Macro 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 | path | Yes | The collection ID to retrieve metadata for. |
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/collections/gdp-nominal/series?frequency=M"
import requests
url = 'https://api.empiricalmarkets.com/v1/macro/collections/{collection_id}/series'
url = url.format(collection_id="gdp-nominal")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'frequency': 'M'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Successful Response
{
"collection_id": "gdp-pct-change",
"series_ids": {
"frequency": "Q",
"series_id": "EMPLR600AAB",
"series_name": "Gross private domestic investment"
}
}
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 |
|---|---|---|---|---|---|
| collection_id | string | path | Yes | The collection ID to retrieve metadata for. |
gdp-nominal
|
| series_id | string | path | Yes | The Series ID to retrieve data for. | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/macro/collections/gdp-nominal/series/example_value"
import requests
url = 'https://api.empiricalmarkets.com/v1/macro/collections/{collection_id}/series/{series_id}'
url = url.format(collection_id="gdp-nominal", series_id="example_value")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Successful Response
{
"collection_id": "gdp-pct-change",
"series_id": "EMPLR600AAB",
"data": {
"collection_id": "gdp-pct-change",
"frequency": "Q",
"period_end": "2023-03-31T00:00:00",
"revision": 1,
"series_id": "EMPLR600AAB",
"series_name": "Gross private domestic investment",
"value": -7.1,
"year": 2023
}
}
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())
Example Response
200
Successful Response
{
"year": 2024,
"events": [
{
"date": "2024-01-03T00:00:00",
"time": "10:00 AM",
"release": "Metropolitan Area Employment and Unemployment",
"target_year": 2023,
"target_month": 11
}
]
}
Ohlc
Open, High, Low, Close price data for stocks and other securities.
Description
Returns available asset classes and time series frequencies supported by the OHLC API.
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/ohlc"
import requests
url = 'https://api.empiricalmarkets.com/v1/ohlc'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Available OHLC asset classes and time series frequencies.
{
"asset_class": [
"all",
"etfs",
"equities"
],
"frequencies": [
"D"
]
}
Description
Get the latest available OHLC data for all 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 (enum) | query | No | Asset class to filter by. |
ENUM
|
| tickers | array | query | No | Optional list of ticker symbols to filter by. |
['AAPL', 'SPY']
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ohlc/latest?asset_class=all&tickers=AAPL&tickers=SPY"
import requests
url = 'https://api.empiricalmarkets.com/v1/ohlc/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'asset_class': 'all', 'tickers': ['AAPL', 'SPY']}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Successful Response
{
"asset_class": "",
"frequency": "",
"data": [
{
"date": "2023-01-03",
"ticker": "AAPL",
"asset_class": "",
"frequency": "",
"open": 150.0,
"high": 155.0,
"low": 149.0,
"close": 154.0,
"volume": 31297500,
"pct_change": 0.0152
}
]
}
Description
Get all available OHLC 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 (enum) | query | No | Asset class to filter by. |
ENUM
|
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())
Example Response
200
List of available tickers with OHLC data.
{
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get OHLC prices 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 | Ticker symbol to retrieve price data for. |
AAPL
|
| start_date | string | query | No | Inclusive start date YYYY-MM-DD |
2010-01-01
|
| end_date | string | query | No | Inclusive end date YYYY-MM-DD |
2025-12-31
|
| date_cursor | string | query | No | Date Pagination cursor (date string from previous response's next_cursor) |
2015-01-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
| order | string | query | No | Order of the time series data, either 'asc' for ascending or 'desc' for descending by date. |
asc
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/ohlc/tickers/AAPL?start_date=2010-01-01&end_date=2025-12-31&date_cursor=2015-01-01&limit=756&order=asc"
import requests
url = 'https://api.empiricalmarkets.com/v1/ohlc/tickers/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2010-01-01', 'end_date': '2025-12-31', 'date_cursor': '2015-01-01', 'limit': 756, 'order': 'asc'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
OHLC prices time series for the given ticker.
{
"ticker": "AAPL",
"frequency": "",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"date": "2023-01-03",
"ticker": "AAPL",
"asset_class": "",
"frequency": "",
"open": 150.0,
"high": 155.0,
"low": 149.0,
"close": 154.0,
"volume": 31297500
}
]
}
Technicals
Description
Get list of available technical indicators and associated metadata.
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/technicals"
import requests
url = 'https://api.empiricalmarkets.com/v1/technicals'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available technical indicators and associated metadata.
{
"indicators": [
{
"indicator": "relative-strength-index",
"kind": "bounded",
"name": "Relative Strength Index",
"short_name": "RSI",
"description": "A momentum oscillator that measures the speed and change of price movements, typically used to identify overbought or oversold conditions in a security.",
"default_window": 14
}
]
}
Description
Get metadata for a specific technical indicator.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| indicator | string (enum) | path | Yes | Technical indicator |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/technicals/relative-strength-index"
import requests
url = 'https://api.empiricalmarkets.com/v1/technicals/{indicator}'
url = url.format(indicator="relative-strength-index")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Metadata for the specified technical indicator.
{
"indicator": "relative-strength-index",
"kind": "bounded",
"name": "Relative Strength Index",
"short_name": "RSI",
"description": "A momentum oscillator that measures the speed and change of price movements, typically used to identify overbought or oversold conditions in a security.",
"default_window": 14
}
Description
Get list of available tickers for a specific technical indicator.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| indicator | string (enum) | path | Yes | Technical indicator |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/technicals/relative-strength-index/tickers"
import requests
url = 'https://api.empiricalmarkets.com/v1/technicals/{indicator}/tickers'
url = url.format(indicator="relative-strength-index")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available tickers for the specified technical indicator.
{
"indicator": "relative-strength-index",
"name": "Relative Strength Index",
"description": "A momentum oscillator that measures the speed and change of price movements, typically used to identify overbought or oversold conditions in a security.",
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get time series data for a specific technical indicator and 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 |
|---|---|---|---|---|---|
| indicator | string (enum) | path | Yes | Technical indicator |
ENUM
|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| window | integer | query | No | Number of days to use for calculating the technical indicator |
14
|
| start_date | string | query | No | Inclusive start date YYYY-MM-DD |
2014-01-01
|
| end_date | string | query | No | Inclusive end date YYYY-MM-DD |
2020-12-31
|
| date_cursor | string | query | No | Date Pagination cursor (date string from previous response's next_cursor) |
2015-01-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/technicals/relative-strength-index/tickers/AAPL?window=14&start_date=2014-01-01&end_date=2020-12-31&date_cursor=2015-01-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/technicals/{indicator}/tickers/{ticker}'
url = url.format(indicator="relative-strength-index", ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'window': 14, 'start_date': '2014-01-01', 'end_date': '2020-12-31', 'date_cursor': '2015-01-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series data for the specified technical indicator and ticker.
{
"indicator": "relative-strength-index",
"ticker": "MSFT",
"window": 14,
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"date": "2023-01-01",
"ticker": "MSFT",
"indicator": "relative-strength-index",
"value": 45.67,
"lower": null,
"upper": null
}
]
}
Quant
Description
Get list of available quant signals.
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/quant/signals"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available quant signals.
{
"signals": [
{
"description": "Drift Strength measures the persistence of a security's recent price trend relative to its own volatility, scored against a universe of other securities",
"signal": "drift-strength"
},
{
"description": "Flow Ratio measures the total monetary value of shares traded for a security relative to a universe of other securities. The value is expressed in deviations from the security's own typical level.",
"signal": "flow-ratio"
},
{
"description": "Relative Return measures how a security's return compares to the typical return of a universe of other securities.",
"signal": "relative-return"
},
{
"description": "Relative Gap measures how a security's overnight gap compares to the typical overnight gap of a universe of other securities.",
"signal": "relative-gap"
},
{
"description": "Relative Volatility measures how a security's recent volatility compares to the typical volatility of a universe of other securities.",
"signal": "relative-volatility"
}
]
}
Description
Get information about a specific quant signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | Quant signal name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/signals/drift-strength"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals/{signal}'
url = url.format(signal="drift-strength")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Information about the given quant signal.
{
"signal": "flow-ratio",
"name": "Flow Ratio",
"description": "Flow Ratio measures the total monetary value of shares traded for a security relative to a universe of other securities. The value is expressed in deviations from the security's own typical level.",
"variants": [
"default"
],
"universes": [
"all",
"equities",
"etfs"
],
"value_type": "deviation"
}
Description
Get quant signal anomalies across all tickers for a given date.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | Quant signal name |
ENUM
|
| universe | string (enum) | query | No | Universe of the quant signal |
ENUM
|
| variant | string | query | No | Variant filter |
default
|
| date | string | query | No | The date to retrieve anomalies for. Defaults to latest available date | — |
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/signals/['drift-strength', 'flow-ratio', 'relative-return', 'relative-gap', 'relative-volatility']/anomalies?universe=all&variant=default"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals/{signal}/anomalies'
url = url.format(signal="['drift-strength', 'flow-ratio', 'relative-return', 'relative-gap', 'relative-volatility']")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'universe': 'all', 'variant': 'default'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Quant Signal anomalies across all tickers for the given date.
{
"signal": "",
"variant": "default",
"universe": "equities",
"value_type": "deviation",
"anomalies": [
{
"date": "2023-01-01",
"ticker": "AAPL",
"signal": "flow-ratio",
"value": 2.1
}
]
}
Description
Get list of available tickers for a given quant signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | Quant signal name |
ENUM
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/signals/drift-strength/tickers"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals/{signal}/tickers'
url = url.format(signal="drift-strength")
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available tickers for the given quant signal.
{
"signal": "flow-ratio",
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get Quant Signal 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 |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | Quant signal name |
ENUM
|
| ticker | string | path | Yes | Stock ticker symbol |
AAPL
|
| variant | string | query | No | Variant of the quant signal |
default
|
| universe | string (enum) | query | No | Universe of the quant signal |
ENUM
|
| start_date | string | query | No | Start date (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | End date (YYYY-MM-DD) |
2025-12-31
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2023-12-29
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/signals/drift-strength/tickers/AAPL?variant=default&universe=all&start_date=2023-01-01&end_date=2025-12-31&date_cursor=2023-12-29&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals/{signal}/tickers/{ticker}'
url = url.format(signal="drift-strength", ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'variant': 'default', 'universe': 'all', 'start_date': '2023-01-01', 'end_date': '2025-12-31', 'date_cursor': '2023-12-29', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Time series for the given ticker and quant signal.
{
"signal": "flow-ratio",
"ticker": "AAPL",
"variant": "default",
"universe": "equities",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"date": "2023-01-01",
"ticker": "AAPL",
"signal": "flow-ratio",
"value": 2.1
}
]
}
Description
Get historical anomalies for a given ticker and quant signal.
Authentication
This endpoint requires a valid access token. Include your token in the Authorization: Bearer <token> header.
Parameters
| Name | Type | In | Required | Description | Example |
|---|---|---|---|---|---|
| signal | string (enum) | path | Yes | Quant signal name |
ENUM
|
| ticker | string | path | Yes | Stock ticker symbol |
AAPL
|
| variant | string | query | No | Variant of the quant signal |
default
|
| universe | string (enum) | query | No | Universe of the quant signal |
ENUM
|
| start_date | string | query | No | Start date (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | End date (YYYY-MM-DD) |
2025-12-31
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/signals/drift-strength/tickers/AAPL/anomalies?variant=default&universe=all&start_date=2023-01-01&end_date=2025-12-31"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/signals/{signal}/tickers/{ticker}/anomalies'
url = url.format(signal="drift-strength", ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'variant': 'default', 'universe': 'all', 'start_date': '2023-01-01', 'end_date': '2025-12-31'}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Historical anomalies for the given ticker and quant signal.
{
"ticker": "AAPL",
"signal": "",
"variant": "default",
"universe": "equities",
"value_type": "deviation",
"anomalies": [
{
"date": "2023-01-01",
"ticker": "AAPL",
"signal": "flow-ratio",
"value": 2.1
}
]
}
Description
Get the latest Capital Asset Pricing Model (CAPM) data for all tickers.
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/quant/capm/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/capm/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Latest Capital Asset Pricing Model (CAPM) data for all tickers.
{
"data": [
{
"ticker": "AAPL",
"date": "2023-01-01",
"period": 22,
"beta": 1.2,
"alpha": 0.05
}
]
}
Description
Get list of available tickers for Capital Asset Pricing Model (CAPM) data.
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/quant/capm/tickers"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/capm/tickers'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available tickers for Capital Asset Pricing Model (CAPM) data
{
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get Capital Asset Pricing Model (CAPM) 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 | Ticker symbol |
AAPL
|
| start_date | string | query | No | Start date (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | End date (YYYY-MM-DD) |
2025-12-31
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2023-12-29
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/capm/tickers/AAPL?start_date=2023-01-01&end_date=2025-12-31&date_cursor=2023-12-29&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/capm/tickers/{ticker}'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2025-12-31', 'date_cursor': '2023-12-29', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Capital Asset Pricing Model (CAPM) time series data for the given ticker.
{
"ticker": "AAPL",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"ticker": "AAPL",
"date": "2023-01-01",
"period": 22,
"beta": 1.2,
"alpha": 0.05
}
]
}
Description
Get list of available tickers for correlation data.
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/quant/correlation/tickers"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/correlation/tickers'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available tickers for correlation analysis.
{
"tickers": [
"AAPL",
"MSFT",
"TSLA"
]
}
Description
Get the latest correlation data for a given ticker against all other 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| limit | integer | query | Yes | Limit the number of correlated tickers returned |
10
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/correlation/tickers/AAPL/latest?limit=10"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/correlation/tickers/{ticker}/latest'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'limit': 10}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Latest correlation data for the given ticker against all other tickers.
{
"ticker": "AAPL",
"date": "2023-01-01",
"data": [
{
"ticker_a": "AAPL",
"ticker_b": "MSFT",
"period": 22,
"date": "2023-01-01",
"value": 0.85
}
]
}
Description
Get the most similar stocks to the given ticker based on price action.
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 |
AAPL
|
| threshold | number | query | No | Minimum correlation threshold |
0.7
|
| top_n | integer | query | No | Number of peers to return |
10
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/correlation/tickers/AAPL/peers?threshold=0.7&top_n=10"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/correlation/tickers/{ticker}/peers'
url = url.format(ticker="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'threshold': 0.7, 'top_n': 10}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Normalized price series for the most similar stocks to the given ticker.
{
"ticker": "AAPL",
"threshold": 0.8,
"top_n": 5,
"peers": [
"MSFT",
"GOOGL",
"AMZN"
],
"date": "2025-01-01T00:00:00Z",
"data": [
{
"ticker": "MSFT",
"correlation": 0.92,
"price_series": [
{
"date": "2023-01-01",
"price_norm": 1.15
}
]
}
]
}
Description
Get pairwise correlation time series for a given pair of 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 |
|---|---|---|---|---|---|
| ticker | string | path | Yes | Ticker symbol |
AAPL
|
| ticker_b | string | path | Yes | Second stock ticker symbol |
AAPL
|
| start_date | string | query | No | Start date (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | End date (YYYY-MM-DD) |
2025-12-31
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2023-12-29
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/quant/correlation/tickers/AAPL/pairwise/AAPL?start_date=2023-01-01&end_date=2025-12-31&date_cursor=2023-12-29&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/quant/correlation/tickers/{ticker}/pairwise/{ticker_b}'
url = url.format(ticker="AAPL", ticker_b="AAPL")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2025-12-31', 'date_cursor': '2023-12-29', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Pairwise correlation time series between two tickers.
{
"ticker_a": "AAPL",
"ticker_b": "MSFT",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"ticker_a": "AAPL",
"ticker_b": "MSFT",
"period": 22,
"date": "2023-01-01",
"value": 0.85
}
]
}
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"
import requests
url = 'https://api.empiricalmarkets.com/v1/treasury'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
List of available yield curve maturities.
{
"maturities": [
"1mo",
"2mo",
"3mo",
"4mo",
"6mo",
"1yr",
"2yr",
"3yr",
"5yr",
"7yr",
"10yr",
"20yr",
"30yr"
]
}
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/latest"
import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/latest'
headers = {'Authorization': 'Bearer <your_access_token>'}
response = requests.get(url, headers=headers)
print(response.json())
Example Response
200
Latest full yield curve snapshot.
{
"data": [
{
"date": "2025-12-15T00:00:00",
"maturity": "2yr",
"rate": 3.51
},
{
"date": "2025-12-15T00:00:00",
"maturity": "5yr",
"rate": 3.73
},
{
"date": "2025-12-15T00:00:00",
"maturity": "10yr",
"rate": 4.18
}
]
}
Description
Get treasury yield curve data for a specific maturity.
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 (enum) | path | Yes | Maturity to filter by (e.g., '1mo', '10yr') |
ENUM
|
| start_date | string | query | No | Start date (YYYY-MM-DD) | — |
| end_date | string | query | No | Inclusive end date (YYYY-MM-DD) | — |
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2020-01-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/maturity/1mo?date_cursor=2020-01-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/maturity/{maturity}'
url = url.format(maturity="1mo")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'date_cursor': '2020-01-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Treasury yield curve data for the specified maturity.
{
"maturity": "",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"date": "2025-12-09T00:00:00",
"maturity": "10yr",
"rate": 4.18
},
{
"date": "2025-12-10T00:00:00",
"maturity": "10yr",
"rate": 4.13
}
]
}
Description
Get treasury yield curve spread data between two maturities.
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 maturity |
10yr
|
| maturity_b | string | path | Yes | Subtrahend maturity |
2yr
|
| start_date | string | query | No | Start date (YYYY-MM-DD) |
2023-01-01
|
| end_date | string | query | No | Inclusive end date (YYYY-MM-DD) |
2025-12-31
|
| date_cursor | string | query | No | Date pagination cursor from previous response's next_cursor |
2020-01-01
|
| limit | integer | query | No | Max rows to return (<= 1260) |
756
|
Example Request
curl -X GET -H "Authorization: Bearer <your_access_token>" "https://api.empiricalmarkets.com/v1/treasury/spread/10yr/2yr?start_date=2023-01-01&end_date=2025-12-31&date_cursor=2020-01-01&limit=756"
import requests
url = 'https://api.empiricalmarkets.com/v1/treasury/spread/{maturity_a}/{maturity_b}'
url = url.format(maturity_a="10yr", maturity_b="2yr")
headers = {'Authorization': 'Bearer <your_access_token>'}
params = {'start_date': '2023-01-01', 'end_date': '2025-12-31', 'date_cursor': '2020-01-01', 'limit': 756}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Example Response
200
Treasury yield curve spread data between the specified maturities.
{
"maturity_a": "",
"maturity_b": "",
"date_cursor": {
"limit": 756,
"count": 756,
"has_more": true,
"next_cursor": "2023-01-01"
},
"data": [
{
"date": "2025-12-09T00:00:00",
"maturity_a": "10yr",
"maturity_b": "2yr",
"spread": 0.57
},
{
"date": "2025-12-10T00:00:00",
"maturity_a": "10yr",
"maturity_b": "2yr",
"spread": 0.59
}
]
}