Management API
The Management API is a Go REST + WebSocket service that powers the Datafly Signal management interface. It provides programmatic access to all platform configuration: pipelines, integrations (catalog, templates, revisions), transformations, users, and audit logs.
Base URL
All endpoints are prefixed with:
https://{cluster}/api/v1/adminIn local development, the Management API runs on port 8084:
http://localhost:8084/v1/adminAuthentication
All requests must include a valid JWT access token in the Authorization header:
Authorization: Bearer {access_token}Obtain tokens via the authentication endpoints. Access tokens expire after 15 minutes; use the refresh endpoint to obtain new ones.
Content Type
All request and response bodies use JSON:
Content-Type: application/jsonRate Limiting
The API enforces a rate limit of 100 requests per minute per authenticated user. When the limit is exceeded, the API returns a 429 Too Many Requests response with a Retry-After header indicating when the client can retry.
{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 32 seconds."
}
}Pagination
List endpoints use cursor-based pagination. Pass a cursor and limit as query parameters:
GET /v1/admin/sources?cursor=eyJpZCI6MTAwfQ&limit=50| Parameter | Type | Default | Description |
|---|---|---|---|
cursor | string | — | Opaque cursor from a previous response’s next_cursor field |
limit | integer | 50 | Number of items per page (max 100) |
Paginated responses include a next_cursor field. When next_cursor is null, there are no more results.
{
"data": [ ... ],
"next_cursor": "eyJpZCI6MTUwfQ",
"has_more": true
}Error Format
All error responses follow a consistent format:
{
"error": {
"code": "INVALID_PIPELINE_KEY",
"message": "The provided pipeline key is not valid or has been revoked."
}
}| Field | Type | Description |
|---|---|---|
error.code | string | Machine-readable error code (see Error Codes) |
error.message | string | Human-readable description of the error |
HTTP Status Codes
| Status | Meaning |
|---|---|
200 | Success |
201 | Resource created |
204 | Success, no content (delete operations) |
400 | Bad request (invalid JSON, missing fields) |
401 | Unauthorized (missing or invalid token) |
403 | Forbidden (insufficient permissions) |
404 | Resource not found |
409 | Conflict (duplicate resource) |
422 | Unprocessable entity (validation error) |
429 | Rate limited |
500 | Internal server error |
Sections
| Section | Description |
|---|---|
| Authentication | Login, token refresh, JWT format |
| Pipelines | Manage data collection pipelines, pipeline keys, JS collector builds |
| Integration Catalog | Browse and install from the integration library |
| Integration Templates | Manage org-level integration templates and immutable revisions |
| Pipeline Integrations | Assign integrations to pipelines at specific revisions |
| Sources (Legacy) | Legacy source management API |
| Integrations (Legacy) | Legacy integration configuration API |
| Transformations | Define and test event transformations |
| Data Layer | Org-wide data layer configuration |
| Users & RBAC | User management and role-based access |
| Audit Logs | Query the audit trail |
The Management API also exposes a WebSocket endpoint at ws://{cluster}/v1/admin/debug/live for real-time event debugging. Connect with a valid JWT to stream events as they flow through the pipeline.