unesco-heritage-mcp-server

v0.2.0 pre-1.0

Search UNESCO World Heritage sites, intangible heritage, biosphere reserves, and Global Geoparks via MCP. STDIO or Streamable HTTP.

unesco-heritage.caseyjhand.com/mcp
claude mcp add --transport http unesco-heritage-mcp-server https://unesco-heritage.caseyjhand.com/mcp
codex mcp add unesco-heritage-mcp-server --url https://unesco-heritage.caseyjhand.com/mcp
{
  "mcpServers": {
    "unesco-heritage-mcp-server": {
      "url": "https://unesco-heritage.caseyjhand.com/mcp"
    }
  }
}
gemini mcp add --transport http unesco-heritage-mcp-server https://unesco-heritage.caseyjhand.com/mcp
{
  "mcpServers": {
    "unesco-heritage-mcp-server": {
      "command": "bunx",
      "args": [
        "mcp-remote",
        "https://unesco-heritage.caseyjhand.com/mcp"
      ]
    }
  }
}
{
  "mcpServers": {
    "unesco-heritage-mcp-server": {
      "type": "http",
      "url": "https://unesco-heritage.caseyjhand.com/mcp"
    }
  }
}
curl -X POST https://unesco-heritage.caseyjhand.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'

Tools

9

unesco_search_sites

open-world

Search the UNESCO World Heritage List by keyword, country, category (Cultural, Natural, Mixed), region, inscription criteria (i)–(x), inscription year range, Danger-list status, transboundary status, or distance from a point. Every keyword must appear at the start of a word in a site's name (any of six languages), description, or statement of Outstanding Universal Value, and name matches rank first. A country is an ISO 3166-1 alpha-2 or alpha-3 code and matches every site it shares, transboundary sites included. Set in_danger to true for the List of World Heritage in Danger; the data records the year of each site's current Danger-list entry but no threat factors. Criterion (vi) is inferred from each site's statement of Outstanding Universal Value and marked as inferred. Results page with next_cursor and carry facet counts over the whole match.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_search_sites",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Keywords; every word must match the start of a word in a site's name (any of six languages), description, or statement of Outstanding Universal Value. Case, accents, and punctuation are ignored, so the query must contain at least one letter or digit and at most 16 distinct words; no phrases, operators, or fuzzy matching.",
      "type": "string",
      "maxLength": 200
    },
    "country": {
      "description": "ISO 3166-1 alpha-2 or alpha-3 code, any case (FR, FRA). Matches every site the country takes part in, transboundary sites included. For a country name, look up its code with unesco_list_reference (topic countries).",
      "type": "string",
      "maxLength": 64
    },
    "category": {
      "description": "Site category: Cultural, Natural, or Mixed.",
      "type": "string",
      "enum": [
        "Cultural",
        "Natural",
        "Mixed"
      ]
    },
    "region": {
      "description": "UNESCO region: Africa, Arab States, Asia and the Pacific, Europe and North America, or Latin America and the Caribbean (codes AFR, ARB, APA, EUR, LAC accepted).",
      "type": "string",
      "enum": [
        "Africa",
        "Arab States",
        "Asia and the Pacific",
        "Europe and North America",
        "Latin America and the Caribbean"
      ]
    },
    "criteria": {
      "description": "Inscription criteria a site must all carry. (i) A masterpiece of human creative genius. (ii) An important interchange of human values over time or within a cultural area, in architecture, technology, monumental arts, town planning, or landscape design. (iii) A unique or exceptional testimony to a cultural tradition or a civilization, living or vanished. (iv) An outstanding example of a type of building, architectural or technological ensemble, or landscape illustrating significant stages in human history. (v) An outstanding example of traditional human settlement, land use, or sea use representative of a culture or of human interaction with the environment, especially where vulnerable to irreversible change. (vi) Direct association with events, living traditions, ideas, beliefs, or artistic and literary works of outstanding universal significance. (vii) Superlative natural phenomena, or areas of exceptional natural beauty and aesthetic importance. (viii) An outstanding example of a major stage of Earth's history, including the record of life, significant ongoing geological processes, or significant landforms. (ix) An outstanding example of significant ongoing ecological and biological processes in the evolution of ecosystems and communities of plants and animals. (x) The most important natural habitats for in-situ conservation of biological diversity, including those holding threatened species of outstanding universal value. Criterion (vi) is inferred from the statement of Outstanding Universal Value, since UNESCO's criteria fields omit it.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "description": "A criterion numeral i–x; 1–10 and (iv)-style forms are accepted.",
        "type": "string",
        "enum": [
          "i",
          "ii",
          "iii",
          "iv",
          "v",
          "vi",
          "vii",
          "viii",
          "ix",
          "x"
        ]
      }
    },
    "in_danger": {
      "description": "true: only sites on the List of World Heritage in Danger. false: only sites not on it. Omit for both.",
      "type": "boolean"
    },
    "transboundary": {
      "description": "true: only sites shared by more than one State Party. false: only single-State sites.",
      "type": "boolean"
    },
    "inscribed_from": {
      "description": "Earliest inscription year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "inscribed_to": {
      "description": "Latest inscription year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "near": {
      "description": "Only sites within radius_km of this point: a site matches when its representative point or any of its components lies within the radius, and a site with neither never matches. distance_km and the distance sort use the nearest of those points.",
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude of the point, in decimal degrees (−90 to 90)."
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude of the point, in decimal degrees (−180 to 180)."
        },
        "radius_km": {
          "description": "Search radius in kilometres (up to 5000, default 100).",
          "default": 100,
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 5000
        }
      },
      "required": [
        "latitude",
        "longitude",
        "radius_km"
      ],
      "additionalProperties": false
    },
    "sort": {
      "description": "Result order. Default: relevance when query is set, else distance when near is set, else name. relevance needs query; distance needs near. Absent areas and Danger years sort last.",
      "type": "string",
      "enum": [
        "relevance",
        "name",
        "inscribed_newest",
        "inscribed_oldest",
        "area_largest",
        "danger_listed_newest",
        "distance"
      ]
    },
    "include_description": {
      "description": "Set false to leave each row's description out of the response (default true); unesco_get_site returns it. Which sites match, their order, and matched_in are unchanged.",
      "default": true,
      "type": "boolean"
    },
    "limit": {
      "description": "Maximum results per page (1–50, default 20).",
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "description": "Opaque continuation cursor from the previous call's next_cursor. Pass it with the same filters and sort to fetch the next page.",
      "type": "string",
      "maxLength": 1024
    }
  },
  "required": [
    "include_description",
    "limit"
  ],
  "additionalProperties": false
}
view source ↗

