The Income Screen — weekly income data, in your inbox. Subscribe
ExchangeRebel

Stock Screener API

Finviz-style screening of the S&P 500, built for AI agents instead of browser tabs. One call filters the whole index by price, market cap, P/E, volume, sector and more, and returns clean JSON your agent can act on.

Pay per query — no subscription, no API key, no signup. Payment is x402: SOL or USDC on Solana, settled per call.

● Checking live service status…

Live universe

The full S&P 500 — 503 tickers across 11 sectors, with SEC fundamentals and delayed quotes. Loading the live universe summary…

Endpoints

POST /toll/screener/screen

$0.01 per query

Filter, sort and paginate the S&P 500 universe in one call. Returns matching tickers with price, change, volume, market cap and P/E, plus match counts and freshness timestamps.

GET /toll/screener/quote/:ticker

$0.005 per call

Single-ticker snapshot: price, day change, volume, market cap, P/E — for when your agent already knows the symbol and just needs the numbers.

GET /toll/screener/universe

Free

The full ticker list with sector counts and the universe as-of date. Pull it once, cache it, plan your screens against it.

GET /toll/screener/health

Free

Service status, universe size and current toll prices. The fastest way to confirm the screener is up before you build a workflow on it.

Filters & sorting

Supported filters: price_min/max, change_pct_min/max, volume_min/max, market_cap_min/max, pe_min/max, sector, industry, country.

Sortable by: price, change_pct, volume, market_cap, pe, ticker, name — ascending or descending, with limit/offset pagination. Tickers missing a filtered field (e.g. no earnings → no P/E) are excluded while that filter is active, and the response says so.

POST /toll/screener/screen
{
  "filters": {
    "price_min": 5, "price_max": 1000,
    "change_pct_min": -5,
    "market_cap_min": 1000000000,
    "pe_max": 25,
    "volume_min": 1000000,
    "sector": "Technology"
  },
  "sort_by": "market_cap", "sort_dir": "desc",
  "limit": 50, "offset": 0
}

What a result looks like

Sample

The table below is a sample — illustrative rows in the real response shape, shown so you can see the format. It is not live market data. Live results are served by the API after payment; nothing on this page serves paid data for free.

TickerNameSectorPriceChange %VolumeMarket capP/E
AAPLApple IncTechnology342.09+1.626,311,259$5.05T45.87
MSFTMicrosoft CorpTechnology512.40+0.8418,204,553$3.81T36.12
NVDANVIDIA CorpTechnology188.15+2.47241,930,112$4.59T52.30
JPMJPMorgan Chase & CoFinancials301.22−0.637,845,901$838B15.44
XOMExxon Mobil CorpEnergy118.73−1.0812,664,308$506B13.91

Sample response envelope: total_matches, filters_applied, universe_size, tickers_with_quotes, quotes_as_of (oldest/newest) and quote_license travel with every real result.

How agents pay

Three x402 rails, same endpoints — pick the one your stack already speaks:

  1. Direct x402. Call unpaid, get a 402 with a payment challenge and memo, pay SOL or USDC on Solana with that memo, retry with the X-Payment-Tx header. Replay-protected.
  2. PayAI. Standard x402 payment payloads settled through the PayAI facilitator — see the PayAI payment page.
  3. Dexter. Standard x402 payment payloads settled through the Dexter facilitator — see the Dexter payment page.

MCP: the screener is also a tool on the ExchangeRebel MCP server at https://exchangerebel.com/mcp — paid tool calls settle through the same rails, so MCP-native agents can screen without touching HTTP.

Discovery: machine-readable service descriptions live at /openapi.json, /agents.json and /.well-known/x402.

Data honesty: quotes are delayed, not real-time (v1 courtesy feed: Yahoo Finance chart API; every API response carries its quote_license). Fundamentals come from SEC EDGAR filings (public domain); the universe list is Wikipedia’s S&P 500 listing (CC BY-SA). Dividend yield and beta are not populated in v1 — filters on them are ignored with a warning in the response. This page and this API are data tools, not financial advice.