Base URL
The
/v1 contract is additive only: new fields and endpoints may appear over time, but published fields keep their names and meaning. Ignore unknown fields when you integrate, and do not depend on field order.Authentication
Authenticated endpoints use standard Bearer auth. Put the Data Hub API key in theAuthorization header:
Response shape
Successful responses wrap the payload indata. Error responses wrap the payload in error. The two never appear together.
Errors
Each endpoint page lists codes unique to that endpoint. These appear on most endpoints:
Returning the same
404 for “missing” and “invisible” is intentional: private apps, other people’s runs, and other people’s datasets never leak existence through the error code.
Pagination
List endpoints useoffset / limit query parameters and return a pagination object:
total is the filtered total. When has_more is true, add count to offset and continue. Per-endpoint limit caps are documented on each page.
Time parameters
Endpoints that take a time range (run list, billing aggregation, publisher analytics) accept ISO 8601 timestamps. Prefer an explicit offset such as2026-09-01T00:00:00+08:00. Unix epoch seconds are not accepted.
App references
Anywhere an app is identified, both forms work:
Point-to-point shared apps do not appear in market search. List them with the shared-with-me filter on the search endpoint. For scheduled jobs and long-lived automation, store
app_id.
Run statuses
Endpoint groups
Discover Data Apps
Search, detail, versions, README, specs, and translations.
Runs and results
Start, poll, list, cancel, read records, and debug traces.
Datasets
Persistent containers for run results and retention flags.
Account and billing
Lifetime spend and billing aggregates by period and dimension.
Secrets
Upstream credentials that app authors store for their own apps.
Publishing and operations
Draft → Build → Release, ops switches, sharing, translations, contract tools, and publisher analytics.