UNESCO Institute for Statistics (UIS) MCP Server
Summary: This MCP server lets you query the UNESCO Institute for Statistics catalogue and retrieve official education, science/R&D, culture and demographic data by country, region and year, with auditable provenance on every answer.
Search ~5,000 UIS indicators (
uis_search_indicators) by keyword, name or code, optionally filtered by theme (education, science/tech/innovation, culture, demographic/socioeconomic), with data availability (years, record counts) — and it auto-translates everyday/US wording (enrollment→enrolment, spending→expenditure, university→tertiary) and says so invocabulary_notes.Look up valid geographic codes (
uis_list_geo_units) — 462 ISO alpha-3 countries and regional aggregates, filterable by name, code or type.Retrieve actual statistical records (
uis_get_data) by indicator (up to 25), geo units and year range, with optional per-record footnotes; never truncates silently and never transforms values (derived: false).Answer questions in plain language inside any MCP client (Claude, ChatGPT, Cursor, etc.) — e.g. out-of-school children, primary completion trends, literacy by sex, researchers per million, R&D and education spending as a share of GDP.
Get provenance on every response — source URL, UIS data release/vintage, real retrieval timestamp, citation and CC BY-SA 4.0 license across
structuredContent,_metaand a text footer, in concise or detailed mode.Use ChatGPT Deep Research via the
search/fetchcontract, which returns ranked{id, title, url}documents and full readable Markdown for one indicator (catalogue entry + data sample + Data Browser link).Attach built-in resources (
uis://guide,uis://reference/key-indicators,uis://reference/provenance) for workflow, verified indicator codes and citation rules without extra calls.Run it hosted or locally — no installation, account or API key for the hosted Streamable HTTP endpoint, or the same server as an npm-based stdio process talking directly to the UIS Data API.
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., "@UNESCO Institute for Statistics (UIS) MCP ServerGet the gross enrollment ratio for primary education in France for 2019."
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.
UNESCO Institute for Statistics (UIS) — MCP Server
A public, hosted, provenance-first MCP server for the statistics of the UNESCO Institute for Statistics (UIS) — education, science and R&D, culture and communication — no installation, no account, no API key. Point your MCP client at the hosted endpoint and ask about enrolment, completion, out-of-school children, literacy, education spending, researchers and R&D expenditure by country, region and year. It runs on Cloudflare Workers over Streamable HTTP and talks to the official UIS Data API.
Independent project. This is an unofficial, community-built client of the UIS's public Data API — not affiliated with or endorsed by UNESCO or the UNESCO Institute for Statistics. Data remain © UNESCO-UIS under CC BY-SA 4.0; see Data license and attribution.
Every response carries a provenance block (source URL, the UIS data release it came from, real retrieval timestamp, license, UIS 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 do Instituto de Estatística da UNESCO — matrícula, conclusão, crianças fora da escola, alfabetização, gasto em educação e P&D por país, região e ano, 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:
"Which UNESCO indicators track out-of-school children?" (
uis_search_indicators)"How did primary completion evolve in Brazil, Peru and Colombia after 2015?" (
uis_get_data)"Is there a UNESCO series on government expenditure on education as a share of GDP?" (
uis_search_indicators→uis_get_data)"How many researchers per million inhabitants do the BRICS countries have since 2010?" (
uis_search_indicators→uis_get_data)"What is the adult literacy rate in Argentina and Chile, by sex?" (
uis_get_data)"Which geo unit code does the UIS use for Côte d'Ivoire, and which regional aggregates exist?" (
uis_list_geo_units)
Ask in your words, not UNESCO's. The UIS is worded in British statistical English, and the
catalogue is matched on the indicator name — so the everyday or US word used to return nothing
at all. Measured over the 5,063 indicators of the official catalogue (2026-09-16), and fixed
since 0.3.0: the search expands the term to the source's wording (OR within a term, AND across
terms — it only adds recall) and says it translated, in vocabulary_notes; a zero result
comes with a hint on what to try next. The same table feeds the search index (Deep Research).
you ask | hits before | UNESCO writes | hits |
| 0 | enrolment | 387 |
| 0 | expenditure | 57 |
| 0 | salary | 4 |
| 0 | tertiary | 448 |
| 0 | pre-primary, early childhood | 113 |
| 0 | primary | 886 |
| 0 | researchers | 11 |
| 0 | female | 1,252 |
| 0 | children, adolescents | 161, 131 |
| 0 | completion | 342 |
| 0 | pupil-qualified teacher ratio | 10 |
| 249 | internationally mobile students | 979 |
| 0 | primary education | 114 |
| 0 | illiterate, mathematics, vocational, doctoral, science, technology, engineering | 268, 79, 33, 24, 9 |
Only measured pairs go in (the asked word absent from the catalogue, the source's word
present) — the table lives in src/uis/vocabulary.ts, with the counts. A term the UIS does not
publish is left out and still returns zero, because an alias for data that does not exist
promises what the source does not have: dropout, tuition, unemployment and labor (labour
statistics belong to the sister server ilo-mcp-server; what
labor matches today are 62 names containing "collaboration").
Related MCP server: BNCC MCP
Comparison with the alternatives
Anyone who already works with UIS data 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, data release and licence attached to the answer. Versions measured on 2026-10-02.
Tool | What it is | When to prefer it |
uis-mcp-server (this) | Remote MCP server, hosted, nothing to install: 5 tools over the ~5,060 UIS indicators, 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 |
uisapi 0.1.1 (R, CRAN) | Community R client of the UIS Data API (not by UIS staff); also lists the bulk files | You are in R and want UIS series in a data frame for analysis |
unesco-reader 3.1.1 (Python, PyPI) | Community Python client of the UIS Data API | Your pipeline is Python |
global-education-mcp 0.4.0 (MCP, Python) | Another MCP server: UIS Data API plus the OECD Education at a Glance API | You want UIS and OECD education data side by side in one local server |
World Bank clients; WDI republishes many UIS education series, with a lag | You want UIS education series next to World Bank indicators | |
The UIS's own CSV files per data release (SDG and OPRI) | You need whole datasets, not answers | |
The source itself, which this server calls — no key | You are building your own client and want full control |
About SDMX: the UIS no longer serves it. Its legacy SDMX API reached end-of-life on
2020-06-23 (stated in the UIS's own February 2026 data release note) and the endpoint now answers
404 — generic SDMX clients that still list a UNESCO source (e.g. sdmx1) point at that dead
URL, and the DBnomics copy of UNESCO data is a frozen 2020-era snapshot. For SDMX over labour
statistics, see the sister server ilo-mcp-server, which talks
to the ILOSTAT SDMX API.
Do not use this server when you need a whole dataset rather than an answer (the bulk files are the right tool), when the question is not education, science, culture or communication statistics published by the UIS (labour → ILO, national accounts → IMF/World Bank), or when you need microdata: the UIS publishes aggregates, and so does this server.
Sister servers, same design and same provenance block, for other official sources: ILOSTAT (ILO labour statistics), 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://uis.sidneybissoli.com/mcpClaude Desktop / Claude Code and other clients with native remote support:
{
"mcpServers": {
"unesco-uis": {
"url": "https://uis.sidneybissoli.com/mcp"
}
}
}For clients that launch MCP servers as a command, use the
mcp-remote bridge:
{
"mcpServers": {
"unesco-uis": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://uis.sidneybissoli.com/mcp"]
}
}
}The uis-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 uis_* tools. Point the connector at the hosted endpoint, no key required:
https://uis.sidneybissoli.com/mcpsearch ranks the query against the full UIS catalogue (~5,060 indicators — education,
science/R&D, culture, demographic context) and returns { id, title, url } (ind:<code>, e.g.
ind:ROFST.1.CP); fetch returns the indicator as readable Markdown — name, theme, Data Browser
group and framework, available years, a data sample (Brazil and the SDG world aggregate, last five
years; one Data API call with a pinned release) and how to query it with uis_get_data — with the
public UIS Data Browser page as url
(https://databrowser.uis.unesco.org/view#indicatorPaths=<framework>%3A0%3A<code>), which is
what ChatGPT cites. In search/fetch the text channel is the Deep Research contract's JSON (no
footer); provenance travels in structuredContent and _meta. In ChatGPT's developer mode
(Settings → Security and login → Developer mode) any tool is callable — the uis_* 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 UIS Data API — same 5 tools and 3
resources, same limits, same provenance block, no Cloudflare in the loop. The surface of the two
runtimes is identical by construction (CI checks it: node scripts/dump-surface.mjs --stdio).
No install needed — the package is on npm (uis-mcp-server, Node ≥ 22):
{
"mcpServers": {
"unesco-uis": {
"command": "npx",
"args": ["-y", "uis-mcp-server"]
}
}
}Or from source:
git clone https://github.com/SidneyBissoli/uis-mcp-server
cd uis-mcp-server
npm install
npm run build
node dist/cli.js # serves MCP over stdio (Ctrl+C to stop)Differences from the hosted server, all due to the absence of Cloudflare bindings:
the current data release (
/versions/default) is kept in process memory: resolved once per session, not across sessions;the indicator catalogue and the geo units are downloaded from the official endpoints on the first search (
/definitions/indicators,/definitions/geounits— the same ones the hosted catalogue is seeded from; ~1 s), and the realretrieved_atof that download is what provenance reports;the in-memory catalogue does not download the UIS Data Browser definitions (~6.7 MB), so the URL that
fetchcites falls back to the Data Browser home page and thesearchindex lacks the group name in its keywords — Deep Research talks to the hosted server, which has them;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 ~5,060 indicators (4 themes) with data availability; translates the user's word to UNESCO's and says so ( | local catalogue (no upstream call) |
| 462 country and regional codes (NATIONAL/REGIONAL); paginated by | local catalogue (no upstream call) |
| records by indicator, geo unit and years, optional footnotes | 1 live Data API call per query (pinned release) |
| ChatGPT Deep Research contract: ranks a query against the full catalogue, returns | in-memory index built from the local catalogue (24 h) |
| ChatGPT Deep Research contract: one indicator as readable Markdown (catalogue entry + data sample) with the public Data Browser page as | local catalogue + 1 Data API call (sample) |
Typical flow: uis_search_indicators to find an indicator code → uis_list_geo_units for
country/region codes → uis_get_data with year filters.
Every response carries the portfolio's provenance block
(@sbissoli/mcp-provenance, modes
concise/detailed via the provenance_mode parameter) on three channels:
structuredContent, namespaced _meta (com.sidneybissoli.uis/*) and a text footer.
Since 1.1.0 the block includes retrieval, the origin diagnostic of the call — how many
requests went to the Data API, 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 the UIS (catalogue or cached release).
Resources
Three resources (static, text/markdown, no upstream call) that a client can attach to the
context before calling tools — they save the discovery calls most sessions spend on "which
indicator, which code":
URI | Content |
| tool workflow, code conventions (indicator code families and suffixes, ISO alpha-3 geo units, themes), limits, reporting rules |
| verified indicator codes by topic (completion, out-of-school, enrolment, literacy, learning proficiency, education spending, R&D for SDG 9.5, heritage spending for SDG 11.4, population) |
| meaning of every provenance field and how to cite the UIS, including what CC BY-SA ShareAlike requires downstream |
Behaviour and limits
Every data query pins the release.
uis_get_datasends an explicitversion=, resolved from/versions/defaultand cached for 24 h — reproducible, and it reuses the upstream's own cache. The release is thedata_vintage(e.g.20260507-91260335 (published 2026-05-08)); when the UIS publishes a new release, data queries move to it within 24 h.5,000 records per response, at most 25 indicators per call. Above that the server returns an explanatory error with the real count — it never truncates silently, since partial data presented as complete would break the provenance contract. The UIS's own ceiling of 100,000 records comes back as the upstream's explanatory HTTP 400, passed through.
The indicator catalogue is a snapshot of a UIS release, refreshed by hand when the UIS publishes a new one (2–3 times a year); its real
retrieved_atis reported in the provenance ofuis_search_indicators, so its age is always visible (served_from_cache: true).retrieved_atis always the real instant of extraction from the UIS, never the build or response time. When an answer joins parts extracted at different moments (uis_get_data: the current release, cached up to 24 h, plus the data fetched now;fetch: also the catalogue row), it is the OLDEST of them, andfield_sourcesgives each part its own instant and cache flag (since 1.5.1).Notices report footnote types, magnitude and qualifier, with counts; the full text of each footnote stays on the row (
include_footnotes: true).Every upstream call has a timeout and a retry policy (since 1.1.0, measured against the live API on 2026-09-27: release 1.1 s, small query 0.8 s, five whole indicators 2.9 s/3.5 MB, the 100k-cap 400 in 0.9 s): 35 s per attempt — ten times the worst legitimate case and above the 29 s of the AWS API Gateway in front of the UIS —, up to 3 attempts on 5xx, 429 (honouring
Retry-After) and network errors, 45 s in total per call. Timeouts, HTTP 504, the explanatory 400 and 404 are never retried. What happened is reported in the provenanceretrievalfield; a timeout or network failure becomes a readable error, not a raw exception.derivedis alwaysfalse— the server does not transform values.Language: English; timezone: UTC (UIS data is published in English).
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/uis-mcp-serverData license and attribution
UIS data: CC BY-SA 4.0 (terms of the UIS Data Browser, which govern the Data API; license verified 2026-08-04).
UIS attribution in every response (
citationfield), with the full URL and the extraction date:Source: UNESCO Institute for Statistics (UIS), <URL>, date of extraction <date>.ShareAlike: anything you redistribute that is built on these data must keep the CC BY-SA 4.0 license — the
uis://reference/provenanceresource spells it out.The UNESCO logo is not used and no endorsement is implied; that is why the server is called
uis-mcp-serverand not "unesco-mcp-server". The ILOSTAT data (CC BY 4.0) live in a separate server, so the two licences never share a response.
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 (tools, framework, vocabulary, in-memory catalogue, eval fixtures)
npm run dev # http://localhost:8787/mcp (Worker)
npm run build # stdio runtime → dist/cli.js (what ships to npm)
node scripts/dump-surface.mjs --stdio # offline smoke of the build: initialize → tools/resources/prompts
# Catalogue seed (D1) — required before first use:
node scripts/seed-uis-catalog.mjs
npx wrangler d1 execute uis-catalog --local --file=scripts/seed-uis-catalog.sql
npx wrangler d1 execute uis-catalog --remote --file=scripts/seed-uis-catalog.sql
npm run deploy
node scripts/smoke-mcp.mjs # smoke test against production (initialize → tools/list == /status → uis_* → search/fetch → errors)Notes for operators:
Catalogue refresh is manual, once per UIS data release (no cron). The production smoke prints the current Data API release; when it differs from the seed's release, re-seed with the three commands above. Data queries follow the default release on their own, so only the catalogue can age — and its age is exposed in provenance.
The UIS Data API accepts Node's
fetchas is (no header workaround needed, unlike the ILO gateway).Optional Bearer auth (
wrangler secret put API_KEY); token-bucket rate limit per IP.
Evals
@sbissoli/mcp-evals: 22 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% (20/20) — 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): 10/10 — evals/results/2026-08-07-e2e.md.
Endpoints
Route | Purpose |
| landing page (service identity + contact — public) |
| liveness |
| version, tool count and names, current deploy (feeds the README badges) |
| aggregated usage (MCP endpoint only; no IPs, no query content) |
| MCP server card for directory scanners (derived from the live |
| MCP Streamable HTTP |
Security
Snyk Agent Scan (2026-08-07, before search and fetch were added): passed — report in
security/.
License
Code: MIT. Data: UIS, CC BY-SA 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 UNESCO.
Available Tools
5 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 UNESCO UIS statistics (≈5,000 indicators: education — enrolment, completion, literacy, teachers, spending, SDG 4 —, science/R&D (SDG 9.5), culture (SDG 11.4) and demographic context) catalog. Only ids returned by search are valid; an unknown id returns an error.
The uis_* 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 the UIS Data API, 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 the UIS (catalogue or cached answer) |
| attribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/destructive/openWorld, so the safety profile is covered. The description still adds real value beyond them: the error behavior on unknown ids, the fact that it performs a live GET against the public source when needed, and the OpenAI Deep Research contract framing. It stops short of rich detail (rate limits, latency, partial-fetch semantics), so a 4 rather than 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-loads the purpose and return contract in the first sentence, then context, then behavior — a sensible ordering with little waste. The parenthetical catalog of SDG/indicator domains is somewhat decorative, but it does orient the agent to the corpus, so the cost is minor.
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 one-parameter, read-only fetch with an output schema, the description needs to cover provenance, failure behavior, and sibling routing — and it does all three. Return-field documentation is technically redundant given the output schema, but harmless; nothing an agent needs to call this 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?
The single `id` parameter is already documented at 100% schema coverage, so the baseline is 3. The description adds meaning on top by constraining provenance ('only ids returned by `search` are valid') and reiterating the id's role in the return tuple, which is more than the schema says.
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 and resource ('Returns the full document for an id obtained from `search`') and names the return shape. It explicitly distinguishes itself from `search` (which produces the id) and from the `uis_*` family, 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?
Gives an explicit precondition ('Only ids returned by `search` are valid'), an explicit failure mode ('an unknown id returns an error'), and an explicit when-not: 'The `uis_*` tools remain the tools for data queries.' Both the allowed source and the excluded alternative are spelled out.
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 UNESCO UIS statistics (≈5,000 indicators: education — enrolment, completion, literacy, teachers, spending, SDG 4 —, science/R&D (SDG 9.5), culture (SDG 11.4) and demographic context) 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 uis_* 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 the UIS Data API, 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 the UIS (catalogue or cached answer) |
| attribution | 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 the safety profile is largely covered. The description still adds real context beyond that: the catalog is public and cached in memory, results are capped at 10 and relevance-ordered, and an empty list means no match. Return shape is largely deferred to the output schema, so a 4 rather than 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 purpose and scope, then usage routing, then query/behavior notes. Each block earns its place, though the Deep Research contract paragraph is somewhat verbose and could be trimmed.
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?
Covers purpose, scope, sibling routing, query semantics, result shape/limit, and behavioral traits, and an output schema exists so return values need not be re-explained. Nothing an agent needs to call this 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% for the single query parameter, so the baseline is 3. The description adds semantics the schema does not: accepts natural language or keywords, either Portuguese or English, and accents/case are ignored — meaningful invocation guidance beyond the field description.
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 resource (UNESCO UIS statistics catalog) with rough scale (≈5,000 indicators) and domain coverage, and explicitly frames itself as a catalog index rather than a data query. An agent can distinguish it from uis_get_data or uis_search_indicators 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?
Explicitly names the alternative tools: 'For direct questions and for data (values, series, rankings) prefer the uis_* tools' and 'Pass one of the returned ids to fetch'. It also gives the selecting condition (Deep Research contract requires exactly search and fetch), so 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.
uis_get_dataGet UNESCO UIS dataARead-onlyIdempotentInspect
Statistical records from the UNESCO Institute for Statistics Data API, filtered by indicator codes (from uis_search_indicators, up to 25), geo unit codes (from uis_list_geo_units) and year range. Set include_footnotes for per-record source notes. Returns raw UIS records only — it does not aggregate, convert or otherwise transform values; ILO labour statistics live in the sibling ILOSTAT MCP server. Broad queries are rejected with the record count — narrow by geo unit or years. A code that does not exist is an error carrying the UIS API's own wording, never an empty result: zero rows means the codes are real and the selection has no data, and the hint then relays what the UIS reported (including the indicator's available year range). When only SOME of the requested codes exist, the matching rows are returned with warnings naming the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | Last year, e.g. 2024 | |
| geo_units | No | Geo unit codes from uis_list_geo_units (e.g. ["BRA","ARG"]); omit for all | |
| indicators | Yes | Indicator codes from uis_search_indicators (e.g. ["CR.1"]) | |
| start_year | No | First year, 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) | |
| include_footnotes | No | Include per-record footnotes (source notes); default false |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| columns | 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 the UIS Data API, 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 the UIS (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, so the bar is whether the description adds operationally useful behaviour beyond that. It does: no aggregation or transformation, rejection of broad queries with the record count, errors for non-existent codes carrying the API's own wording, and warnings when only some codes match. A 4 rather than 5 because nothing is said about rate limits or response size beyond the broad-query rejection.
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 purpose, then layers constraints, boundary routing, and error/warning semantics — every sentence carries distinct operational content with no filler or restatement of the title.
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-shape explanation is unnecessary, and the description instead closes the remaining gaps an agent needs: code provenance, broad-query rejection, and the distinction between error and empty result. Nothing material is missing for a six-parameter read tool.
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 indicators, geo_units, year bounds, provenance_mode and include_footnotes. The description adds only marginal semantics (why include_footnotes matters, the 25-code origin), which is the baseline expectation 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?
States a specific verb+resource ('Statistical records from the UNESCO Institute for Statistics Data API') and immediately names the filtering dimensions. It also carves out its boundary against the ILO statistics sibling server, so an agent can distinguish it from neighbours 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 source tools for required code values (uis_search_indicators, uis_list_geo_units), the 25-indicator cap, and the when-to-use substitution rule ('ILO labour statistics live in the sibling ILOSTAT MCP server'). It also states a negative condition — broad queries are rejected — which is unambiguous routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uis_list_geo_unitsList UNESCO UIS geo unitsARead-onlyIdempotentInspect
Valid geographic codes for uis_get_data: 462 geo units — countries (NATIONAL, ISO alpha-3 codes like BRA) and regional aggregates (REGIONAL). Filter by name/code and type. Does not return statistical values; these codes apply only to uis_get_data, not to other statistical servers.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Only countries (NATIONAL) or only regional aggregates | |
| limit | No | Maximum results (default 100) | |
| offset | No | Results to skip, for pagination (default 0) | |
| search | No | Case-insensitive filter on name, or exact code (e.g. "BRA") | |
| 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 | |
| showing | Yes | |
| has_more | Yes | |
| geo_units | 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 the UIS Data API, 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 the UIS (catalogue or cached answer) |
| attribution | Yes | |
| next_offset | No | |
| total_matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value beyond that by clarifying that no statistical values are returned and by scoping the codes to uis_get_data only, though it says nothing about pagination behavior.
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, front-loaded with the core identity of the resource and followed by scope constraints. Every sentence carries information and none is redundant with the schema.
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?
With an output schema, full parameter coverage, and safety annotations, the description only needs to add scope and consumer context, which it does. An agent has everything required to select and invoke this 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 description coverage is 100%, so all five parameters are already documented in the schema. The description's mention of 'filter by name/code and type' maps onto the search and type parameters but adds no syntax or format detail beyond the schema, making the baseline 3 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 the resource precisely (462 geo units, split into NATIONAL countries with ISO alpha-3 codes and REGIONAL aggregates) and states exactly what the tool produces. It also ties the output to its consumer, uis_get_data, which distinguishes it from the generic 'fetch'/'search' siblings.
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 gives a clear scope rule: these codes apply only to uis_get_data and not to other statistical servers, and that filtering is available by name/code and type. It stops short of an explicit 'call this before uis_get_data to resolve a code' instruction, but the intended usage is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uis_search_indicatorsSearch UNESCO UIS indicatorsARead-onlyIdempotentInspect
Search the UNESCO Institute for Statistics catalogue of ~5,000 indicators — education, science/R&D, culture and communication — by keywords in the name or code, optionally filtered by theme. All terms must match (AND, case-insensitive), so start with 2–3 words and drop terms if you get 0 results. Everyday and US wording is resolved to the UIS's own (enrollment→enrolment, spending→expenditure, preschool→pre-primary, university→tertiary, graduation→completion, girls/boys→female/male); when that happens the response says so in vocabulary_notes. Returns indicator codes to use with uis_get_data, plus each indicator's data availability (years, record count). Searches the catalogue only — it does not return statistical values (use uis_get_data); ILO labour statistics live in the sibling ILOSTAT MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 20) | |
| query | Yes | Keywords, matched against indicator name and code, AND between terms (e.g. "literacy rate youth") | |
| theme | No | Restrict to one UIS theme | |
| 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 the UIS Data API, 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 the UIS (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 declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description goes further by disclosing matching semantics (AND, case-insensitive), automatic vocabulary normalization (enrollment→enrolment etc.) surfaced via vocabulary_notes, and the response payload (indicator codes plus data availability years/record count). Rate limits and result-ordering are the only notable omissions.
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 purpose then scope, exclusions, and search tips; every sentence carries information. It is dense as a single block—splitting the search-strategy and synonym notes into list form would improve scannability—but nothing is 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?
Complete for a search tool: purpose, scoping, alternatives, query strategy, synonym behavior, and return contents are all covered. An output schema exists so return values need not be detailed, yet the description still orients the agent on what the results enable.
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 meaningfully enriches the query parameter by explaining AND semantics and the synonym resolution that shapes results, and clarifies that theme is an optional restriction. It adds interpretive value beyond the field-level schema text without duplicating it.
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 (UIS indicator catalogue, ~5,000 indicators across education, science/R&D, culture, communication) and the matching fields (name or code). It explicitly distinguishes itself from uis_get_data (values) and the ILOSTAT sibling, so an agent can route correctly without opening a 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, when-not-to-use, and alternatives: 'use uis_get_data' for statistical values and 'ILO labour statistics live in the sibling ILOSTAT MCP server'. It also adds actionable query strategy ('start with 2–3 words and drop terms if you get 0 results') and describes the synonym-resolution fallback.
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.
5 tool updates
v1.3.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
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" + } +]
- Changed
uis_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
uis_list_geo_units1 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
uis_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" + } +]
2 tool updates
v1.2.2- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
5 tool updates
v1.0.1- 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 the UIS Data API, 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 the UIS (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 the UIS Data API, 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 the UIS (catalogue or cached answer)"
- Changed
uis_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 the UIS Data API, 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 the UIS (catalogue or cached answer)"
- Changed
uis_list_geo_units2 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 the UIS Data API, 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 the UIS (catalogue or cached answer)"
- Changed
uis_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 the UIS Data API, 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 the UIS (catalogue or cached answer)"
5 tool updates
v0.4.0- First observed
fetch - First observed
search - First observed
uis_get_data - First observed
uis_list_geo_units - First observed
uis_search_indicators
TDQS
Scored across 5 tools
Two tools—uis_search_indicators and search—both search the same UNESCO UIS indicator catalogue, which creates real overlap. The descriptions do clarify their distinct purposes (indicator codes vs. document ids for Deep Research), but an agent could still misselect between them.
Three tools follow a clear uis_verb_noun snake_case pattern (uis_search_indicators, uis_list_geo_units, uis_get_data), while search and fetch are bare verbs. The deviation is intentional due to an external contract, but the set still mixes conventions.
Five tools is well-scoped for the domain: discover indicators, discover geographic codes, retrieve data, and support document retrieval via search/fetch. Each tool has a clear place and the count avoids both bloat and thinness.
The surface covers the core data workflow—find indicators, find geo units, get records—plus document retrieval through search and fetch. Minor gaps exist, such as no dedicated indicator metadata endpoint, but agents can work around these using search results and fetch.
Maintenance
Related MCP Connectors
UNESCO Institute for Statistics (UIS) MCP — keyless.
Hosted MCP server for finding authoritative primary data sources and official portals.
Open-source MCP for official development indicators with provenance and citations.
MCP server for Statistics Sweden (SCB) - 1200+ tables with population, economy, environment data
Related MCP Servers
- AlicenseAqualityAmaintenanceProvides AI assistants access to international education data from UNESCO UIS (4,000+ indicators) and OECD Education at a Glance via SDMX, with no API keys required.1062 PyPI1MIT
- FlicenseAqualityCmaintenanceMCP server that exposes skills from the Brazilian National Common Curricular Base (BNCC) with thematic units, knowledge objects, and prioritization layer from Mapa de Foco, enabling lookup, search, listing, and statistics of educational skills.514-
- AlicenseAqualityCmaintenanceMCP server for UNICEF child development statistics. Query 790+ child-focused indicators across 200+ countries with disaggregations by sex, age, wealth quintile, and residence. No API key required.956 PyPI6MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that connects AI assistants to UNESCO Institute for Statistics data, enabling natural language search, retrieval, and comparison of indicators across countries.133MIT