GET https://api.fundalyze.ai/api/public/v1/screen_companiesscreen_companies

Parameters

ParameterTypeDefaultDescription
filtersrequiredlist of string—Each 'metric:min:max', either bound may be empty, e.g. roic:20: or net_debt::0; repeat or comma-separate. percent metrics in percent, usd in USD millions, flags 1/0. Metrics: revenue_ttm, revenue_growth_yoy, revenue_cagr_3y, net_income_growth_yoy, fcf_growth_yoy, gross_margin, gross_margin_change_yoy, operating_margin, net_margin, fcf_margin, rule_of_40, roic, roe, roa, accruals_ratio, cash_conversion, capex_to_revenue, capex_to_da, sbc_to_fcf, shares_change_yoy, net_debt, net_debt_to_ebitda, debt_to_equity, current_ratio, interest_coverage, piotroski_f, days_since_10k, days_since_10q, filings_8k_90d, had_8k_101_90d, had_8k_205_90d, had_8k_401_90d, had_8k_502_90d, insider_buyers_90d, insider_buy_value_90d, insider_net_buy_90d, insider_net_buy_1y, insider_officer_bought_90d, holders_13f, value_13f, founder_led, founder_on_board, founder_controlled, family_controlled, ceo_total_pay, ceo_pay_actually_received.
sort_bystring—Metric to sort by; default the first filter's.
descendingbooleantrueLargest first (default).
limitinteger1–5025Companies to return, 1-50.

Example

A real call and its answer. Replace fdz_live_YOUR_KEY with your key, or set FUNDALYZE_API_KEY for the Python and JavaScript versions.

curl -H "Authorization: Bearer fdz_live_YOUR_KEY" "https://api.fundalyze.ai/api/public/v1/screen_companies?filters=roic%3A20%3A%2Crevenue_growth_yoy%3A10%3A&sort_by=roic&limit=10"

Response

Generated from live data on Oct 7, 2026; figures change as filings arrive. Rows trimmed to the first 5 for the docs: companies had 10.

What an assistant reads (and what MCP returns).

Screen · 10 companies · roic >= 20; revenue_growth_yoy >= 10 · sorted by roic desc · nightly snapshot as of 2026-10-06
ticker,name,roic,revenue_growth_yoy,notes
VEEV,VEEVA SYSTEMS INC,433.7,16.5,
NTAP,"NetApp, Inc.",358.9,12.15,
LYV,"Live Nation Entertainment, Inc.",298.78,10.75,
ANET,"Arista Networks, Inc.",246.98,32.57,
AVPT,"AvePoint, Inc.",183.59,24.95,
... 5 more rows in the full answer (trimmed for the docs)
Units: roic percent, revenue_growth_yoy percent.
notes: low_confidence or implausible = the figure carries that data-quality mark.
42 matching listings were left out because a requested figure is not derived from SEC filings for them.
More: https://fundalyze.ai/screener?f=roic%3Avalue%3A20%3A&f=revenue_growth_yoy%3Avalue%3A10%3A&sort=roic&dir=desc

Fields of data

What each field of data means. rows[].field is a field of each row in the rows list.

FieldMeaning
companiesMatching companies in sort order (list; see companies[]).
filtersThe filters applied, as metric, min and max.
as_ofDate of the nightly snapshot screened.
filters[].metricMetric id.
filters[].minLower bound applied, in the metric's API unit.
filters[].maxUpper bound applied.
sort_byMetric the rows are sorted by.
descendingSort direction.
unitsMetric id -> unit (percent, USD millions, ratio, days, count, 1/0).
companies[].tickerTicker (one row per company).
companies[].nameName from the SEC directory.
companies[].exchangeExchange.
companies[].cikSEC CIK.
companies[].metricsMetric id -> value for the filtered and sort metrics.
companies[].notesData-quality marks on those figures (low_confidence, implausible).
excluded_not_sec_derivedMatching listings dropped because a requested figure was not derived from SEC filings.

Every answer ends with More: <link>, and REST returns the same URL as link: the fundalyze.ai page where the figures can be checked (here, fundalyze.ai/screener?f=roic%3Avalue%3A20%3A&f=revenue_growth_yoy%3Avalue%3A10%3A&sort=roic&dir=desc). Cite it when you show the data to others, as the attribution rules ask.

Errors

A bad parameter is a 400 naming it, an unknown ticker a 404, a busy key or a used-up day a 429. Every status and message: Errors.

This page as Markdown, for language models and scripts: /developers/md/reference/screen_companies