API Reference
The Zeotap REST API provides programmatic access to all platform resources. Use it to manage warehouses, models, destinations, Reverse ETL pipelines, audiences, identity resolution graphs, orchestrations, streams, and more.
Base URL
All API requests are made to your Zeotap instance:
https://agentic.zeotap.com/api/v1The API is versioned via the URL path. The current version is v1.
Request Format
- All request bodies must be JSON with
Content-Type: application/json - All responses are JSON with
Content-Type: application/json - Resource paths follow the pattern
/api/v1/workspaces/{workspaceId}/{resource} - Timestamps are ISO 8601 format (e.g.,
2024-01-15T09:30:00Z) - IDs are UUIDs (e.g.,
550e8400-e29b-41d4-a716-446655440000)
Authentication
Every request requires two headers:
Authorization: Bearer <token>
X-Workspace-ID: <workspace-id>The Authorization header accepts either a Firebase ID token (for browser/UI clients) or an API key (for server-to-server integrations). See Authentication for details.
List Responses
Most list endpoints return a JSON array of the resource:
[
{ "id": "550e8400-…", "name": "Customers", "…": "…" },
{ "id": "660e8400-…", "name": "Orders", "…": "…" }
]A handful of endpoints that can return long histories take limit and offset query parameters instead, and say so on their own page — the AI audit log, the workspace audit log, agent sessions, deletion-rule runs and snapshot history among them. Where a limit is capped, the cap is documented with the endpoint; the workspace and AI audit logs default to 50 per page and refuse more than 100.
Endpoints that cap their result set without paginating say so too — sync run history returns the most recent 50 runs, for instance.
Error Format
Error responses use a consistent JSON structure:
{
"error": "human-readable error message"
}HTTP Status Codes
| Code | Meaning | When |
|---|---|---|
200 | OK | Successful read or update |
201 | Created | Successful resource creation |
400 | Bad Request | Invalid request body, missing required fields, unsupported values |
401 | Unauthorized | Missing or invalid authentication token |
403 | Forbidden | Valid token but insufficient permissions for the requested resource |
404 | Not Found | Resource does not exist or is not accessible in this workspace |
409 | Conflict | Resource already exists (duplicate name, slug, etc.) |
422 | Unprocessable Entity | Request is well-formed but semantically invalid (e.g., referencing a non-existent source) |
500 | Internal Server Error | Unexpected server error |
Common Response Patterns
Successful Deletion
{
"status": "deleted"
}Single Resource
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "...",
"name": "...",
"created_at": "2024-01-15T09:30:00Z",
"updated_at": "2024-01-15T09:30:00Z"
}Resources
| Resource | Base Path | Description |
|---|---|---|
| Warehouses | /api/v1/workspaces/{id}/sources | Data warehouse connections |
| Models | /api/v1/workspaces/{id}/models | SQL-defined datasets |
| Destinations | /api/v1/workspaces/{id}/destinations | Data write targets |
| Reverse ETL | /api/v1/workspaces/{id}/syncs | Reverse ETL pipelines from models to destinations |
| Computed Attributes | /api/v1/workspaces/{id}/traits | Computed entity attributes |
| Audiences | /api/v1/workspaces/{id}/audiences | Segmentation queries |
| Syncs | /api/v1/workspaces/{id}/audience-syncs | Audience activation syncs to destinations |
| Identity Resolution | /api/v1/workspaces/{id}/identity-graphs | Identity graphs and golden records |
| Orchestrations | /api/v1/workspaces/{id}/journeys | Multi-step workflows |
| Streams | /api/v1/workspaces/{id}/events | Real-time event collection |
| Loaders | /api/v1/workspaces/{id}/loaders | Inbound loaders |
| Governance | /api/v1/workspaces/{id}/... | Roles, groups, destination policies, access policies |
| Insights | /api/v1/workspaces/{id}/insights | Platform analytics |
| Workspaces | /api/v1/workspaces | Multi-tenant workspaces |
| Organizations | /api/v1/organizations | Company-level entities |
| API Keys | /api/v1/workspaces/{id}/api-keys | API key management |