/healthHealth check
Response
statusstringversionstringtimestampstring (date-time)dbobjectreachablebooleanlatencyMsintegerErrors
503Public API · v1.0.0
A production-ready JSON stock screener API covering screeners, options flow, chart patterns, trends and market breadth data. Choose direct API access or subscribe via the RapidAPI marketplace.
Every screener, pattern and options flow endpoint on this page is the same one the site itself calls. If you want the model to query it for you instead of calling it yourself, the same data is exposed over MCP on the connector page.
Authentication is a single header, responses are plain JSON, and the endpoints below are documented with their parameters and rate limits. That makes it a stock market data API for developers who would rather query the data than read a dashboard.
https://stockmarketscan.com/api/v1Two authentication paths are supported. Direct API key holders generate their own credentials. RapidAPI subscribers use the marketplace’s standard headers and automatically receive Pro-tier access.
Subscribe on the marketplace. All subscribers get Pro tier.
X-RapidAPI-Key: ...X-RapidAPI-Host: stockmarketscan.comLimits apply per user. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
| Plan | Per minute | Per day |
|---|---|---|
| Free | No API access | |
| Basic | 15 req | 500 req |
| Pro | 30 req | 2,000 req |
| RapidAPI | Per RapidAPI plan + 10,000/day backend safety cap | |
All errors return a JSON body with error, code, and a tracing X-Request-Id header. The requestId field appears only on 500 INTERNAL_ERROR responses — include it when reporting issues.
{
"error": "Human-readable message.",
"code": "MACHINE_READABLE_CODE",
"requestId": "uuid-for-tracing"
}Service health and database probe — public, no auth.
/healthstatusstringversionstringtimestampstring (date-time)dbobjectreachablebooleanlatencyMsinteger50324 curated screeners — full table data, columns, and tier metadata.
/screenerstierenum("free" | "basic" | "pro")totalintegeraccessibleintegerscreenersarray<object>slugstringnamestringdescriptionstringcategorystringtierstringaccessiblebooleancolumnsarray<object>keystringlabelstringtypestring401403429/screeners/{slug}| Name | In | Type | Notes |
|---|---|---|---|
slug* | path | string | |
page | query | integer | default: 1 · 1–10000 |
limit | query | integer | default: 50 · 1–500 |
screenerobjectslugstringnamestringtierstringpaginationobjectpageintegerlimitintegertotalintegertotalPagesintegerdataarray<object>401403404429Chart pattern detection per symbol or across screener cohorts.
/patterns/{symbol}| Name | In | Type | Notes |
|---|---|---|---|
symbol* | path | string | |
interval | query | enum("1d" | "1wk") | default: "1d" |
symbolstringintervalstringcomputedAtstringcandleCountintegerpatternsarray<object>400401429/patternsscreenersarray<string>requiredpatternsarray<string>intervalenum("1d" | "1wk")default: "1d"limitintegerdefault: 100 · 1–500Max stocks per screener group (groups get truncated: true when capped).
object
400401429Daily aggregated flow, per-symbol timelines, high-conviction signals with performance tracking, market sentiment, and unusual contract activity.
/options-flow| Name | In | Type | Notes |
|---|---|---|---|
date | query | string (date) | |
sort | query | enum("streak" | "volume" | "callput" | "premium") | default: "streak" |
limit | query | integer | default: 100 · 1–500 |
datestring (date)sortstringlimitintegerdataarray<object>statsobjectdatesarray<string (date)>400401403429/options-flow/{symbol}| Name | In | Type | Notes |
|---|---|---|---|
symbol* | path | string | |
limit | query | integer | default: 60 · 1–365 |
symbolstringlimitintegercountintegerdataarray<object>400401403429/options-flow/signals| Name | In | Type | Notes |
|---|---|---|---|
date_from | query | string (date) | |
date_to | query | string (date) | |
limit | query | integer | Max signals returned.default: 500 · 1–2000 |
dateFromstring (date)nullabledateTostring (date)nullablecountintegersignalsarray<object>400401403429/options-flow/sentiment| Name | In | Type | Notes |
|---|---|---|---|
date_from | query | string (date) | |
date_to | query | string (date) |
dateFromstring (date)nullabledateTostring (date)nullablecountintegerdataarray<object>datestring (date)market_breadth_scoreintegernullableCombined Adv/Dec + new-highs/new-lows score (0–100)
market_call_put_rationumbernullableMarket-wide call volume divided by put volume
contextenum("bullish_only" | "bearish_only" | "mixed")Daily filter context applied to the signal builder
bullish_countintegerbearish_countintegersentiment_scoreinteger0–100Derived from `market_call_put_ratio` using `clamp(round((cp - 0.5) * 100), 0, 100)`. Same formula as the dashboard gauge.
sentiment_labelenum("bullish" | "neutral" | "bearish")`>=65` bullish, `45–64` neutral, `<45` bearish.
400401403429/options-flow/unusual| Name | In | Type | Notes |
|---|---|---|---|
limit | query | integer | default: 300 · 1–1000 |
datestring (date)nullablecountintegerdataarray<object>symbolstringoption_symbolstringsymbol_typeenum("Call" | "Put")nullablebase_last_pricenumbernullablestrike_pricenumbernullableexpiration_datestring (date)nullabledays_to_expirationintegernullablelast_pricenumbernullablebid_pricenumbernullablemidpointnumbernullableask_pricenumbernullablevolumestringnullableopen_intereststringnullablevolume_oi_ratiostringnullablevolatilitystringnullabledeltastringnullabletrade_timestringnullabledata_datestring (date)401403429AI-detected trending topics and cross-category connections.
/trends| Name | In | Type | Notes |
|---|---|---|---|
category | query | enum("techscience" | "patents" | "fundingevents") | default: "techscience" |
days | query | integer | default: 10 · 1–180 |
latest | query | enum(1) | |
date | query | string (date) |
categorystringcountintegertrendsarray<object>datestring (date)topicstringweightnumber400401403429/trend-connections| Name | In | Type | Notes |
|---|---|---|---|
days | query | integer | default: 14 · 1–90 |
limit | query | integer | Max connections returned.default: 200 · 1–1000 |
latest | query | enum(1) | |
date | query | string (date) |
countintegerconnectionsarray<object>400401403429NYSE/NASDAQ advance/decline and new-highs/new-lows data.
/market-momentum| Name | In | Type | Notes |
|---|---|---|---|
date | query | string (date) | |
date_from | query | string (date) | |
date_to | query | string (date) |
datesarray<string (date)>countintegerdataarray<object>exchangestringadvancing_issuesstringdeclining_issuesstringnew_highsstringnew_lowsstringdata_datestring (date)400401403429Stock metadata and OHLCV candles for any supported symbol.
/stocks/{symbol}| Name | In | Type | Notes |
|---|---|---|---|
symbol* | path | string |
symbolstringsymbol_namestringlast_pricenumbernullablepercent_changenumbernullableexchangestringindustrystring400401404429503/stocks/{symbol}/candles| Name | In | Type | Notes |
|---|---|---|---|
symbol* | path | string | |
interval | query | enum("1d" | "1wk") | default: "1d" |
range | query | string | default: "6mo" |
symbolstringintervalstringrangestringcountintegerdataarray<object>timeintegerUnix epoch seconds
opennumberhighnumberlownumberclosenumbervolumenumber400401429Symbol/company-name search and reverse screener lookup — public with per-IP rate limit, higher limits with an API key.
/search/symbols| Name | In | Type | Notes |
|---|---|---|---|
q* | query | string | Search text (symbol prefix or part of the company name). |
limit | query | integer | default: 10 · 1–50 |
querystringcountintegerdataarray<object>symbolstringnamestring400429/search/screeners| Name | In | Type | Notes |
|---|---|---|---|
symbol* | query | string |
symbolstringcountintegerscreenersarray<object>slugstringnamestringcategorystringtierenum("free" | "basic" | "pro")400429