unesco_get_site

open-world

Fetch one World Heritage site's full record by id_no: its description, statement of Outstanding Universal Value, each inscription criterion with its meaning (criterion (vi) marked as inferred), States Parties, coordinates, area, inscription and later years, Danger-list year, component parts, names in six languages, and the main image with its copyright credit. Intangible heritage UNESCO links to the site is listed by unesco_search_intangible_heritage with world_heritage_site.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_get_site",
    "arguments": {
      "id_no": "<id_no>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id_no": {
      "description": "The site's World Heritage id_no, from unesco_search_sites. A number, a digit string, or the site's whc.unesco.org/en/list/{id} page URL.",
      "type": "string",
      "pattern": "^[1-9]\\d{0,4}$"
    },
    "max_components": {
      "description": "Maximum component parts to list (0–1000, default 20). 0 omits the list but keeps components_total; the largest site has 758 components.",
      "default": 20,
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "id_no",
    "max_components"
  ],
  "additionalProperties": false
}
view source ↗

unesco_search_intangible_heritage

open-world

Search UNESCO's Intangible Cultural Heritage lists — the Representative List, the Urgent Safeguarding List, and the Register of Good Safeguarding Practices — by keyword, country, list, inscription year range, multinational status, or linked World Heritage site. Every keyword must appear at the start of a word in an element's English or French name, its UNESCO concept terms, or its description, and name matches rank first. A country is an ISO 3166-1 alpha-2 or alpha-3 code and matches every element it shares, multinational elements included. world_heritage_site takes a site's id_no and lists the elements UNESCO links to it. Rows omit the description; read it with unesco_get_intangible_heritage_element. Results page with next_cursor and carry facet counts over the whole match.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_search_intangible_heritage",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Keywords; every word must match the start of a word in an element's English or French name, its UNESCO concept terms, or its description. Case, accents, and punctuation are ignored, so the query must contain at least one letter or digit and at most 16 distinct words; no phrases, operators, or fuzzy matching.",
      "type": "string",
      "maxLength": 200
    },
    "country": {
      "description": "ISO 3166-1 alpha-2 or alpha-3 code, any case (FR, FRA). Matches every element the country shares, multinational elements included. For a country name, look up its code with unesco_list_reference (topic countries).",
      "type": "string",
      "maxLength": 64
    },
    "list": {
      "description": "Intangible heritage list: Representative List, Urgent Safeguarding List, or Register of Good Safeguarding Practices (acronyms RL, USL, Art18 accepted).",
      "type": "string",
      "enum": [
        "Representative List",
        "Urgent Safeguarding List",
        "Register of Good Safeguarding Practices"
      ]
    },
    "multinational": {
      "description": "true: only elements shared by more than one country. false: only single-country elements.",
      "type": "boolean"
    },
    "world_heritage_site": {
      "description": "A World Heritage site's id_no (from unesco_search_sites or unesco_get_site); lists the elements UNESCO links to that site. A number, a digit string, or the site's whc.unesco.org/en/list/{id} page URL.",
      "type": "string",
      "pattern": "^[1-9]\\d{0,4}$"
    },
    "inscribed_from": {
      "description": "Earliest inscription year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "inscribed_to": {
      "description": "Latest inscription year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "sort": {
      "description": "Result order. Default: relevance when query is set, else name. relevance needs query.",
      "type": "string",
      "enum": [
        "relevance",
        "name",
        "inscribed_newest",
        "inscribed_oldest"
      ]
    },
    "limit": {
      "description": "Maximum results per page (1–50, default 20).",
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "description": "Opaque continuation cursor from the previous call's next_cursor. Pass it with the same filters and sort to fetch the next page.",
      "type": "string",
      "maxLength": 1024
    }
  },
  "required": [
    "limit"
  ],
  "additionalProperties": false
}
view source ↗

