Screener

Screen the stock universe by combining optional range filters across datasets: market cap and price, sector and industry, 13F filer count and its change, institutional ownership and the 13F holder signals of the newest computed closed quarter (conviction share, crowding, private-fund adviser ownership, active holders' share change, holder tenure, and price versus the holders' estimated average cost), short interest and days to cover, composite short-squeeze and insider-sentiment scores, net insider buying (90d), the going-concern doubt flag, and daily-refreshed derived metrics (trailing P/E, dividend yield from split-restated TTM cash dividends per share divided by share price, revenue growth YoY, gross margin, average daily dollar volume, TTM net income). A bound on a metric excludes stocks with no data on that axis. Sorted by the chosen metric (default market cap, descending); page walks past the first page and vintages state each dataset's freshness.

get/v1/screener/stocks

Request

Query parameters

minMarketCapnumber double

Minimum market capitalization in USD.

maxMarketCapnumber double

Maximum market capitalization in USD.

minPricenumber double

Minimum share price in USD.

maxPricenumber double

Maximum share price in USD.

minFilerCountinteger

Minimum number of 13F institutional filers.

maxFilerCountinteger

Maximum number of 13F institutional filers.

minFilerDeltainteger

Minimum quarter-over-quarter change in filer count.

maxFilerDeltainteger

Maximum quarter-over-quarter change in filer count.

minShortInterestPercentnumber double

Minimum short interest as a percent of shares outstanding (0-100).

maxShortInterestPercentnumber double

Maximum short interest as a percent of shares outstanding (0-100).

minDaysToCovernumber double

Minimum days to cover.

maxDaysToCovernumber double

Maximum days to cover.

minSqueezeScorenumber double

Minimum composite short-squeeze score (0-100).

maxSqueezeScorenumber double

Maximum composite short-squeeze score (0-100).

minInsiderSentimentnumber double

Minimum composite insider-sentiment score (0-100).

maxInsiderSentimentnumber double

Maximum composite insider-sentiment score (0-100).

minNetInsiderBuynumber double

Minimum net open-market insider buying by officers and directors in USD over the trailing 90 days.

maxNetInsiderBuynumber double

Maximum net open-market insider buying by officers and directors in USD over the trailing 90 days.

hasGoingConcernDoubtboolean

True keeps only companies with unalleviated going-concern doubt; false keeps only companies without it.

sectorstring

Exact sector name (e.g. Technology, Healthcare). An unknown name is a 400 listing the accepted sectors.

industrystring

Exact industry name (e.g. Semiconductors). Prefer sector for broad groups; an unknown name is a 400.

indexstring

Restrict to members of a covered index, by slug or name (e.g. sp-500, "S&P 500", SPX). A name matching no covered index is a 400 listing the covered ones.

marketstring

Listing markets to screen, as comma-separated ISO country codes (for example GB,FR), or all for every market. Omitted means US. A non-US row's ticker is the qualified MIC:TICKER symbol (for example XPAR:AIR) and its price and market cap are converted to USD at the official rate; localPrice and currency carry the traded close. An unknown code is a 400 listing the covered markets.

minPenumber double

Minimum trailing-twelve-month price-to-earnings ratio.

maxPenumber double

Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens).

minDividendYieldnumber double

Minimum trailing dividend yield in percent (e.g. 3 = 3%).

maxDividendYieldnumber double

Maximum trailing dividend yield in percent.

minRevenueGrowthnumber double

Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier.

maxRevenueGrowthnumber double

Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier.

minGrossMarginnumber double

Minimum gross margin in percent (0-100).

maxGrossMarginnumber double

Maximum gross margin in percent (0-100).

minDollarVolumenumber double

Minimum trailing-3-month average daily dollar volume in USD (e.g. 5000000 = $5M/day).

maxDollarVolumenumber double

Maximum trailing-3-month average daily dollar volume in USD.

minNetIncomenumber double

Minimum trailing-twelve-month net income in USD (0 keeps profitable companies only).

maxNetIncomenumber double

Maximum trailing-twelve-month net income in USD.

minInstitutionalOwnershipnumber double

Minimum institutional ownership: 13F shares over shares outstanding, in percent.

maxInstitutionalOwnershipnumber double

Maximum institutional ownership in percent.

minConvictionSharenumber double

Minimum percent of the stock's 13F filers holding it among their ten largest positions.

maxConvictionSharenumber double

Maximum conviction share in percent.

minCrowdingnumber double

Minimum crowding: shares held by high-turnover 13F filers and private-fund advisers, in percent of shares outstanding.

maxCrowdingnumber double

Maximum crowding in percent of shares outstanding.

minPrivateFundOwnershipnumber double

Minimum ownership by 13F filers that advise private funds (Form ADV), in percent of shares outstanding.

maxPrivateFundOwnershipnumber double

Maximum private-fund adviser ownership in percent of shares outstanding.

minActiveHolderChangenumber double

Minimum like-for-like share change of actively managed 13F holders over the quarter, in percent.

maxActiveHolderChangenumber double

Maximum like-for-like share change of actively managed 13F holders, in percent.

minHolderTenurenumber double

Minimum value-weighted holder tenure in quarters.

maxHolderTenurenumber double

Maximum value-weighted holder tenure in quarters.

minEstimatedCostGapnumber double

Minimum quarter-end price versus the holders' estimated average cost, in percent (negative means an estimated loss).

maxEstimatedCostGapnumber double

Maximum quarter-end price versus the holders' estimated average cost, in percent.

sortBystring

Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol, netincome, instown, conv, crowd, pfown, actlfl, tenure, or costgap (default marketcap). An unknown key is a 400, never silently ignored.

sortAscendingboolean

Sort ascending instead of descending.

limitinteger

Maximum rows to return (default 50, max 200; zero or negative values are rejected, values above the maximum are clamped).

pageinteger

Result page, 1-based (default 1) — combine with limit to walk past the first page. A page past the end returns the last real page (see the response's page field).

tickersstring

Comma-separated list of up to 200 tickers to restrict the screen to, so a caller can score stocks they already hold instead of searching the market. Every other bound still applies. Class-share dots (BRK.B) resolve to the listed form and a secondary listing resolves to its issuer; symbols outside the universe come back in the response's notFound array.

formatstring

Response format: omit or json for the JSON envelope, csv for a flat CSV file. CSV headers are the stable cols keys rather than display labels, and the envelope's paging metadata rides on the X-Screener-Total-Count, X-Screener-Page, X-Screener-Total-Pages, X-Screener-Not-Found and X-Screener-Not-Found-Count response headers. Any other value is a 400.

colsstring

Comma-separated CSV column keys (for example pe,de,roic,volatility), applying only with format=csv; passing it without CSV is a 400 rather than a silently ignored parameter. An unknown or empty key list is a 400. Omitted means the default column set, and none means the pinned columns only. Every file starts with four pinned fields, ticker, name, price and marketcap, then one column per key passed; there is no ticker key of its own because the pinned company column emits ticker and name together.

Response

OK

totalCountinteger
countinteger
pageinteger

The page actually served, 1-based. A requested page past the end is clamped to the last real page — compare with the request to detect it.

totalPagesinteger

Total pages at the requested limit.

notFoundstring[] nullable

Requested tickers that name nothing in the covered universe. Absent from the payload unless tickers was supplied, so a caller who did not ask sees the same wire shape as before. Resolved against the whole universe, not the filtered page.

Changes

No recorded changes to this operation across all 1 revision of this API.