API Reference
The Rime API is documented interactively via Swagger UI. For the full specification with every endpoint, parameter, and response schema, visit:
https://{tenant}.rimedata.io/api/docsThis page provides an overview of the endpoint groups, common operations, and a worked example to get you started.
Endpoint groups
The API is organized into the following groups. Each group corresponds to a section of the Rime platform.
Projects
Manage the projects in your tenant. A project is the top-level container for all resources.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects | List all projects in the tenant |
| POST | /projects | Create a new project |
| GET | /projects/{id} | Get project details |
| PATCH | /projects/{id} | Update project settings |
| DELETE | /projects/{id} | Delete a project and all its resources |
Connectors
Configure and manage data source connectors within a project.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/connectors | List connectors |
| POST | /projects/{id}/connectors | Create a connector |
| GET | /projects/{id}/connectors/{connectorId} | Get connector details |
| PATCH | /projects/{id}/connectors/{connectorId} | Update connector configuration |
| DELETE | /projects/{id}/connectors/{connectorId} | Delete a connector |
| POST | /projects/{id}/connectors/{connectorId}/test | Test the connection |
| POST | /projects/{id}/connectors/{connectorId}/sync | Trigger a manual sync |
| GET | /projects/{id}/connectors/{connectorId}/runs | List sync history |
| GET | /projects/{id}/connectors/{connectorId}/schema | Get discovered schema |
Infrastructure
Manage Snowflake and AWS resources.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/infrastructure | List managed resources |
| POST | /projects/{id}/infrastructure | Create a resource |
| GET | /projects/{id}/infrastructure/{resourceId} | Get resource details |
| PATCH | /projects/{id}/infrastructure/{resourceId} | Update resource configuration |
| DELETE | /projects/{id}/infrastructure/{resourceId} | Delete a resource |
| POST | /projects/{id}/infrastructure/plan | Generate a Terraform plan (preview changes) |
| POST | /projects/{id}/infrastructure/apply | Apply the current plan |
Transformations
Manage dbt projects, models, and runs.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/dbt-projects | List dbt projects |
| POST | /projects/{id}/dbt-projects | Create a dbt project |
| GET | /projects/{id}/dbt-projects/{dbtId} | Get project details including lineage |
| POST | /projects/{id}/dbt-projects/{dbtId}/run | Trigger a dbt run |
| GET | /projects/{id}/dbt-projects/{dbtId}/runs | List run history |
| GET | /projects/{id}/dbt-projects/{dbtId}/models | List models in the project |
| GET | /projects/{id}/dbt-projects/{dbtId}/lineage | Get the lineage DAG |
Pipelines
Create and manage orchestration pipelines.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/pipelines | List pipelines |
| POST | /projects/{id}/pipelines | Create a pipeline |
| GET | /projects/{id}/pipelines/{pipelineId} | Get pipeline details and DAG |
| PATCH | /projects/{id}/pipelines/{pipelineId} | Update pipeline configuration |
| DELETE | /projects/{id}/pipelines/{pipelineId} | Delete a pipeline |
| POST | /projects/{id}/pipelines/{pipelineId}/run | Trigger a pipeline run |
| GET | /projects/{id}/pipelines/{pipelineId}/runs | List run history |
| GET | /projects/{id}/pipelines/{pipelineId}/runs/{runId} | Get run details and step status |
Monitoring
Manage alert rules, notification channels, and view alerts.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/alerts | List alerts (filterable by status, severity) |
| POST | /projects/{id}/alerts/{alertId}/acknowledge | Acknowledge an alert |
| POST | /projects/{id}/alerts/{alertId}/resolve | Resolve an alert |
| GET | /projects/{id}/alert-rules | List alert rules |
| POST | /projects/{id}/alert-rules | Create an alert rule |
| GET | /projects/{id}/notification-channels | List notification channels |
| POST | /projects/{id}/notification-channels | Create a channel |
| POST | /projects/{id}/notification-channels/{channelId}/test | Send a test notification |
| GET | /projects/{id}/escalation-policies | List escalation policies |
| POST | /projects/{id}/escalation-policies | Create a policy |
Governance
Manage data classifications, masking policies, and audit logs.
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects/{id}/classifications | List data classifications |
| POST | /projects/{id}/classifications | Create a classification |
| GET | /projects/{id}/masking-policies | List masking policies |
| POST | /projects/{id}/masking-policies | Create a masking policy |
| GET | /projects/{id}/audit-logs | Query audit logs |
Users
Manage users within the tenant.
| Method | Endpoint | Description |
|---|---|---|
| GET | /users | List users in the tenant |
| POST | /users | Invite a new user |
| GET | /users/{userId} | Get user details |
| PATCH | /users/{userId} | Update user role or settings |
| DELETE | /users/{userId} | Remove a user |
Example: creating a connector
This example creates a PostgreSQL connector, tests the connection, and triggers a sync.
1. Create the connector
curl -X POST "https://acme.rimedata.io/api/v1/projects/proj_01/connectors" \ -H "Authorization: Bearer $RIME_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Production CRM", "connector_type": "postgresql", "config": { "host": "crm-db.internal.acme.co.nz", "port": 5432, "database": "crm_production", "schema": "public" }, "credentials": { "username": "rime_readonly", "password": "secret" }, "selected_tables": ["customers", "orders", "products"], "schedule": "0 2 * * *" }'Response:
{ "id": "conn_abc123", "name": "Production CRM", "connector_type": "postgresql", "status": "created", "created_at": "2026-03-05T09:00:00Z"}2. Test the connection
curl -X POST "https://acme.rimedata.io/api/v1/projects/proj_01/connectors/conn_abc123/test" \ -H "Authorization: Bearer $RIME_TOKEN"Response:
{ "success": true, "message": "Connection successful. 3 tables accessible."}3. Trigger a sync
curl -X POST "https://acme.rimedata.io/api/v1/projects/proj_01/connectors/conn_abc123/sync" \ -H "Authorization: Bearer $RIME_TOKEN"Response:
{ "run_id": "run_xyz789", "status": "running", "started_at": "2026-03-05T09:01:00Z"}WebSocket endpoints
The API provides WebSocket connections for real-time updates. These are useful for building dashboards or monitoring integrations that need live data without polling.
Pipeline progress
wss://{tenant}.rimedata.io/api/v1/ws/pipelines/{pipelineId}/runs/{runId}Connect to this endpoint to receive real-time updates as a pipeline run progresses. Messages are JSON objects describing step transitions:
{ "type": "step_update", "step_id": "step_01", "step_name": "Extract CRM data", "status": "completed", "duration_seconds": 45, "timestamp": "2026-03-05T09:01:45Z"}Alert stream
wss://{tenant}.rimedata.io/api/v1/ws/alertsReceive real-time alert notifications as they fire, are acknowledged, or are resolved. This is the same data that powers the monitoring dashboard in the web UI.
WebSocket connections require the same Bearer token authentication, passed as a query parameter:
wss://{tenant}.rimedata.io/api/v1/ws/alerts?token=eyJhbGciOi...Interactive documentation
The Swagger UI at /api/docs provides:
- Full endpoint listing with parameter descriptions
- Request and response schema definitions
- A “Try it out” feature to make live API calls from the browser
- Authentication support (paste your token to authenticate all requests)
The Swagger specification is also available as a JSON file at /api/docs/openapi.json for use with code generators and API testing tools.
Next steps
- Set up authentication to obtain your API token
- Review the API overview for error handling, pagination, and rate limits