Raw schema
{
"type": "object",
"properties": {
"query": {
"description": "Free-text search across project names, abstracts, and objectives. Every word must appear, so extra words narrow the result. A balanced quoted phrase and AND or OR between words parse; brackets, braces, an unmatched double quote, a slash between words, a trailing backslash, an AND or OR at either end, a trailing NOT, and # are not. Omit to browse the portfolio by filter alone. Results come newest board approval first either way.",
"type": "string"
},
"countries": {
"description": "Borrowing countries: an economy by ISO3 or ISO2 code (BRA or BR), or a World Bank regional code for a multi-country operation (3A for Africa, 4E for East Asia and Pacific). Several codes β an array, or one string separated by commas, semicolons, or pipes β are combined as OR: a project matching any of them is returned. A value made only of separators is rejected rather than read as every country. Yemen, DR Congo, West Bank and Gaza, and Timor-Leste are searched under the legacy codes the portfolio files them by (RY, ZR, GZ, TP), which are also accepted as sent. A WDI aggregate (SSF, WLD, SAS) is rejected; use region for a regional search. Omit for every country.",
"anyOf": [
{
"type": "string",
"description": "A single country code, or a list of them separated by commas, semicolons, or pipes."
},
{
"type": "array",
"items": {
"type": "string",
"description": "An ISO3, ISO2, or World Bank regional code."
},
"description": "An array of country codes; an element holding several codes separated by commas, semicolons, or pipes is split too."
}
]
},
"status": {
"description": "Lifecycle stages to include, combined as OR. \"Active\" is under implementation, \"Pipeline\" is approved but not yet effective, \"Closed\" has finished disbursing, and \"Dropped\" was abandoned before approval. Most of the portfolio is closed, so omitting this returns mostly historical operations.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Active",
"Closed",
"Dropped",
"Pipeline"
]
}
},
"region": {
"description": "World Bank operational regions to include, combined as OR. These are the lending regions the portfolio is organized by, not the WDI aggregate codes worldbank_get_data accepts.",
"type": "array",
"items": {
"type": "string",
"enum": [
"East Asia and Pacific",
"Europe and Central Asia",
"Latin America and Caribbean",
"Middle East, North Africa, Afghanistan, and Pakistan",
"South Asia",
"Eastern and Southern Africa",
"Western and Central Africa",
"Africa",
"Other"
]
}
},
"financial_type": {
"description": "Financing windows to include, combined as OR: a project matches when its financialTypes holds any of them. IBRD, IDA, Grants, Other are the complete set, case-sensitive. A project that publishes no financing window β 36% of the portfolio, older and dropped operations mostly β never matches. The Grants window says how an operation is financed; it is not the grantAmount figure.",
"type": "array",
"items": {
"type": "string",
"enum": [
"IBRD",
"IDA",
"Grants",
"Other"
]
}
},
"approved_from": {
"description": "Earliest board approval date, as YYYY-MM-DD and inclusive. It must be a real calendar day (2024-02-29, not 2023-02-29) and, when approved_to is also set, on or before it. Board approval is the date the Bank committed to the operation; pipeline projects carry a scheduled date in the future.",
"anyOf": [
{
"type": "string",
"const": ""
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Earliest board approval date to include."
}
]
},
"approved_to": {
"description": "Latest board approval date, as YYYY-MM-DD and inclusive. It must be a real calendar day.",
"anyOf": [
{
"type": "string",
"const": ""
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Latest board approval date to include."
}
]
},
"include_abstract": {
"default": false,
"description": "Include each project's abstract. Abstracts run long β a median of roughly 1,200 characters, up to 8,000 β so a page carrying them holds at most 8 projects rather than 80, and an abstract longer than 5,000 characters (about 2% of them) is cut there and marked with β¦, with notice naming the projects cut and each project's url leading to the full text; leave this off while narrowing a search and turn it on once the result set is small enough to read. Projects that publish no abstract report null either way, which appliedFilters.includeAbstract distinguishes.",
"type": "boolean"
},
"page": {
"default": 1,
"description": "Pagination page number (1-based).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (default: server default, max: 1000). One page holds at most 80 projects, or 8 with include_abstract, which keeps a response within about 50 KB; a larger value, the server default included, is reduced to that cap and echoed as appliedFilters.perPage, and totalPages is counted at the reduced size; notice discloses the reduction whenever the result runs past one page.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}