API Overview
The Rime API provides programmatic access to the same functionality available through the web UI. You can manage projects, connectors, infrastructure, transformations, pipelines, monitoring, governance, and users through standard REST endpoints.
Base URL
All API requests are made to your tenant’s subdomain:
https://{tenant}.rimedata.io/api/v1Replace {tenant} with your organization’s tenant identifier. For example, if your tenant is acme, requests go to https://acme.rimedata.io/api/v1.
All requests must use HTTPS. HTTP requests are rejected.
Content type
The API accepts and returns JSON. Set the Content-Type header to application/json on all requests that include a body:
Content-Type: application/jsonResponses always include Content-Type: application/json unless otherwise noted (e.g., file downloads).
Authentication
All API requests require authentication via a Bearer token in the Authorization header:
Authorization: Bearer <token>See API Authentication for how to obtain and manage tokens.
Error format
When a request fails, the API returns a JSON error object with a machine-readable code and a human-readable message:
{ "error": { "code": "resource_not_found", "message": "Connector with ID 'abc-123' was not found in this project." }}Common error codes
| HTTP status | Error code | Meaning |
|---|---|---|
| 400 | validation_error | The request body is malformed or missing required fields |
| 401 | unauthorized | The token is missing, expired, or invalid |
| 403 | forbidden | The authenticated user does not have permission for this action |
| 404 | resource_not_found | The requested resource does not exist in this project |
| 409 | conflict | The request conflicts with the current state (e.g., duplicate name) |
| 422 | unprocessable_entity | The request is valid JSON but the values are semantically invalid |
| 429 | rate_limited | Too many requests — slow down and retry after the indicated delay |
| 500 | internal_error | Something went wrong on our end — contact support if this persists |
Validation errors include an additional details array describing each invalid field:
{ "error": { "code": "validation_error", "message": "Request validation failed.", "details": [ { "field": "name", "message": "Name is required." }, { "field": "schedule", "message": "Invalid cron expression." } ] }}Rate limits
API requests are rate-limited per tenant and per endpoint to ensure fair usage and platform stability. When you exceed a rate limit, the API returns a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait before retrying.
Rate limits are applied at the tenant level, not per user. All API calls from all users in your tenant share the same quota.
Specific rate limits per endpoint will be published as the API stabilizes. During the current release, limits are generous and unlikely to affect normal usage patterns.
Pagination
List endpoints that can return large result sets use cursor-based pagination. The response includes a next_cursor field when there are more results:
{ "data": [ ... ], "next_cursor": "eyJpZCI6MTAwfQ==", "has_more": true}To fetch the next page, include the cursor as a query parameter:
GET /api/v1/connectors?cursor=eyJpZCI6MTAwfQ==Pagination parameters
| Parameter | Default | Description |
|---|---|---|
limit | 50 | Number of items per page (max 100) |
cursor | (none) | Cursor from the previous response’s next_cursor field |
When has_more is false, you have reached the last page. Do not include a cursor on the first request.
Cursor values are opaque strings. Do not attempt to parse or construct them — they may change format between API versions.
Versioning
The API is versioned through the URL path. The current version is v1:
https://{tenant}.rimedata.io/api/v1/...When breaking changes are necessary, a new version (e.g., v2) will be released alongside the existing version. Previous versions remain available for a deprecation period to give you time to migrate.
Non-breaking changes (new fields in responses, new optional parameters, new endpoints) are added to the current version without a version bump.
Request IDs
Every API response includes an X-Request-Id header with a unique identifier for the request. Include this ID when contacting support about a specific request — it helps us locate the relevant logs quickly.
X-Request-Id: req_01H8K3M2N4P5Q6R7WebSocket endpoints
Some features use WebSocket connections for real-time updates instead of REST polling. See the API Reference for details on WebSocket endpoints, including real-time pipeline progress.
Next steps
- Set up API authentication to obtain your access token
- Browse the API reference for endpoint details and examples