/getAllSymbolsReturns all indicators exposed by the Data API, excluding internal and relative-trend records.
CatalogItem[]chart_namestringurlstringExample responseJSON
[
{
"chart_name": "SPY Optix",
"url": "etf_spy"
}
]
Retrieve subscribed SentimenTrader indicators, historical readings, sentiment values, and intraday series through a read-only REST API.
api.sentimentrader.com. The page is hosted with the Tools and Backtest references, but the Data API endpoints are served by the legacy /ws application.curl -u "you@example.com:your-password" \ "https://api.sentimentrader.com/ws/getSymbolDataLimitDays/etf_spy?days=5"
| Group | Endpoint | Purpose |
|---|---|---|
| Catalog | /getAllSymbols | All available indicators |
| Catalog | /getAllSymbolswithIndexes | Indicators with default market symbols |
| Catalog | /getAllUserSelectedSymbols | Indicators available to the current user |
| Catalog | /getAllUserSelectedSymbolsWithIndexes | User indicators with market symbols |
| Catalog | /getModelData | Model indicators |
| Catalog | /getModelSymbolswithIndexes | Model indicators with market symbols |
| Catalog | /getGroupSymbols/{group} | Indicators in a named group |
| History | /getSymbolData/{symbol} | Complete indicator history |
| History | /getSymbolSentimentData/{symbol} | History with sentiment |
| History | /getSymbolDataLimitDays/{symbol} | Recent indicator periods |
| History | /getSymbolDataSentimentLimitDays/{symbol} | Recent periods with sentiment |
| Snapshot | /getTodayData | Latest daily values |
| Snapshot | /getTodayDataIndexes | Latest values with market symbols |
| Snapshot | /getSymbolLimitDate/{symbol} | One symbol on one date |
| Snapshot | /getAllDataForDate | All subscribed values on one date |
| Bulk | /getAllSymbolDataLimitDays | Recent data for all subscribed indicators |
| Intraday | /getIntradaySymbols | Available intraday symbols |
| Intraday | /getSymbolIntradayHistory/{symbol} | Complete intraday history |
| Intraday | /getSymbolIntradayLimitDays/{symbol} | Recent intraday periods |
| Intraday | /getTodayIntradayData | Records from the latest available date |
| Custom | /getUserIndicators | Custom indicator definitions |
| Custom | /getUserIndicatorData | Calculated custom indicator data |
Send your SentimenTrader account email and password with HTTP Basic authentication. Access also requires an eligible Data subscription.
# cURL curl -u "EMAIL:PASSWORD" \ "https://api.sentimentrader.com/ws/getAllSymbols" # Python requests.get( "https://api.sentimentrader.com/ws/getAllSymbols", auth=(email, password), timeout=30, )
| Requirement | Behavior |
|---|---|
| Credentials | Validated against the SentimenTrader user account. |
| Eligible plans | Data, Light Data Yearly, and Premium Data Yearly plans are accepted by the current service. |
| Indicator access | Responses may be filtered to the user's selected indicators and plan-level base indicators. |
| Transport | Always use HTTPS. Basic credentials are encoded, not encrypted by the header itself. |
The service uses legacy response shapes. Read these rules before binding responses to typed models.
| Convention | Contract |
|---|---|
| Method | All documented requests use GET. |
| Symbol field | Catalog endpoints return url. Use this value as the path {symbol}. |
| Historical shape | Dates are normally object keys, not a date field in an array element. |
| Date format | Date filters require YYYYMMDD, for example 20230103. |
| Periods | The days query parameter counts data periods. Bulk history accepts 1 through 90. |
| Legacy encoding | Some deployments return a JSON string containing serialized JSON. If the first decode yields a string, decode that string once more. |
chart_url. The implementation returns url. It also prints getAllUserSelectedSymbolswithIndexes, while the implemented route uses an uppercase WithIndexes.Discover indicator identifiers before requesting history. Catalog values are metadata; the url value is the API symbol.
/getAllSymbolsReturns all indicators exposed by the Data API, excluding internal and relative-trend records.
CatalogItem[]chart_namestringurlstring[
{
"chart_name": "SPY Optix",
"url": "etf_spy"
}
]/getAllSymbolswithIndexesReturns the full indicator catalog with the default market symbol used for comparison. Missing market symbols default to SPX.
CatalogItemWithMarket[]chart_namestringurlstringmarket_symbolstring[
{
"chart_name": "SPY Optix",
"url": "etf_spy",
"market_symbol": "SPX"
}
]/getAllUserSelectedSymbolsReturns the catalog filtered by the authenticated user's indicator selections and plan permissions.
CatalogItem[]chart_namestringurlstring[
{
"chart_name": "SPY Optix",
"url": "etf_spy"
}
]/getAllUserSelectedSymbolsWithIndexesReturns the user's available indicators with their default comparison symbols. URL paths are case-sensitive; use the uppercase W shown here.
CatalogItemWithMarket[]chart_namestringurlstringmarket_symbolstring[
{
"chart_name": "Smart Money / Dumb Money Confidence Spread",
"url": "model_smart_dumb_spread",
"market_symbol": "SPX"
}
]/getModelDataReturns subscribed indicators whose metadata subtype is model.
CatalogItem[]chart_namestringurlstring[
{
"chart_name": "Macro Index Model",
"url": "model_macro_index"
}
]/getModelSymbolswithIndexesReturns model indicators with their default comparison symbols. This implemented endpoint was omitted from the v2.4 PDF.
CatalogItemWithMarket[]chart_namestringurlstringmarket_symbolstring[
{
"chart_name": "Macro Index Model",
"url": "model_macro_index",
"market_symbol": "SPX"
}
]/getGroupSymbols/{group}Returns indicators assigned to a metadata group. This implemented endpoint was omitted from the v2.4 PDF.
group path · requiredCatalogItem[]chart_namestringurlstring[
{
"chart_name": "SPY Optix",
"url": "etf_spy"
}
]Frequency follows the selected indicator. The API does not resample a series based on the endpoint.
/getSymbolData/{symbol}Returns the complete available history for one indicator, ordered from oldest to newest.
symbol path · catalog urlRecord<ISO datetime, Reading>datetime keystringclosenumber{
"2026-07-16T00:00:00.000": { "close": 10 },
"2026-07-17T00:00:00.000": { "close": 10 }
}Seasonality-month symbols are an exception and return symbol, month, TotReturn, AvgReturn, and std.
/getSymbolSentimentData/{symbol}Returns historical readings with the associated SentimenTrader sentiment rank or reading.
symbol path · requiredRecord<ISO datetime, SentimentReading>datetime keystringclosenumbersentimentnumber{
"2025-01-08T00:00:00.000": {
"close": 51.6,
"sentiment": 64.2
}
}/getSymbolDataLimitDays/{symbol}?days={n}Returns the last n periods for one indicator, sorted from oldest to newest.
symbol path · requireddays query · positive integerRecord<ISO datetime, Reading>datetime keystringclosenumber{
"2026-07-16T00:00:00.000": { "close": 10 },
"2026-07-17T00:00:00.000": { "close": 10 }
}/getSymbolDataSentimentLimitDays/{symbol}?days={n}Returns recent indicator readings with sentiment and the default comparison symbol.
symbol path · requireddays query · positive integerRecord<ISO datetime, MarketSentimentReading>datetime keystringclosenumbersentimentnumbermarket_symbolstring{
"2026-07-17T00:00:00.000": {
"close": 10,
"sentiment": 1,
"market_symbol": "AAPL"
}
}Use snapshot endpoints for compact cross-sectional data, or request a strict calendar date in YYYYMMDD form.
/getTodayDataReturns the latest stored value and sentiment reading for each subscribed indicator. “Today” means the latest metadata value and may differ by indicator.
Record<numeric key, Snapshot>numeric keystringnamestringindicatorstringlast_closenumberupdate_dateISO datetime stringsentiment_valuestring{
"0": {
"name": "Smart Money / Dumb Money Confidence Spread",
"indicator": "model_smart_dumb_spread",
"last_close": -22,
"update_date": "2026-07-17T00:00:00.000",
"sentiment_value": "4"
}
}/getTodayDataIndexesReturns the same snapshot as getTodayData, plus each indicator's default comparison symbol.
Record<numeric key, SnapshotWithMarket>numeric keystringnamestringindicatorstringlast_closenumberupdate_dateISO datetime stringsentiment_valuestringmarket_symbolstring{
"0": {
"name": "Smart Money / Dumb Money Confidence Spread",
"indicator": "model_smart_dumb_spread",
"last_close": -22,
"update_date": "2026-07-17T00:00:00.000",
"sentiment_value": "4",
"market_symbol": "SPX"
}
}/getSymbolLimitDate/{symbol}?date={YYYYMMDD}Returns a single indicator value for the requested date. The actual payload is date-keyed and contains close.
symbol path · requireddate query · YYYYMMDDRecord<ISO datetime, Reading>datetime keystringclosenumber{
"2026-07-17T00:00:00.000": { "close": 10 }
}/getAllDataForDate?date={YYYYMMDD}Returns available values and sentiment readings for the requested date, filtered to the authenticated user's indicator access.
date query · YYYYMMDDRecord<indicator, Snapshot>indicator keystringnamestringlast_closenumberupdate_datedate stringsentiment_valuenumber{
"model_score_short": {
"name": "Short-term Optimism Index (Optix)",
"last_close": 42,
"update_date": "2026-07-17",
"sentiment_value": 4
}
}Fetch multiple subscribed series in one request when building a recent-data snapshot.
/getAllSymbolDataLimitDays?days={n}Returns recent cached data grouped by indicator symbol. The current implementation reads one cached record set per requested period.
days query · integer from 1 to 90Record<indicator, Reading[]>indicator keystringdatedate stringclosenumber{
"PR_relvolatility_60d": [
{ "date": "2026-04-02", "close": 2.08 }
]
}Intraday series use 30-minute periods. The limited-history implementation calculates 13 records per market day.
/getIntradaySymbolsReturns the currently supported intraday indicators. The response is keyed by chart_name.
Record<chart_name, IntradaySymbol>chart_name keystringurlstringmarket_symbolstring{
"S&P 500": {
"url": "SPX",
"market_symbol": "SPX"
}
}/getSymbolIntradayHistory/{symbol}Returns all available intraday records for one symbol, ordered from oldest to newest.
symbol path · intraday catalog urlRecord<ISO datetime, IntradayReading>datetime keystringclosenumbermarket_symbolstring{
"2025-01-08T09:30:00.000": {
"close": 0.82,
"market_symbol": "SPX"
}
}/getSymbolIntradayLimitDays/{symbol}?days={n}Returns approximately days × 13 intraday records for one symbol.
symbol path · requireddays query · positive integerRecord<ISO datetime, IntradayReading>datetime keystringclosenumbermarket_symbolstring{
"2026-07-17T10:00:00.000": { "close": 7473.11, "market_symbol": "SPX" },
"2026-07-17T10:30:00.000": { "close": 7488.85, "market_symbol": "SPX" }
}/getTodayIntradayDataReturns all non-index intraday records from the latest date present in the database. It is not limited to one latest record per symbol.
Record<numeric key, LatestIntradayReading>numeric keystringdatetimeISO datetime stringclosenumbersymbolstringmarket_symbolstring{
"0": {
"datetime": "2026-07-17T16:00:00.000",
"close": 62.0184,
"symbol": "VXN_Strength",
"market_symbol": "SPX"
}
}These endpoints were added after the v2.4 PDF. They expose indicators created in the SentimenTrader web application through the same Basic-authenticated Data API.
/getUserIndicatorsReturns all custom indicator records for the authenticated account by default, ordered newest first. Query parameters are forwarded to the custom-indicator service.
all query · default trueordering query · default -create_dateCustomIndicator[]indicator_1_urlstringindicator_2_urlstringnamestringurlstringupper_extreme_valuenumberlower_extreme_valuenumbertimeframestringmastringcalculatestringcreate_dateISO datetime stringAdditional calculation settings can include indicator_weight, mul_indicator, combine_type, benchmark, next_process, and tech_code; some values may be null.
[
{
"indicator_1_url": "XLE",
"indicator_2_url": "crude",
"name": "XLE Crude ROC1 Spread",
"url": "sy9192-sy9218-1roc_1roc_1-0-0-sh0_c|sh0_c",
"timeframe": "daily",
"calculate": "spread",
"create_date": "2026-07-14T12:12:19Z"
}
]/getUserIndicatorData?url={indicator}Calculates or retrieves data for one custom indicator owned by the authenticated account.
url query · required indicator identifierCustomIndicatorReading[]DTISO datetime stringclosenumbersymbolstring[
{
"DT": "1998-12-23T00:00:00",
"close": -2.6607,
"symbol": "XLE Crude ROC1 Spread"
}
]The legacy API may express an application error in the response body even when an intermediary reports a successful HTTP response. Check both the HTTP code and payload.
| Status | Meaning |
|---|---|
| 401 | Credentials are invalid or the account does not have an eligible Data plan. |
| 404 | The symbol or group was not found. |
| 405 | The authenticated user has not subscribed to the requested indicator. |
| 406 | The date is not in YYYYMMDD form. |
| 410 | Bulk days is outside the accepted 1 through 90 range. |
| 503 | Catalog data is unavailable. Retry after a short delay. |
| 504 | The downstream custom-indicator service timed out. |
The source implementation limits trial accounts to the last 90 records for full-history requests. This supersedes the PDF statement that trial history is approximately one year.
The v2.4 service does not implement a documented request-rate limit. Keep bulk requests bounded, cache catalog responses, and prefer the bulk recent-history endpoint over many repeated symbol requests.