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

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. /download is a 302 and /access-plan is 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.