unesco_get_intangible_heritage_element

open-world

Fetch one Intangible Cultural Heritage element's full record by ich_ref: its description, the list it is inscribed on, the countries that share it, its inscription year, UNESCO concept terms, the World Heritage sites UNESCO links to it, its UNESCO page, and the main image with its caption and copyright credit.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_get_intangible_heritage_element",
    "arguments": {
      "ich_ref": "<ich_ref>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ich_ref": {
      "description": "The element's ich_ref, from unesco_search_intangible_heritage. A number, a digit string, or the element's ich.unesco.org/en/{RL|USL|Art18}/{ref} page URL.",
      "type": "string",
      "pattern": "^[1-9]\\d{0,4}$"
    }
  },
  "required": [
    "ich_ref"
  ],
  "additionalProperties": false
}
view source ↗

unesco_search_biosphere_reserves

open-world

Search the World Network of Biosphere Reserves (UNESCO Man and the Biosphere Programme) by keyword, country, region, MAB regional network, designation year range, transboundary or Small Island Developing States status, or distance from a point. Every keyword must appear at the start of a word in the reserve's name, introduction, or ecological or socio-economic description; there is no biome or ecosystem field, so an ecosystem search is a keyword search such as mangrove or alpine. A country is an ISO 3166-1 alpha-2 or alpha-3 code. A transboundary reserve appears once per participating country, each with its own mab_id. Results page with next_cursor and carry facet counts over the whole match.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_search_biosphere_reserves",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Keywords; every word must match the start of a word in the reserve's name, introduction, or ecological or socio-economic description. Case, accents, and punctuation are ignored, so the query must contain at least one letter or digit and at most 16 distinct words; no phrases, operators, or fuzzy matching. For an ecosystem, use a habitat word such as mangrove, wetland, or alpine.",
      "type": "string",
      "maxLength": 200
    },
    "country": {
      "description": "ISO 3166-1 alpha-2 or alpha-3 code, any case (FR, FRA). Matches the reserve's country; a transboundary reserve has one row per participating country. For a country name, look up its code with unesco_list_reference (topic countries).",
      "type": "string",
      "maxLength": 64
    },
    "region": {
      "description": "UNESCO region: Africa, Arab States, Asia and the Pacific, Europe and North America, or Latin America and the Caribbean (codes AFR, ARB, APA, EUR, LAC accepted). Matches any of a reserve's regions.",
      "type": "string",
      "enum": [
        "Africa",
        "Arab States",
        "Asia and the Pacific",
        "Europe and North America",
        "Latin America and the Caribbean"
      ]
    },
    "regional_network": {
      "description": "MAB regional network, by full name or acronym (AfriMAB, ArabMAB, EABRN, EuroMAB, IberoMAB, SACAM, SeaBRnet), any case. A few reserves belong to no network.",
      "type": "string",
      "enum": [
        "African Biosphere Reserve Network (AfriMAB)",
        "Arab States Biosphere Reserve Network (ArabMAB)",
        "East Asian Biosphere Reserve Network (EABRN)",
        "Europe and North America Biosphere Reserve Network (EuroMAB)",
        "Ibero-American MAB Network (IberoMAB)",
        "South and Central Asia MAB Network (SACAM)",
        "Southeast Asian Biosphere Reserve Network (SeaBRnet)"
      ]
    },
    "transboundary": {
      "description": "true: only transboundary reserves (one row per participating country). false: only single-country reserves.",
      "type": "boolean"
    },
    "sids": {
      "description": "true: only reserves in Small Island Developing States. false: only reserves elsewhere.",
      "type": "boolean"
    },
    "designated_from": {
      "description": "Earliest designation year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "designated_to": {
      "description": "Latest designation year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "near": {
      "description": "Only reserves within radius_km of this point. Every reserve has coordinates.",
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude of the point, in decimal degrees (−90 to 90)."
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude of the point, in decimal degrees (−180 to 180)."
        },
        "radius_km": {
          "description": "Search radius in kilometres (up to 5000, default 100).",
          "default": 100,
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 5000
        }
      },
      "required": [
        "latitude",
        "longitude",
        "radius_km"
      ],
      "additionalProperties": false
    },
    "sort": {
      "description": "Result order. Default: relevance when query is set, else distance when near is set, else name. relevance needs query; distance needs near. area_largest orders by total recorded area.",
      "type": "string",
      "enum": [
        "relevance",
        "name",
        "designated_newest",
        "designated_oldest",
        "area_largest",
        "distance"
      ]
    },
    "include_description": {
      "description": "Set false to leave each row's introduction out of the response (default true); unesco_get_biosphere_reserve returns it. Which reserves match, their order, and matched_in are unchanged.",
      "default": true,
      "type": "boolean"
    },
    "limit": {
      "description": "Maximum results per page (1–50, default 20).",
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "description": "Opaque continuation cursor from the previous call's next_cursor. Pass it with the same filters and sort to fetch the next page.",
      "type": "string",
      "maxLength": 1024
    }
  },
  "required": [
    "include_description",
    "limit"
  ],
  "additionalProperties": false
}
view source ↗

