Skip to content

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/v1

Replace {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/json

Responses 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 statusError codeMeaning
400validation_errorThe request body is malformed or missing required fields
401unauthorizedThe token is missing, expired, or invalid
403forbiddenThe authenticated user does not have permission for this action
404resource_not_foundThe requested resource does not exist in this project
409conflictThe request conflicts with the current state (e.g., duplicate name)
422unprocessable_entityThe request is valid JSON but the values are semantically invalid
429rate_limitedToo many requests — slow down and retry after the indicated delay
500internal_errorSomething 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

ParameterDefaultDescription
limit50Number 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_01H8K3M2N4P5Q6R7

WebSocket 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