Government — entry 077 of 90

Open Government, Spain

Verified Sep 2026

Datos.gob.es is Spain's national open-data catalogue, built on its own custom NTI-based platform rather than CKAN. It exposes a dedicated "API de Datos" (apidata) at `/apidata/catalog/`, returning catalogue, dataset, and distribution metadata as JSON or XML by content negotiation, with no key required. The live endpoint sends a wildcard `Access-Control-Allow-Origin` header, so it can be queried directly from browser-side apps.

open-datagovernment-dataapidatadcatspain
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, XMLResponses can be requested as JSON or XML.

GreatAPIs Score

Score100out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 100 on greatapis.com
<a href="https://greatapis.com/api/open-government-spain/"><img src="https://greatapis.com/badge/open-government-spain.svg" alt="Scored 100 on greatapis.com"></a>

Auth quickstart

  1. No key needed — call it now.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://datos.gob.es/apidata
NTI geographical coverage taxonomy5
GET/nti/territory/Autonomous-regionFinds all autonomous regions
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationTerritorioResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/nti/territory/Autonomous-region/{id}Finds a autonomous region by the URI Identifier
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200successful operationTerritorioResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/nti/territory/Country/{id}Finds a country by the URI Identifier
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200successful operationTerritorioResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/nti/territory/ProvinceFinds all provinces
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationTerritorioResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/nti/territory/Province/{id}Finds a province by the URI Identifier
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200successful operationTerritorioResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
NTI primary sector taxonomy2
GET/nti/public-sectorFinds all public sectors
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationPublicSectorResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/nti/public-sector/sector/{id}Finds a public sector by the URI Identifier
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200successful operationPublicSectorResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
dataset9
GET/catalog/datasetFinds all datasets
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/format/{format}Finds all datasets that have a distribution with a format that you use as parameter
Parameters
NameInRequiredType
formatpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/keyword/{keyword}Finds all datasets that have a keyword that you use as parameter
Parameters
NameInRequiredType
keywordpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/modified/begin/{beginDate}/end/{endDate}Finds all datasets that were modified between two dates
Parameters
NameInRequiredType
beginDatepathyesstring
endDatepathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/publisher/{id}Finds datasets by publisher
Parameters
NameInRequiredType
idpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/spatial/{spatialWord1}/{spatialWord2}Finds all datasets that have a spatial that you use as parameter
Parameters
NameInRequiredType
spatialWord1pathyesstring
spatialWord2pathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/theme/{id}Finds datasets by theme
Parameters
NameInRequiredType
idpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/title/{title}Finds datasets by title
Parameters
NameInRequiredType
titlepathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/dataset/{id}Finds a dataset by the URI Identifier
Parameters
NameInRequiredType
idpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDatasetResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
distribution3
GET/catalog/distributionFinds all distributions
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDistributionResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/distribution/dataset/{id}Finds all distributions of a dataset
Parameters
NameInRequiredType
idpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDistributionResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
GET/catalog/distribution/format/{format}Finds all distributions of a dataset that have the format that you use as parameter
Parameters
NameInRequiredType
formatpathyesstring
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationDistributionResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
publisher1
GET/catalog/publisherFinds all publishers
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationPublisherResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
spatial1
GET/catalog/spatialFinds all spatials
Parameters
NameInRequiredType
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationSpatialResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—
theme1
GET/catalog/themeFinds all themes
Parameters
NameInRequiredType
_sortquerynostring
_pageSizequerynointeger
_pagequerynointeger
Responses
StatusDescriptionSchema
200successful operationThemeResponse
400Bad request—
403Access denied—
404Not found—
500Internal error—

Try it

Developer reference

Base URLhttps://datos.gob.es/apidata
Key endpoints
  • GET/catalog/dataset
  • GET/catalog/publisher
  • GET/catalog/dataset/publisher/{id}

Availability

Uptime100%
Median latency527 ms
Last checkUp · 200 · Sep 2026

16 checks since Aug 2026. A person runs this check by hand, not an automated monitor.