Screen all companies
screenScreen every covered company on its latest period: range filters on metrics, a sort and paging, all applied on the server over the whole universe. A metric is a standardized concept id (from metrics_list, for example income_statement_total_revenues) or a ratio id (gross_margin, operating_margin, net_margin, fcf_margin, revenue_growth_yoy, roe, roa, asset_turnover, current_ratio, debt_to_equity, interest_coverage, eps_basic, eps_diluted, bank and insurer ratios) or a valuation id (market_cap, enterprise_value, pe_ttm, ps_ttm, pb, ev_ebitda_ttm, ev_ebit_ttm, fcf_yield, dividend_yield: the latest IEX close times the screened period, so use period_type ltm for trailing multiples). Filter bounds are raw values: 0.2 is 20 percent, amounts are in the reporting currency. A company with no value for a filtered metric does not match; when sorting, missing values come last. Each item has the company (with sector and industry), the period screened and one value object with proof per metric, so every number can be cited. data.total is the size of the whole match and data.next_cursor pages through it. as_of screens on what was known on a date. Metered call: 1 of 25 keyless calls a day. Free through this connector within the keyless limits; the per-call price on agent.financial.md is $0.05. Use it to find or rank companies by fundamentals or valuation instead of calling each company in turn. If a dataset, field, company or analysis you need is missing, call request_data.
Example tool call
This call uses example arguments supplied in the tool’s input schema.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"limit": 20,
"filters": [
{
"min": 0.2,
"metric": "net_margin"
}
],
"sort_by": "roe",
"sort_dir": "desc"
},
"name": "screen"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. | |
| limit | No | Maximum number of periods or items to return (default 25, at most 200). | |
| query | No | Optional name or ticker search to narrow the universe. | |
| cursor | No | Opaque cursor from a previous page (data.next_cursor). | |
| sector | No | Optional exact sector (case-insensitive). | |
| country | No | Optional ISO 3166-1 alpha-2 country code. | |
| filters | No | Range filters, all of which must hold. Give min, max or both (inclusive, raw values). | |
| metrics | No | Columns to return: concept ids or ratio ids (default: revenue, net income, the three margins, revenue growth, return on equity). | |
| sort_by | No | A metric id, "name" or "ticker" (default name). | |
| industry | No | Optional exact industry (case-insensitive). | |
| sort_dir | No | Sort direction (default asc). | asc |
| period_type | No | Which latest period to screen: annual (default), quarterly or ltm. | annual |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | { items: [{ company { fmd_id, cik, name, country, reporting_template, primary_ticker, primary_mic, sector, industry }, period, values: { <metric id>: value object or null } }], next_cursor, period_type, metrics: [{ id, kind, label, metric_format, formula }], sort, total, universe }. | |
| meta | No | Request metadata: request_id, as_of, company resolution, coverage, pipeline_version, licence, terms, proof_base. | |
| error | No | Present only on isError results: the API error code and message plus remedy hints. |