unesco_get_biosphere_reserve

open-world

Fetch one biosphere reserve's full record by mab_id: its introduction, ecological and socio-economic characteristics, core, buffer, and transition areas (terrestrial and marine, in hectares) with resident population by zone, designation, extension, renaming, and periodic-review years, coordinates, and its UNESCO page.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_get_biosphere_reserve",
    "arguments": {
      "mab_id": "<mab_id>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "mab_id": {
      "description": "The reserve's mab_id, from unesco_search_biosphere_reserves. Case and accents are ignored.",
      "type": "string",
      "minLength": 1,
      "maxLength": 20
    }
  },
  "required": [
    "mab_id"
  ],
  "additionalProperties": false
}
view source ↗

unesco_search_geoparks

open-world

Search UNESCO Global Geoparks by keyword, country, designation year range, transnational status, or distance from a point. Every keyword must appear at the start of a word in the geopark's name, introduction, description, or account of how it sustains local communities, and name matches rank first. A country is an ISO 3166-1 alpha-2 or alpha-3 code and matches every geopark it takes part in, transnational geoparks included. Geoparks UNESCO recognized before the Global Geopark label existed are dated 2015, the year it was created. Results page with next_cursor and carry facet counts over the whole match.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_search_geoparks",
    "arguments": {}
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Keywords; every word must match the start of a word in the geopark's name, introduction, description, or account of sustaining local communities. Case, accents, and punctuation are ignored, so the query must contain at least one letter or digit and at most 16 distinct words; no phrases, operators, or fuzzy matching. For a landform, use a word such as volcanic, karst, or fossil.",
      "type": "string",
      "maxLength": 200
    },
    "country": {
      "description": "ISO 3166-1 alpha-2 or alpha-3 code, any case (FR, FRA). Matches every geopark the country takes part in, transnational geoparks included. For a country name, look up its code with unesco_list_reference (topic countries).",
      "type": "string",
      "maxLength": 64
    },
    "transnational": {
      "description": "true: only geoparks spanning more than one country. false: only single-country geoparks.",
      "type": "boolean"
    },
    "designated_from": {
      "description": "Earliest designation year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "designated_to": {
      "description": "Latest designation year, inclusive.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "near": {
      "description": "Only geoparks within radius_km of this point. Every geopark has one point, which the distance measures.",
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude of the point, in decimal degrees (−90 to 90)."
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude of the point, in decimal degrees (−180 to 180)."
        },
        "radius_km": {
          "description": "Search radius in kilometres (up to 5000, default 100).",
          "default": 100,
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 5000
        }
      },
      "required": [
        "latitude",
        "longitude",
        "radius_km"
      ],
      "additionalProperties": false
    },
    "sort": {
      "description": "Result order. Default: relevance when query is set, else distance when near is set, else name. relevance needs query; distance needs near. area_largest orders by recorded area.",
      "type": "string",
      "enum": [
        "relevance",
        "name",
        "designated_newest",
        "designated_oldest",
        "area_largest",
        "distance"
      ]
    },
    "include_description": {
      "description": "Set false to leave each row's introduction out of the response (default true); unesco_get_geopark returns it. Which geoparks match, their order, and matched_in are unchanged.",
      "default": true,
      "type": "boolean"
    },
    "limit": {
      "description": "Maximum results per page (1–50, default 20).",
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "description": "Opaque continuation cursor from the previous call's next_cursor. Pass it with the same filters and sort to fetch the next page.",
      "type": "string",
      "maxLength": 1024
    }
  },
  "required": [
    "include_description",
    "limit"
  ],
  "additionalProperties": false
}
view source ↗

