API Reference
The SyncToScale API enables workflow execution, connection management, event ingestion, and access to Nova AI services. All requests use JSON and require authentication.
POST
Send data to create, trigger, or run something
GET
Retrieve information or check status
Authentication
All API requests must include a project token.
Authorization: Bearer <project_token> Content-Type: application/json
POST Run a Workflow
Execute a workflow manually by posting a payload.
POST /workflows/{id}/run
Request Body
{
"payload": {
"employee_id": "12345",
"email": "test@example.com"
}
}
Response
{
"run_id": "run_789",
"status": "queued",
"triggered_at": "2025-01-20T14:02:01Z"
}
POST Create Connection
POST /connections
{
"provider": "slack",
"auth_type": "oauth",
"scopes": ["chat:write", "users:read"]
}
GET Get Connection Status
GET /connections/{id}
{
"id": "conn_123",
"provider": "slack",
"status": "healthy",
"last_validated": "2025-01-18T12:44:00Z"
}
POST Send Event Trigger
POST /triggers/event
{
"provider": "bamboohr",
"event_type": "employee.updated",
"payload": {
"id": "9981",
"email": "updated@example.com"
}
}
{
"status": "queued",
"workflow": "sync_to_hr",
"triggered_at": "2025-01-20T14:12:00Z"
}
POST Execute Action
POST /actions/run
{
"provider": "hubspot",
"action": "create_contact",
"payload": {
"email": "new@example.com",
"first_name": "Jordan",
"last_name": "Lee"
}
}
{
"status": "success",
"record_id": "contact_88171"
}
POST Validate Mapping
POST /mapping/validate
{
"payload": {
"first_name": "Jordan",
"start_date": "12/01/2025"
},
"expected_schema": {
"first_name": "string",
"start_date": "date"
}
}
{
"valid": false,
"issues": [
{ "field": "start_date", "expected": "YYYY-MM-DD" }
]
}
GET Error Lookup
GET /errors/{run_id}
{
"run_id": "run_456",
"step": "create_user",
"error_code": "invalid_permission",
"message": "User lacks write access to directory"
}
POST Nova AI Endpoints
POST /nova/v1/mapping/suggest
{
"suggested_mapping": {
"first_name": "fname",
"email": "workEmail"
}
}
POST /nova/v1/errors/classify
{
"category": "insufficient_permissions",
"recommended_fix": "Re-authenticate with directory.write"
}
GET Pagination
GET /runs?limit=20&cursor=abc123
{
"data": [...],
"next_cursor": "def456"
}
Rate Limits
The API enforces per-project and per-token rate limits.
{
"limit": 5000,
"remaining": 4977,
"reset": "2025-01-20T15:00:00Z"
}