Screen countries by the latest values of canonical macro indicators with a compact filter DSL: field, operator, value, all AND-ed.
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%.” Conduit 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.
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.
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.
# Inflation above 3 AND unemployment below 5 AND policy rate at or above 4filter=cpi_inflation_yoy:gt:3,unemployment_rate:lt:5,policy_rate:gte:4
Field names are canonical indicator slugs. The authoritative list, with the operators, the syntax reminder, and an example, lives at GET /v1/public/screener/filters.
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 /v1/public/screener/filters.
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.
Besides the required filter, the screener accepts three optional parameters.
Param
Values
Description
country
ISO code
Restrict the screen to a single country (useful as a yes/no test).
freshness
fresh
Only consider readings that pass the freshness gate, so stale prints cannot qualify a country.
limit
1 to 500, default 100
Cap the number of returned countries.
# Same screen, but only over fresh readings, limited to 20 countriescurl -s "https://data.quantoraresearch.com/v1/public/screener?filter=cpi_inflation_yoy:gt:3,unemployment_rate:lt:5&freshness=fresh&limit=20" \ -H "x-api-key: $CONDUIT_API_KEY"
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.
The screener fails closed and returns a stable error code on bad input.
Situation
Code
Status
filter is missing
bad_request
400
A clause is malformed (not field:operator:value)
bad_request
400
An unknown operator
bad_request
400
A non-numeric value (or empty in set)
bad_request
400
limit out of the 1 to 500 range
bad_request
400
An unknown query parameter
bad_request
400
The error message names the offending clause so you can fix it quickly. The @conduit/client SDK throws a ConduitError carrying the code, HTTP status, and requestId: