← Back to docs

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"
}