ILO Statistics (ILOSTAT) MCP Server
Summary: Query official ILO labour statistics (ILOSTAT) from any MCP client — no install, account or API key — discovering indicators, resolving dimension codes and pulling live observations, each answer wrapped in an auditable provenance block.
Find indicators —
ilo_search_indicatorskeyword-searches ~1,200 ILOSTAT dataflows (unemployment, employment, wages, hours, informality, SDG 8), translating everyday/US wording (labor→labour, wages→earnings, gender→sex) and ranking by ILO relevance.Understand a dataflow —
ilo_get_indicator_metadatareturns its dimensions, codelists, time dimension, data vintage and ILO default selection.Resolve filter codes —
ilo_list_dimension_valueslists valid codes/labels for a dimension (e.g. REF_AREA ISO3 countries and X-aggregates, SEX, AGE), with search and pagination.Retrieve data —
ilo_get_datafetches live observations filtered by dimension codes and period (REF_AREA required, up to 30 areas per call); raw ILO values only, no aggregation or conversion.Deep Research contract —
searchandfetchexpose the catalogue as{id,title,url}documents and readable Markdown for ChatGPT deep research.Auditability — every response carries provenance block v1.1 (source URL, data vintage, real retrieval timestamp, CC BY 4.0 licence, ILO citation, retrieval diagnostics) in
structuredContent,_metaand a text footer.Workflow shortcuts — three resources (
ilostat://guide, key dataflows, provenance) and three prompts (country labour profile, country comparison, indicator trend).Deployment — hosted Streamable HTTP endpoint, or the same server locally over stdio via
npx ilo-mcp-server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ILO Statistics (ILOSTAT) MCP Serverget unemployment rate data for Brazil"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ILO Labour Statistics (ILOSTAT) — MCP Server
A public, hosted, provenance-first MCP server for the International Labour Organization (ILO) statistics — the ILOSTAT database — no installation, no account, no API key. Point your MCP client at the hosted endpoint and ask about unemployment, employment, wages, working time and other labour indicators by country, year, sex and age. It runs on Cloudflare Workers over Streamable HTTP and talks to the official ILOSTAT SDMX REST API.
Independent project. This is an unofficial, community-built client of the ILO's public ILOSTAT API — not affiliated with or endorsed by the International Labour Organization. Data remain © ILO under CC BY 4.0; see Data license and attribution.
Every response carries a provenance block (source URL, data vintage, real retrieval timestamp, license, ILO citation) — exact figures with an audit trail, not numbers guessed from training data.
🇧🇷 Em português. Servidor MCP remoto e hospedado (nada para instalar, sem conta e sem chave) para as estatísticas de mercado de trabalho da OIT — desemprego, emprego, salários, jornada e informalidade por país, ano, sexo e idade, direto no Claude, no ChatGPT ou em qualquer cliente MCP, com proveniência e citação da fonte em cada resposta: README em português.
Questions it answers
In plain language, inside the MCP client — the assistant picks the tool and the filters:
"What has happened to unemployment in Brazil since 2015?" (
ilo_get_data)"Compare youth unemployment in Brazil, Mexico and South Africa." (
ilo_compare_countries)"How large is the gender pay gap, and where does the ILO publish it?" (
ilo_search_indicators→ilo_get_data)"What share of employment in India is informal?" (
ilo_search_indicators→ilo_get_data)"Which ILOSTAT dataflow has average monthly earnings by sex and economic activity?" (
ilo_search_indicators)"Which country, age and sex codes can I filter this indicator by?" (
ilo_list_dimension_values)"Give me a labour-market profile of Viet Nam." (
ilo_country_labour_profile)
Ask in your words, not the ILO's. ILOSTAT is worded in British statistical English, and the catalogue is matched on the dataflow name — so the everyday or US word used to return nothing at all. Measured over the 1,212 dataflows of the official catalogue (2026-09-13), and fixed since 0.6.0: the search translates the term and tells you it did.
you ask | hits before | ILOSTAT writes | hits |
| 0 | labour, labour force | 176, 122 |
| 0 | earnings | 107 |
| 0 | informal | 133 |
| 2 | sex | 1,131 |
| 0 | output per worker | 4 |
| 0 | unemployment | 108 |
Related MCP server: world-bank-economic-mcp
Comparison with the alternatives
Anyone who already works with ILOSTAT has good tools, and this server replaces none of them —
it sits somewhere else in the chain: it answers the question at the point where the question is
asked, inside the assistant, with source, vintage and licence attached to the answer. Detail,
side-by-side examples and the measured numbers in
docs/alternatives.md.
Tool | What it is | When to prefer it |
ilo-mcp-server (this) | Remote MCP server, hosted, nothing to install: 6 tools over the ~1,200 ILOSTAT dataflows, with a provenance block per answer | The question is asked in an assistant (Claude, ChatGPT, Cursor, Claude Code) and the answer has to be auditable |
Rilostat 2.5.0 (R, CRAN) | The ILO's own R package, written by ILO staff: bulk download, metadata, filtering and reshaping | You are in R and want the dataset in a data frame — a whole table, repeatedly, for analysis |
Generic SDMX clients; ILO is one of ~36 sources they know | Your pipeline is Python and you want SDMX objects, or the same code across several SDMX agencies | |
Aggregator that republishes 1,071 ILO datasets next to other providers, one API for all | You want ILO series alongside IMF, OECD, Eurostat in a single interface | |
The source itself, which this server calls | You are building your own client and want full control |
Do not use this server when you need a whole dataset rather than an answer (Rilostat's bulk download is the right tool), when the question is not labour statistics published by the ILO (education → UNESCO UIS, national accounts → IMF/World Bank), or when you need microdata: ILOSTAT publishes aggregates, and so does this server.
Sister servers, same design and same provenance block, for other official sources: IBGE (Brazilian statistics), BCB (Central Bank of Brazil), Senado (Brazilian Senate open data), SIH/SUS (Brazilian hospital admissions) and medical terminologies (ICD-11, ICD-10, LOINC, RxNorm, ATC, MeSH).
Use it (hosted — no setup)
Point any MCP client at the Streamable HTTP endpoint:
https://ilo.sidneybissoli.com/mcpClaude Desktop / Claude Code and other clients with native remote support:
{
"mcpServers": {
"ilostat": {
"url": "https://ilo.sidneybissoli.com/mcp"
}
}
}For clients that launch MCP servers as a command, use the
mcp-remote bridge:
{
"mcpServers": {
"ilostat": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ilo.sidneybissoli.com/mcp"]
}
}
}The ilo-mcp-server.sidneybissoli.workers.dev hostname is also served, as a secondary.
ChatGPT (Deep Research)
ChatGPT deep research (and company knowledge, and research workflows over the Responses API) only uses an MCP server that exposes exactly search and fetch — this server does, on top of the ilo_* tools. Point the connector at the hosted endpoint, no key required:
https://ilo.sidneybissoli.com/mcpsearch ranks the query against the full ILOSTAT dataflow catalogue (~1,200 SDMX dataflows — employment, unemployment, wages, working time, informality, SDG labour indicators) and returns { id, title, url } (ind:<DATAFLOW_ID>, e.g. ind:DF_UNE_2EAP_SEX_AGE_RT); fetch returns the dataflow as readable Markdown — name, data vintage, dimensions and codelists, the ILO's default selection and how to query it with ilo_get_data — with the public ILOSTAT data explorer page as url, which is what ChatGPT cites. Both carry the same provenance block as every other tool, in structuredContent and _meta (the text channel is the contract's JSON). In ChatGPT's developer mode (Settings → Security and login → Developer mode) any tool is callable — the ilo_* tools remain the ones to use for data.
Run locally (stdio)
Prefer not to route queries through a third-party host? The same server also runs as a local stdio process that talks directly to the official ILOSTAT API — same 6 tools, resources and prompts, same limits, same provenance block, no Cloudflare in the loop.
No install needed — the package is on npm (ilo-mcp-server, Node ≥ 20):
{
"mcpServers": {
"ilostat": {
"command": "npx",
"args": ["-y", "ilo-mcp-server"]
}
}
}Or from source:
git clone https://github.com/SidneyBissoli/ilo-mcp-server
cd ilo-mcp-server
npm install
npm run build
node dist/cli.js # serves MCP over stdio (Ctrl+C to stop)(then point the client at node /path/to/ilo-mcp-server/dist/cli.js).
Differences from the hosted server, all due to the absence of Cloudflare bindings: the SDMX
cache lives in process memory (structures and codelists are reused within a session, not across
sessions); the search catalogue is downloaded from the official endpoint on the first search
(its real retrieved_at is reported in provenance); no usage metrics, rate limit or auth. Logs
go to stderr — stdout carries only the JSON-RPC stream. The repository Dockerfile builds
this runtime (used by the Glama registry).
Tools
Tool | What it does | Source |
| keyword search over ~1,210 dataflows (paginated by | local catalogue (no upstream call) |
| dimensions, codelists, vintage and default selection of a dataflow | cached structure (miss → upstream) |
| valid codes of one dimension (paginated by | cached codelist (miss → upstream) |
| observations filtered by dimension and period | 1 live REST call per query |
| ChatGPT Deep Research contract: ranks a query against the full dataflow catalogue, returns | in-memory index built from the local catalogue (24 h) |
| ChatGPT Deep Research contract: one dataflow as readable Markdown with the public data explorer page as | cached structure (miss → upstream) |
Typical flow: ilo_search_indicators → ilo_get_indicator_metadata / ilo_list_dimension_values
to discover valid filter codes → ilo_get_data with country and period filters.
Every response carries the portfolio provenance block
(@sbissoli/mcp-provenance, modes
concise/detailed via the provenance_mode parameter) on three channels:
structuredContent, namespaced _meta (com.sidneybissoli.ilostat/*) and a text footer.
Since 1.1.0 the block includes retrieval, the origin diagnostic of the call — how many
requests went to ILOSTAT, how many attempts they took, which anomalies were overcome and whether
the answer is unstable — measured by the portfolio's common fetch
(@sbissoli/mcp-upstream); null
when the answer did not touch ILOSTAT (catalogue or cached structure).
Resources and prompts
Three resources (static, text/markdown, no upstream call) that a client can attach to the
context before calling tools — they save the 2–3 discovery calls most sessions spend on
"which dataflow, which codes":
URI | Content |
| tool workflow, stable code conventions ( |
| verified dataflow ids by topic (unemployment, employment, participation, wages, hours, informality, NEET, SDG 8, productivity) |
| meaning of every provenance field and how to cite the ILO |
Three prompts — ready-made workflows that chain the tools and end with the citation rules (arguments are strings; period arguments optional):
Prompt | Arguments | Result |
|
| labour-market profile of one country (unemployment, participation, employment ratio, informality, NEET, earnings, hours) |
|
| comparison table across countries/aggregates in one data call, flagging modelled estimates vs reported data |
|
| time series of one indicator with first/last, peak/trough and |
Every dataflow id quoted in the resources and prompts is checked against the catalogue seed by the test suite, so the documentation cannot point at an id the search would not find.
Behaviour and limits
REF_AREAis required inilo_get_data, up to 30 areas per call. The ILO gateway times out (HTTP 504) on unrestricted queries, so the server never issues one; for broad panels, split the areas into batches and/or paginate by period (start_period/end_period). The error message explains how.One live REST call per data query. Data is never cached — every
ilo_get_dataresult is fetched from ILOSTAT at request time. Dataflow structures (TTL 24 h) and codelists (TTL 7 days, shared across dataflows) are cached.data_vintageis the dataflow's last-update date as published by the ILO (LAST_UPDATEannotation, normalised to ISO).retrieved_atis always the real instant of extraction from ILOSTAT, preserved alongside any cached value — never the build or response time. Cached responses say so (served_from_cache: true).The indicator catalogue is a local snapshot (~1,210 dataflows), refreshed periodically; its own
retrieved_atis reported in the provenance ofilo_search_indicators, so its age is always visible.Every upstream call carries an identifiable User-Agent (service URL + contact), so ILO administrators can reach the operator.
Every upstream call has a timeout and a retry policy (since 1.1.0, measured against the live API): 65 s per attempt — above the ~61 s the ILO gateway itself takes to reject an unrestricted query with 504, so a legitimate wide query is never cut short by this server —, up to 3 attempts on 5xx, 429 (honouring
Retry-After) and network errors, 70 s in total per call. Timeouts, HTTP 504 (query too broad) and 404 (no observations) are never retried. What happened is reported in the provenanceretrievalfield.Language: English; timezone: UTC (ILO data is published in English).
Provenance fields
derived—trueonly for real transformation (aggregation, server-computed rate, interpolation, harmonisation), always with aderivation_note; unit conversion and rounding do not count. This server does not transform values, soderivedis alwaysfalse.notices— reproduces the values ofOBS_STATUS(the SDMX status/disclaimer channel, e.g. "Break in series"), verbatim and with counts. Technical per-observation attributes (DECIMALSetc.) stay on the rows (rows[].attributes).
Surface fingerprint, checkable from the registry
Every release publishes, in its MCP Registry entry,
the sha256 of the surface this version serves (initialize, tools, resources, prompts) and which
methods answer without a credential. A surface change without a version bump fails the build;
the fingerprint in the registry lets a client check the same thing on its own side. Canonical
form and procedure: SPEC.md of @sbissoli/mcp-surface.
To check it yourself (Node 18+, no dependencies):
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/ilo-mcp-serverData license and attribution
ILOSTAT data and metadata: CC BY 4.0 (since 2023-05-03; license verified 2026-08-04).
ILO attribution in every response (
citationfield):International Labour Organization, ILOSTAT, https://ilostat.ilo.org/data/, accessed <date>.The ILO logo is not used. This service is not endorsed by the ILO.
Self-hosting / development
Everything below is only needed to run your own instance — it is not required to use the public server.
npm install
npm run typecheck && npm test # offline suite (parsers, key, tools, output contract, resources/prompts, in-memory catalogue, vocabulary, eval fixtures)
npm run dev # http://localhost:8787/mcp (Worker)
npm run build && npm start # stdio runtime (dist/cli.js)
# Catalogue seed (D1) — required before first use:
node scripts/seed-catalog.mjs # downloads via curl and generates scripts/seed-catalog.sql
npx wrangler d1 execute ilostat-catalog --local --file=scripts/seed-catalog.sql
npx wrangler d1 execute ilostat-catalog --remote --file=scripts/seed-catalog.sql
npm run deploy
node scripts/smoke-mcp.mjs # smoke test against production (initialize → 6 tools → search → fetch → errors)
npm run manifest:lhm # regenerate tools/resources/prompts in lhm.plugin.json from the real server
# (the seed also writes tests/fixtures/catalog-ids.txt — the versioned id list the tests check resources/prompts against)Bindings (see wrangler.jsonc): KV SDMX_CACHE, D1 CATALOG_DB, Durable Object USAGE
(SQLite-backed usage counters), CF_VERSION_METADATA. Optional Bearer auth
(wrangler secret put API_KEY); token-bucket rate limit per IP.
Notes for operators:
ILOSTAT returns JSON only when negotiated via the
Acceptheader (application/vnd.sdmx.{structure,data}+json);?format=is ignored and returns XML.The ILO gateway answers HTTP 500 (
languageTag1) to theAccept-Language: *header that Node'sfetch(undici) sends by default; every upstream call therefore setsAccept-Language: enexplicitly (Cloudflare's runtime sends no such header, so the Worker was never affected). It also expects an identifiable User-Agent.Catalogue refresh is manual (no cron): quarterly, or immediately if a dataflow that exists upstream does not show up in search. Procedure: the three seed commands above. Data queries are always live, so only the search catalogue can age — and its age is exposed in provenance.
Evals
@sbissoli/mcp-evals: 24 fixtures in
evals/fixtures/queries.ts, validated offline in npm test. The run with a real model
(npm run eval) uses the Anthropic API and needs ANTHROPIC_API_KEY (without it, it exits with
instructions). Run of 2026-08-07: top-1 100% (24/24) — evals/results/.
End-to-end: 10 complex questions with a single verifiable answer in evals/e2e/evaluation.xml,
answers validated manually against production (evals/e2e/validacao-respostas.md). Run of
2026-08-07 (Sonnet): 9/10 exact string; 10/10 substantive — evals/results/2026-08-07-e2e.md.
Endpoints
Route | Purpose |
| landing page (service identity + contact — public) |
| liveness |
| version, tool/resource/prompt counts and names, provenance contract version, current deploy (feeds the README badges) |
| aggregated usage (MCP endpoint only; no IPs, no query content) |
| MCP server card for directory scanners ( |
| MCP Streamable HTTP |
Security
Snyk Agent Scan (2026-08-07): passed — report in
security/.
License
Code: MIT. Data: ILOSTAT, CC BY 4.0 (see "Data license and attribution" above).
Privacy
Privacy policy of the hosted service: PRIVACY.md.
Contact
Sidney da Silva Pereira Bissoli — sbissoli76@gmail.com. This service is not endorsed by the ILO.
Available Tools
6 toolsfetchDeep Research DocumentARead-onlyIdempotentInspect
Returns the full document for an id obtained from search, as { id, title, text, url, metadata }: text is the readable content (Markdown) and url the canonical public page to cite.
Companion of search in the OpenAI Deep Research contract, over the ILOSTAT labour statistics (≈1,200 SDMX dataflows: employment, unemployment, wages, working time, informality, SDG labour indicators) catalog. Only ids returned by search are valid; an unknown id returns an error.
The ilo_* tools remain the tools for data queries.
Behavior: read-only and idempotent — a live GET against the public source when the document needs it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identifier of a document returned by `search` |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Unique identifier of the document on this server; what `fetch` takes |
| url | Yes | Canonical public URL of the document — ChatGPT's citation depends on it |
| text | Yes | Full readable content of the document (Markdown) |
| title | Yes | Human-readable title of the document |
| metadata | No | Additional key/value pairs about the document (kind, source, period…) |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| attribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world and non-destructive. The description still adds value beyond them: unknown ids return an error, and it performs a live GET against the public source. It does not add rate-limit or latency context, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the return shape, then the contract/scope, then behavior. Dense but each sentence carries distinct information; the parenthetical dataflow enumeration is slightly expendable but aids domain grounding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param fetch with an output schema, the description supplies the scope, the id provenance, the error path, and the sibling routing. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already states the id is one returned by `search`; the description largely repeats that provenance. Baseline 3 applies since the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (full document) and names exactly what it is: the Deep Research companion to `search`. It explicitly distinguishes itself from the ilo_* sibling tools, which it says remain the tools for data queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (ids obtained from `search`) and when-not (data queries belong to ilo_*), plus the failure condition for unknown ids. The routing between this tool and its siblings is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilo_get_dataGet ILOSTAT dataARead-onlyIdempotentInspect
Statistical observations from one ILOSTAT dataflow, filtered by dimension codes (filters, e.g. {"REF_AREA": ["BRA","ARG"], "SEX": "SEX_T"}) and period (start_period/end_period, e.g. "2015"/"2024"). REF_AREA is required, maximum 30 areas per call — for broad panels, split areas into batches and/or paginate by period. Unfiltered dimensions return all their categories. Does not aggregate, convert or otherwise transform values (raw ILOSTAT data only): read each value with the unit and multiplier the ILO states in its row attributes (UNIT_MEASURE, UNIT_MULT — e.g. UNIT_MULT 3 = thousands). Does not search indicators (use ilo_search_indicators).
| Name | Required | Description | Default |
|---|---|---|---|
| filters | Yes | Dimension id → code or list of codes (from ilo_list_dimension_values). REF_AREA is required (up to 30 area codes); any other dimension is optional and, left out, returns all of its categories. | |
| dataflow | Yes | Dataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT") | |
| end_period | No | Last period, e.g. "2024" | |
| start_period | No | First period, e.g. "2015" | |
| provenance_mode | No | Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices) | |
| last_n_observations | No | Alternative to periods: only the latest N observations per series |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| columns | Yes | |
| dataflow | Yes | |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| rows_count | Yes | |
| attribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: the 30-area cap, the HTTP 504 timeout if REF_AREA is omitted, and that values are returned raw (no aggregation or conversion) with unit semantics from UNIT_MEASURE/UNIT_MULT.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with scope and required filters, then constraints, then the non-transformation caveat. Dense with parenthetical examples but each sentence carries a distinct constraint; slightly heavy for a single paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. The description covers the pagination workaround, the hard area limit, the required parameter, and unit interpretation — everything needed to call this 6-parameter tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description still adds value the schema lacks: concrete filter syntax ({"REF_AREA":["BRA","ARG"],"SEX":"SEX_T"}), the rule that unfiltered dimensions return all categories, and how to interpret UNIT_MULT. It does not add meaning for provenance_mode or last_n_observations beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: statistical observations from one ILOSTAT dataflow, scoped by dimension filters and period. It explicitly distinguishes itself from ilo_search_indicators, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling it is not (ilo_search_indicators) and the condition that selects it, plus operational guidance for broad panels (split areas into batches, paginate by period) and the REF_AREA requirement. When-to-use and when-not are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilo_get_indicator_metadataGet ILOSTAT indicator metadataARead-onlyIdempotentInspect
Structure of one ILOSTAT dataflow: dimensions (in SDMX key order), their codelists, the time dimension, the source's default selection and the data vintage (last update at the ILO). Use before ilo_get_data to know which filters exist. Does not return statistical values and does not list the codes themselves (use ilo_list_dimension_values).
| Name | Required | Description | Default |
|---|---|---|---|
| dataflow | Yes | Dataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT") | |
| provenance_mode | No | Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| version | Yes | |
| dimensions | Yes | |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| attribution | Yes | |
| data_vintage | Yes | |
| time_dimension | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds genuinely useful behavior beyond that: it scopes the return to structural metadata, explicitly excludes statistical values and code lists, and surfaces the data vintage/last-update concept. It does not discuss auth or rate limits, but none appear needed here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the payload contents front-loaded, followed by the usage directive and the negative scope. No filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. Combined with full parameter coverage and explicit sibling routing, an agent has everything required to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the enum values for provenance_mode and the example dataflow id. The description adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (one ILOSTAT dataflow) and enumerates its contents: dimensions in SDMX key order, codelists, time dimension, source default selection, and data vintage. It explicitly distinguishes itself from ilo_get_data (values) and ilo_list_dimension_values (codes), so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the trigger directly: 'Use before ilo_get_data to know which filters exist.' It also names the exclusions and redirects them: no statistical values, and codes belong to ilo_list_dimension_values. Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilo_list_dimension_valuesList valid codes of a dimensionARead-onlyIdempotentInspect
Valid codes (id + label) of one dimension of an ILOSTAT dataflow — e.g. the country/area codes of REF_AREA (ISO 3166-1 alpha-3 such as BRA, plus X-codes for aggregates such as X01 World) or the categories of SEX (SEX_T/SEX_M/SEX_F) and AGE. Use search to resolve a name to a code (e.g. search "Brazil") instead of paging through hundreds of codes; codelists are shared across dataflows, so a code found here is valid wherever the same codelist is used. Use to build correct ilo_get_data filters. Does not return statistical values, does not say which codes actually have data for a given dataflow, and is not applicable to the time dimension (filter it via start_period/end_period in ilo_get_data).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum codes returned (default 200) | |
| offset | No | Codes to skip, for pagination (default 0) | |
| search | No | Case-insensitive filter on code id or label | |
| dataflow | Yes | Dataflow id the dimension belongs to | |
| dimension | Yes | Dimension id from ilo_get_indicator_metadata (e.g. "REF_AREA", "SEX") | |
| provenance_mode | No | Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices) |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| values | Yes | |
| showing | Yes | |
| codelist | Yes | |
| dataflow | Yes | |
| has_more | Yes | |
| dimension | Yes | |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| attribution | Yes | |
| next_offset | No | |
| total_codes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral value beyond them: it clarifies it returns no statistical values, does not indicate which codes actually have data for a dataflow, and is inapplicable to the time dimension — useful negative constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource definition before alternatives and exclusions. The final sentence is dense but each clause (no stats, no data-availability signal, no time dimension) carries distinct guidance rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation. For a 6-parameter code-listing tool, the description covers purpose, the search alternative, cross-dataflow codelist semantics, and all the key exclusions an agent would otherwise have to discover by trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including search, limit/offset and provenance_mode. The description adds only contextual framing for search ('resolve a name to a code') and pagination ('paging through hundreds of codes'), which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Valid codes (id + label) of one dimension of an ILOSTAT dataflow') and grounds it with concrete examples (REF_AREA ISO codes, SEX, AGE). An agent can distinguish this from ilo_get_data without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the downstream purpose ('Use to build correct ilo_get_data filters'), names the alternative for reverse lookup ('Use `search` to resolve a name to a code'), and delineates when-not: not for the time dimension, which is instead filtered via start_period/end_period in ilo_get_data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ilo_search_indicatorsSearch ILOSTAT indicatorsARead-onlyIdempotentInspect
Search the ILOSTAT catalogue of ~1,200 indicator dataflows by keywords in the name or id (e.g. "unemployment rate sex age"). All terms must match (AND, case-insensitive), so start with 2–3 English words and drop terms if you get 0 results. Everyday and US wording is resolved to the ILO's own (labor→labour, wages/salary→earnings, informality→informal, gender→sex, productivity→output per worker); when that happens the response says so in vocabulary_notes. Results are ranked by ILO relevance weight, not by match count. Reading the id tells you the shape: suffix _RT = rate/ratio, NB = number (usually thousands); dataflows whose second token starts with 2 (e.g. DF_UNE_2EAP…) are ILO modelled estimates with full country/year coverage, the others are reported national data. Returns dataflow ids to use with ilo_get_data / ilo_get_indicator_metadata. Searches the local catalogue only — it does not return statistical values (use ilo_get_data), does not search dimension codes such as countries (use ilo_list_dimension_values) and does not cover non-ILO sources.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 20) | |
| query | Yes | Keywords, matched against dataflow name and id (AND between terms) | |
| offset | No | Results to skip, for pagination (default 0) | |
| provenance_mode | No | Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| offset | Yes | |
| showing | Yes | |
| has_more | Yes | |
| indicators | Yes | |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| attribution | Yes | |
| next_offset | No | |
| total_matches | Yes | |
| vocabulary_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/closed-world, yet the description adds substantial behavior beyond them: AND/case-insensitive matching, vocabulary normalization with a vocabulary_notes signal in the response, ranking by ILO relevance weight rather than match count, and id-shape decoding (_RT vs _NB, second token starting with 2 = modelled estimates).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, query strategy, and sibling routing are front-loaded, and nearly every sentence carries non-redundant information. It is on the long side (the id-suffix and modelled-estimate decoding could be tightened), but there is little filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter search tool with an output schema and full annotation coverage, the description covers query syntax, ranking semantics, response signals (vocabulary_notes), result interpretation, and downstream tool routing. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning about the query parameter beyond the schema's terse 'AND between terms': case-insensitivity, the vocabulary substitution behavior, and the 2-3 word starting heuristic. limit/offset/provenance_mode are left to the schema, which already documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (ILOSTAT catalogue of ~1,200 indicator dataflows), scopes the match fields (name or id), and explicitly distinguishes itself from siblings: it does not return values (ilo_get_data) or search dimension codes (ilo_list_dimension_values). An agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use routing ('use ilo_get_data', 'use ilo_list_dimension_values'), when-not conditions ('does not cover non-ILO sources'), and concrete query strategy (start with 2-3 English words, drop terms on 0 results). This is the rare case of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchDeep Research SearchARead-onlyIdempotentInspect
Searches the ILOSTAT labour statistics (≈1,200 SDMX dataflows: employment, unemployment, wages, working time, informality, SDG labour indicators) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched).
This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools search and fetch. Pass one of the returned ids to fetch to read the document.
For direct questions and for data (values, series, rankings) prefer the ilo_* tools, which return the actual data with provenance — this is a catalog index, not a data query.
Query: natural language or keywords, Portuguese or English; accents and case are ignored.
Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search terms, natural language or keywords (accents and case are ignored) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Matching documents, in relevance order |
| provenance | Yes | Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer) |
| attribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered; the description restates read-only/idempotent, which earns no extra credit. It does add genuinely new behavior: results are capped at 10, ordered by relevance, an empty list means no match, and the catalog is sourced publicly and cached in memory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and return shape, then routes to alternatives in a separate paragraph. Slightly long, and the sentence restating read-only/idempotent duplicates the annotations, but every other line carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still states the result shape and the empty-list case. For a one-parameter read tool, the agent has everything needed to call it correctly and to know when to route elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single query parameter, so the baseline is 3. The description goes beyond the schema by specifying that the query accepts natural language or keywords in Portuguese or English and that accents and case are ignored, which materially affects how an agent should phrase a query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Searches) and a precisely scoped resource (the ILOSTAT labour-statistics catalog, ~1,200 SDMX dataflows), plus the exact return shape { id, title, url } and ordering. It also explicitly distinguishes itself from the ilo_* siblings by calling itself a catalog index rather than a data query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (OpenAI Deep Research / Responses API contract requiring search and fetch) and when-not-to-use (for direct questions and actual data values prefer the ilo_* tools). It also names the follow-up action: pass a returned id to fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.4.1- Changed
fetch1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
- Changed
ilo_get_data1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
- Changed
ilo_get_indicator_metadata1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
- Changed
ilo_list_dimension_values1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
- Changed
ilo_search_indicators1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
- Changed
search1 field changed- changed
Output schema / properties / provenance / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "citation": { - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "license": { - "type": [ - "string", - "null" - ] - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "source": { - "type": "string" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "retrieval", - "citation", - "license" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "api_version": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": "string" - }, - "contract_version": { - "const": "1.1", - "type": "string" - }, - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "version", - "name" - ], - "type": "object" - }, - "derivation_note": { - "type": [ - "string", - "null" - ] - }, - "derived": { - "type": "boolean" - }, - "dimension_key": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "field_sources": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "data_vintage": { - "type": [ - "string", - "null" - ] - }, - "dataset_id": { - "type": [ - "string", - "null" - ] - }, - "fields": { - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "retrieved_at": { - "type": [ - "string", - "null" - ] - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "fields", - "source_url", - "dataset_id", - "data_vintage", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "license": { - "additionalProperties": false, - "properties": { - "id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "terms_url": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "url", - "terms_url", - "verified_at" - ], - "type": "object" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "retrieval": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "anomalies": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "kind": { - "enum": [ - "timeout", - "network", - "http_4xx", - "http_5xx", - "rate_limited", - "malformed_body" - ], - "type": "string" - } - }, - "required": [ - "kind", - "count" - ], - "type": "object" - }, - "type": "array" - }, - "attempts": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "requests": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "unstable": { - "type": "boolean" - } - }, - "required": [ - "requests", - "attempts", - "anomalies", - "unstable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "retrieved_at": { - "type": "string" - }, - "served_from_cache": { - "type": [ - "boolean", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "agency": { - "type": [ - "string", - "null" - ] - }, - "database": { - "type": [ - "string", - "null" - ] - }, - "endpoint": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "agency", - "database", - "endpoint" - ], - "type": "object" - }, - "source_url": { - "type": "string" - } - }, - "required": [ - "contract_version", - "source", - "dataset", - "dimension_key", - "data_vintage", - "retrieved_at", - "source_url", - "api_version", - "license", - "citation", - "notices", - "derived", - "derivation_note", - "served_from_cache", - "retrieval", - "field_sources" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "field_sources": { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "enum": [ + "1.1", + "1.2" + ], + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +]
2 tool updates
v1.2.1- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
6 tool updates
v1.1.0- Changed
fetch2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
- Changed
ilo_get_data2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
- Changed
ilo_get_indicator_metadata2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
- Changed
ilo_list_dimension_values2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
- Changed
ilo_search_indicators2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
- Changed
search2 fields changed- added
Output schema / properties / provenance / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "citation": { + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "source": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "api_version": { + "type": [ + "string", + "null" + ] + }, + "citation": { + "type": "string" + }, + "contract_version": { + "const": "1.1", + "type": "string" + }, + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "version", + "name" + ], + "type": "object" + }, + "derivation_note": { + "type": [ + "string", + "null" + ] + }, + "derived": { + "type": "boolean" + }, + "dimension_key": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "field_sources": { + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "data_vintage": { + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "type": [ + "string", + "null" + ] + }, + "fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "license": { + "additionalProperties": false, + "properties": { + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "terms_url": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name", + "url", + "terms_url", + "verified_at" + ], + "type": "object" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "retrieval": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "retrieved_at": { + "type": "string" + }, + "served_from_cache": { + "type": [ + "boolean", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "agency": { + "type": [ + "string", + "null" + ] + }, + "database": { + "type": [ + "string", + "null" + ] + }, + "endpoint": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "agency", + "database", + "endpoint" + ], + "type": "object" + }, + "source_url": { + "type": "string" + } + }, + "required": [ + "contract_version", + "source", + "dataset", + "dimension_key", + "data_vintage", + "retrieved_at", + "source_url", + "api_version", + "license", + "citation", + "notices", + "derived", + "derivation_note", + "served_from_cache", + "retrieval", + "field_sources" + ], + "type": "object" + } +] - added
Output schema / properties / provenance / descriptionAdded value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
6 tool updates
v0.6.0- Added
fetch - Changed
ilo_get_data8 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / filters / descriptionPrevious value: -"Dimension id → code or list of codes (from ilo_list_dimension_values). REF_AREA is required (up to 30 area codes)."New value: +"Dimension id → code or list of codes (from ilo_list_dimension_values). REF_AREA is required (up to 30 area codes); any other dimension is optional and, left out, returns all of its categories." - added
Input schema / properties / filters / propertiesAdded value: +{ + "REF_AREA": { + "anyOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + } + ], + "description": "Area codes — REQUIRED, at most 30 per call (e.g. [\"BRA\",\"ARG\"]). Without them the ILO gateway times out (HTTP 504). Discover codes with ilo_list_dimension_values (dimension REF_AREA)." + } +} - removed
Input schema / properties / filters / propertyNamesRemoved value: -{ - "type": "string" -} - added
Input schema / properties / filters / requiredAdded value: +[ + "REF_AREA" +] - changed
Input schema / requiredPrevious value: -[ - "dataflow" -]New value: +[ + "dataflow", + "filters" +] - removed
Output schema / properties / dataflow / properties / name / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / dataflow / properties / name / typeAdded value: +[ + "string", + "null" +]
- Changed
ilo_get_indicator_metadata9 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / dimensions / items / properties / codelist / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / dimensions / items / properties / codelist / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / name / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / name / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / time_dimension / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / time_dimension / typeAdded value: +[ + "string", + "null" +]
- Changed
ilo_list_dimension_values3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / values / items / properties / name / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / values / items / properties / name / typeAdded value: +[ + "string", + "null" +]
- Changed
ilo_search_indicators3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / hintAdded value: +{ + "type": "string" +} - added
Output schema / properties / vocabulary_notesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
- Added
search
4 tool updates
v0.1.0- First observed
ilo_get_data - First observed
ilo_get_indicator_metadata - First observed
ilo_list_dimension_values - First observed
ilo_search_indicators
TDQS
Scored across 6 tools
The four ilo_* tools are cleanly separated (catalogue search, metadata, dimension codes, data values). However, ilo_search_indicators and the bare search tool both search the same ~1,200-dataflow ILOSTAT catalogue and can easily be mistaken for each other; the descriptions differentiate them (ILO dataflow ids vs. Deep Research document ids) but the overlap is a real misselection risk. fetch vs. ilo_get_indicator_metadata is less ambiguous since one returns document text and the other structural metadata.
The ilo_ prefixed tools follow a clear verb_noun pattern (ilo_search_indicators, ilo_get_indicator_metadata, ilo_list_dimension_values, ilo_get_data). The two contract tools break the convention with bare single-verb names (search, fetch) and no prefix, creating a mixed scheme. It remains readable and the split is explained, but conventions are not uniform.
Six tools is well within a healthy range for a statistical data server and each has a defined role. The only slight redundancy is the search/fetch pair layering a generic document-retrieval contract over an already data-focused surface, which costs a little tightness.
The data workflow is fully covered: find a dataflow (ilo_search_indicators), inspect its dimensions (ilo_get_indicator_metadata), resolve codes (ilo_list_dimension_values), then pull observations (ilo_get_data), with search/fetch adding document retrieval. Minor gaps exist (no bulk multi-dataflow query, no transforming/aggregating helper) but these are explicitly declared out of scope and can be worked around.
Maintenance
Related MCP Connectors
Search ILOSTAT labour indicators, query and compare series, build country profiles, run SQL.
ILOSTAT (International Labour Organization statistics) MCP — global labour
DBnomics MCP — meta-aggregator over 80+ stats providers
Statistics Netherlands (CBS / StatLine) OData MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for official statistics from Statistics Finland (Tilastokeskus) — the StatFin database, exposed through the PxWeb API. Search 3000+ tables, inspect their dimensions, and pull data as JSON-stat2.471 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides macro-economic data from World Bank, IMF, FRED, OECD, and RBI through a unified get_indicator interface.1-
- AlicenseNot gradedqualityAmaintenanceSearch and query the Eurostat catalogue — EU economy, demography, trade, health, and NUTS regional data via MCP with 5 tools and 1 resource.664 npm7Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables access to global labour statistics from ILOSTAT via the Pipeworx gateway.406 npmMIT