Skip to main content

Base URL and headers

The Unified API needs the BU-Connection-Id header. Unlike the Proxy and MCP, it doesn’t accept the connection ID appended to the API key.

Response envelope

Successful responses are JSON with a data field. List endpoints also have metadata:
Single-object endpoints (/v1/me, /v1/tasks/tasks/{id}) return data as an object and no metadata.

Null vs missing

Every field in the schema is always present. When a provider doesn’t have a value, the field is null rather than missing, so your code can rely on the shape.

Dates

Timestamps are ISO 8601 strings. All-day calendar events use a YYYY-MM-DD date instead. See Calendar.

IDs

IDs are the provider’s own, passed through. Most are strings. A few are numbers where the provider uses numbers (GitHub and GitLab repository IDs, for example). Treat IDs as opaque values.

Pagination

List endpoints are cursor-paginated: metadata.next is null on the last page. Cursors are opaque: don’t build or modify them.
Each page is one request toward the connection’s rate limit.

Include the raw response

Add include_raw=true to any endpoint to receive the provider’s original response in a _raw field, next to the normalized data:
Use it when you need one or two provider-specific fields without switching that call to the Proxy. _raw is the provider’s format, so code that reads it is provider-specific.

Provider parameters

List endpoints accept a params query parameter: a JSON object whose keys are added to the provider request’s query string. Use it to pass provider-specific filters the Unified API doesn’t model:
The keys and values are the provider’s, so they only make sense for that provider. Invalid JSON is ignored.

Errors

The Unified API returns errors in this envelope:
Provider errors are passed through unchanged. If the provider answers with an error (a 403 for a missing scope, a 404 for a repository that doesn’t exist), you get the provider’s status, headers and body, not the envelope above. Check success or the content type before assuming which kind you have. More detail in the errors reference.