Skip to main content
The screener is the cross-country analogue of an equity stock screener. Instead of filtering tickers by fundamentals, you filter countries by the latest values of canonical macro indicators: “show me countries with CPI inflation above 3% and unemployment below 5%.” Financial Data API evaluates the latest public reading of each indicator per country and returns the countries that satisfy every clause.
The screener screens public indicator values only. It reads the latest public observation per canonical indicator and applies your filters to those numbers. It never exposes any internal scoring, and it never touches licensed or internal_only data.

How it works

The HTTP API is read-only and GET-only, so filters arrive as a single compact query parameter, the filter DSL. Each clause is field:operator:value, clauses are comma-separated, and they are AND-ed together. A country qualifies only when every clause matches one of its indicators and that indicator’s latest value satisfies the operator.
This reads as: CPI inflation greater than 3 and unemployment rate less than 5.

The filter DSL

Anatomy of a clause

A clause has three colon-separated parts:

Operators

The in operator is the only one that takes more than one value. Separate its values with the pipe character |:

AND semantics

Clauses are joined with commas and every clause must hold. There is no OR; build the union you want client-side by issuing separate requests. A country with no reading for a clause’s field, or a null latest value, does not satisfy that clause and is dropped.

Discovering fields

Field names are canonical indicator slugs. The authoritative list, with the operators, the syntax reminder, and an example, lives at GET /screener/filters.
The response:
Field matching is forgiving: it accepts the canonical slug, the indicator_-prefixed id, and registered aliases for the same indicator. When in doubt, use the field value exactly as returned by /screener/filters.

Running a screen

Send your clauses as the filter parameter to GET /screener. The filter parameter is required.

The response

Each result is a country that satisfied every clause, with the matched indicator values inlined so you can see what it scored on without a second call.
string
The matched entity key (the country ISO code).
string
ISO alpha-3 country code.
string
Country display name.
object[]
One entry per clause, showing the indicator value that satisfied it.

Optional parameters

Besides the required filter, the screener accepts three optional parameters.
freshness=fresh is recommended for live decision-making. Without it, a country can qualify on an old print that is past its publication cadence. With it, those stale readings are excluded before filtering.

More examples

Errors

The screener fails closed and returns a stable error code on bad input. The error message names the offending clause so you can fix it quickly. The @financialdatapi/client SDK throws a FinancialDataApiError carrying the code, HTTP status, and requestId:

Next steps

Discover fields

The catalog guide covers the full indicator list the screener fields come from.

Pull the values

Once a screen narrows your set, fetch the full point-in-time series with the observations API.