changedInput schema / properties / date_range / description
Previous value: -"Time window to filter observations to. Accepts a whole year (`2020`), a quarter (`2020Q1`), or a month (`2020M03`), or a range of two periods of the same type separated by a colon, earliest first (`2010:2023`, `2020Q1:2021Q4`, `2020M01:2020M06`); a range running latest first is rejected. A window and an observation match whenever the periods overlap, so a year window also selects the quarters and months inside it. A window covering no part of the series returns zero observations rather than the full series. Mutually exclusive with mrv."New value: +"Time window to filter observations to. Accepts a whole year (`2020`), a quarter (`2020Q1`), or a month (`2020M03`), or a range of two periods of the same type separated by a colon, earliest first (`2010:2023`, `2020Q1:2021Q4`, `2020M01:2020M06`); a range running latest first is rejected. On a series publishing more than one period form, the window's form picks which: `2024` returns the annual value, `2024Q1:2024Q4` the quarters, `2024M01:2024M12` the months, and a quarter or month window is null-filled where the series has none (a notice then names the other forms). On a series with one form, a window at another form keeps the periods it overlaps (`2019:2021` on a quarterly series returns its twelve quarters). A window covering no part of the series returns zero observations rather than the full series. Mutually exclusive with mrv, mrnev, and frequency."
addedInput schema / properties / frequency
Added value: +{
+ "anyOf": [
+ {
+ "const": "",
+ "type": "string"
+ },
+ {
+ "description": "annual (2025), quarterly (2025Q4), or monthly (2025M12) periods.",
+ "enum": [
+ "annual",
+ "quarterly",
+ "monthly"
+ ],
+ "type": "string"
+ }
+ ],
+ "description": "The period form to return, for series such as Global Economic Monitor's that publish quarterly or monthly values beside annual ones: annual (the default), quarterly, or monthly. With mrv or mrnev it picks the form they select from — frequency \"monthly\" with mrv 3 returns the three latest months, where mrv 3 alone returns the three latest years. With neither, it returns the whole series at that form. A series that does not publish the form returns an empty result with a notice saying so, except that with neither mrv nor mrnev a source that null-fills the form (Global Economic Monitor) returns null rows, and a page of them carries a notice. Mutually exclusive with date_range, whose own form (2024, 2024Q1, 2024M01) picks the periods of a window."
+}
addedInput schema / properties / mrnev
Added value: +{
+ "description": "Return each requested country's own N most recent periods (1–100) holding a value — its latest non-null observations, however far back they sit. A country with fewer values in the series returns the ones it has, and a country with none returns no rows. The periods are annual unless frequency names another form (a series with no annual periods keeps its own). Mutually exclusive with date_range and mrv.",
+ "maximum": 100,
+ "minimum": 1,
+ "type": "integer"
+}
changedInput schema / properties / mrv / description
Previous value: -"Return the N most recent periods (1–100) holding a value for any requested country, clamped to the length of the series. Every requested country comes back at those periods, null where it has no value there rather than with its own older values. Rows are mrv × countries, so page through them with per_page. Mutually exclusive with date_range."New value: +"Return the N most recent periods (1–100) holding a value for any requested country, clamped to the length of the series. Every requested country comes back at those periods, null where it has no value there rather than with its own older values; mrnev returns each country's own latest values instead. The periods are annual unless frequency names another form (a series with no annual periods keeps its own). Rows are mrv × countries, so page through them with per_page. Mutually exclusive with date_range and mrnev."
addedOutput schema / properties / appliedFilters / properties / frequency
Added value: +{
+ "description": "Period form applied (annual, quarterly, monthly), omitted when none was requested.",
+ "enum": [
+ "annual",
+ "quarterly",
+ "monthly"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / appliedFilters / properties / mrnev
Added value: +{
+ "description": "Most-recent-non-empty-values count applied, omitted when none was requested.",
+ "type": "number"
+}
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_params`: Both date_range and mrv are provided simultaneously. `mixed_all_selector`: countries combines \"all\" with one or more country codes. `reversed_date_range`: date_range names a range whose first period comes after its second. `multiple_indicators`: The indicator ID is \"all\", which selects every indicator rather than one. `indicator_not_found`: The indicator ID does not exist. `indicator_not_queryable`: The standard data endpoint does not serve the indicator, and no catalog source can serve it through the source-scoped data API instead — the catalog no longer lists the ID, the catalog lookup failed, or the source is not organized by country, series, and time plus at most one further dimension. `unknown_dimension_value`: dimension_value is not a value the indicator's dataset lists for its extra dimension. `dimension_not_applicable`: dimension_value is given for an indicator the standard data endpoint serves, or whose dataset has no dimension beyond country, series, and time. `source_scope_too_large`: A source-scoped query would read more rows (countries × periods × unpinned dimension values) than one request allows. `country_not_found`: One or more country codes are invalid. The message and countryCodes name the codes the World Bank country listing lacks, or every requested code when it lacks none. `indicator_and_country_not_found`: The indicator ID and the country codes are both invalid. The codes are named as on country_not_found. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_params`: More than one of date_range, mrv, and mrnev is provided, or frequency is provided with date_range. `mixed_all_selector`: countries combines \"all\" with one or more country codes. `reversed_date_range`: date_range names a range whose first period comes after its second. `multiple_indicators`: The indicator ID is \"all\", which selects every indicator rather than one. `indicator_not_found`: The indicator ID does not exist. `indicator_not_queryable`: The standard data endpoint does not serve the indicator, and no catalog source can serve it through the source-scoped data API instead — the catalog no longer lists the ID, the catalog lookup failed, or the source is not organized by country, series, and time plus at most one further dimension. `unknown_dimension_value`: dimension_value is not a value the indicator's dataset lists for its extra dimension. `dimension_not_applicable`: dimension_value is given for an indicator the standard data endpoint serves, or whose dataset has no dimension beyond country, series, and time. `source_scope_too_large`: A source-scoped query would read more rows (countries × periods × unpinned dimension values) than one request allows. `country_not_found`: One or more country codes are invalid. The message and countryCodes name the codes the World Bank country listing lacks, or every requested code when it lacks none. `indicator_and_country_not_found`: The indicator ID and the country codes are both invalid. The codes are named as on country_not_found. `upstream_inconsistent`: The World Bank API answered a data read, and its one re-read, with rows that do not fit the request — its response cache served another query's result — so nothing was served. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "invalid_params",
- "mixed_all_selector",
- "reversed_date_range",
- "multiple_indicators",
- "indicator_not_found",
- "indicator_not_queryable",
- "unknown_dimension_value",
- "dimension_not_applicable",
- "source_scope_too_large",
- "country_not_found",
- "indicator_and_country_not_found"
-]New value: +[
+ "invalid_params",
+ "mixed_all_selector",
+ "reversed_date_range",
+ "multiple_indicators",
+ "indicator_not_found",
+ "indicator_not_queryable",
+ "unknown_dimension_value",
+ "dimension_not_applicable",
+ "source_scope_too_large",
+ "country_not_found",
+ "indicator_and_country_not_found",
+ "upstream_inconsistent"
+]
addedOutput schema / properties / lastUpdated
Added value: +{
+ "description": "Last update date of the World Bank source that served these values (YYYY-MM-DD) — the data vintage to cite with them. Omitted when upstream reports none, as for an empty result.",
+ "type": "string"
+}
changedOutput schema / properties / notice / description
Previous value: -"Recovery hint for an empty result set — how to broaden the query when nothing matched, or the page range that exists when the requested page is past the end — a page size reduced to the page cap, and, for source-scoped data, the requested country codes the serving dataset publishes nothing for."New value: +"Recovery hint for an empty result set — how to broaden the query when nothing matched, whether the series publishes the requested frequency, or the page range that exists when the requested page is past the end — a quarter or month date_range whose observations are all null, with the same span at the other period forms, a frequency page whose observations are all null, a page size reduced to the page cap, and, for source-scoped data, the requested country codes the serving dataset publishes nothing for."