Developers
One REST API. The web UI, the Python SDK and the MCP server all call it and none of them reaches past it into the store, so a rule enforced there is enforced for all three.
REST
- Interactive documentation
- OpenAPI 3.1 document — generate a client from this
Python
pip install "opengrid-datahub[all]"
from opengrid import DataHub
hub = DataHub()
ds = hub.search(domain="DD5", region="DE", concept="solar_irradiance")[0]
da = ds.open(time=slice("2019-01", "2019-12"), bbox=[5.9, 45.8, 10.5, 47.8])ds.open() fetches an access plan and executes it in your process. The Hub is not in the path, which is why slicing a 4 TB Zarr to one month moves a few megabytes.
Agents
MCP connection details — seven tools, entitlement-scoped, payload-capped, and unable to invent a dataset.
Three things that will surprise you once
- Nothing here returns data.
/downloadis a 302 and/access-planis a document. - A 404 for a record you may not see is identical to a 404 for one that does not exist. Deliberately: a distinguishable refusal is an existence oracle.
- Absent means not captured. A missing licence field is not a dataset without a licence.