API Reference
Programmatically manage connections and trigger syncs via the REST API.
Authentication
All API requests require a Bearer token in the Authorization header. Generate API keys at Dashboard > Settings > API Keys.
Authorization: Bearer YOUR_API_KEYKeys use the smrt_ prefix. Keep your keys secret — they grant full access to your account data.
Base URL
https://your-domain.com/api/v1GET
/api/v1/status
Returns account status including client info, plan, and connection count.
Example Request
curl -H "Authorization: Bearer smrt_abc123..." \
https://your-domain.com/api/v1/statusExample Response
{
"client": {
"name": "Acme Inc",
"slug": "acme",
"plan": "pro",
"created_at": "2025-01-15T10:30:00.000Z"
},
"connections": 5,
"last_sync_at": "2026-04-01T03:00:00.000Z"
}GET
/api/v1/connections
Returns all connections for your account with their sync status.
Example Request
curl -H "Authorization: Bearer smrt_abc123..." \
https://your-domain.com/api/v1/connectionsExample Response
{
"data": [
{
"id": "conn_abc123",
"connector_type": "shopify",
"label": "Shopify - Main Store",
"status": "active",
"last_sync_at": "2026-04-01T03:00:00.000Z",
"last_sync_status": "succeeded",
"created_at": "2025-06-10T14:00:00.000Z"
}
]
}POST
/api/v1/connections/:id/sync
Triggers a manual sync for a specific connection. Returns the sync job info.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | The connection ID |
Example Request
curl -X POST \
-H "Authorization: Bearer smrt_abc123..." \
https://your-domain.com/api/v1/connections/conn_abc123/syncExample Response
{
"job": {
"jobId": 12345,
"connectionId": "airbyte-conn-id",
"status": "pending",
"jobType": "sync"
}
}GET
/api/v1/connections/:id/jobs
Returns recent sync jobs for a specific connection.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | The connection ID |
Example Request
curl -H "Authorization: Bearer smrt_abc123..." \
https://your-domain.com/api/v1/connections/conn_abc123/jobsExample Response
{
"data": [
{
"jobId": 12345,
"connectionId": "airbyte-conn-id",
"status": "succeeded",
"jobType": "sync",
"startTime": "2026-04-01T03:00:00.000Z",
"bytesSynced": 1048576,
"rowsSynced": 15420,
"duration": "PT2M35S"
}
]
}Error Responses
All endpoints return errors in a consistent format:
{
"error": "Unauthorized — invalid or missing API key"
}| Status | Meaning |
|---|---|
| 401 | Invalid or missing API key |
| 404 | Resource not found or does not belong to your account |
| 400 | Bad request (e.g. connection missing Airbyte mapping) |
| 500 | Internal server error |
Rate Limiting
API requests are limited to 100 requests per minute per API key. Exceeding this limit returns a 429 status code.
Getting Started
- Generate an API key — create keys in the dashboard settings
- Getting started guide — set up your first connection