unesco_get_geopark

open-world

Fetch one UNESCO Global Geopark's full record by ugg_id: its countries, designation year, transnational status, area and resident population as recorded, coordinates, UNESCO's introduction and description, its account of how the geopark sustains local communities, its own website, and its UNESCO page.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_get_geopark",
    "arguments": {
      "ugg_id": "<ugg_id>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ugg_id": {
      "description": "The geopark's ugg_id, such as EUFR10, from unesco_search_geoparks. Case and surrounding whitespace are ignored.",
      "type": "string",
      "maxLength": 20,
      "pattern": "^[A-Za-z0-9]+$"
    }
  },
  "required": [
    "ugg_id"
  ],
  "additionalProperties": false
}
view source ↗

unesco_list_reference

open-world

List the vocabulary the other unesco_ tools accept and the coverage of the underlying datasets: the ten inscription criteria with their meanings and site counts, the countries in each dataset with their ISO alpha-2 and alpha-3 codes and record counts, the five UNESCO regions, the three intangible heritage lists, the MAB regional networks, and each dataset's record count, license, and data date. Set filter to narrow a topic to matching entries, for example a country name to find its code.

read
invocation
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unesco_list_reference",
    "arguments": {
      "topic": "<topic>"
    }
  }
}
schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "criteria",
        "countries",
        "regions",
        "intangible_lists",
        "biosphere_networks",
        "datasets"
      ],
      "description": "What to list. criteria: the ten inscription criteria (i)–(x) with meanings and site counts, the values of the criteria input of unesco_search_sites. countries: every country with its ISO alpha-2 and alpha-3 codes and counts per dataset, the values of every country input. regions: the five UNESCO regions with codes, the values of the region inputs. intangible_lists: the three intangible heritage lists with acronyms, the values of the list input of unesco_search_intangible_heritage. biosphere_networks: the MAB regional networks with acronyms, the values of the regional_network input of unesco_search_biosphere_reserves. datasets: each dataset with its record count, data date, license, attribution, and coverage notes."
    },
    "filter": {
      "description": "Keep only entries whose name or code (a criterion's meaning, a dataset's title) contains every word of this text, each word matching at the start of a word. Case, accents, and punctuation are ignored, so the filter must contain at least one letter or digit and at most 16 distinct words. For example, a country name finds its ISO code. For countries, a two- or three-letter ISO code (or UK) keeps exactly that country, as the country inputs read it, and common former or everyday names such as Turkey, Swaziland, or Holland match too.",
      "type": "string",
      "maxLength": 100
    }
  },
  "required": [
    "topic"
  ],
  "additionalProperties": false
}
view source ↗

Resources

4

One World Heritage site's full record by id_no, as unesco_get_site returns it with up to 20 components (components_total gives the full count), plus a sources array carrying the dataset date, license, and UNESCO attribution.

uri unesco://site/{id_no} mime application/json

One Intangible Cultural Heritage element's full record by ich_ref, as unesco_get_intangible_heritage_element returns it, plus a sources array carrying the dataset date, license, and UNESCO attribution.

uri unesco://intangible-heritage/{ich_ref} mime application/json

One biosphere reserve's full record by mab_id, as unesco_get_biosphere_reserve returns it, plus a sources array carrying the dataset date, license, and UNESCO attribution.

uri unesco://biosphere-reserve/{mab_id} mime application/json

One UNESCO Global Geopark's full record by ugg_id, as unesco_get_geopark returns it, plus a sources array carrying the dataset date, license, and UNESCO attribution.

uri unesco://geopark/{ugg_id} mime application/json