API Reference

API documentation for Sublyzer One backend endpoints. Note: some SDK ingestion endpoints are public (they use integrationCode), while dashboard/admin endpoints require Bearer token authentication.

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_JWT_TOKEN

Obtain your token by logging in via /auth/login endpoint.

Data Collection Endpoints (SDK ingestion)

POST /data-collection/collect

Send a single telemetry event from your SDK. No JWT required; the request identifies the integration via integrationCode.

POST /data-collection/collect
Content-Type: application/json

{
  "integrationCode": "YOUR_24_CHAR_CODE",
  "dataType": "performance",
  "timestamp": "2025-01-15T10:30:00Z",
  "sessionId": "session_123",
  "data": {
    "loadTime": 1500,
    "firstContentfulPaint": 800,
    "largestContentfulPaint": 1200
  }
}

POST /data-collection/collect-batch

Send multiple telemetry events at once. No JWT required.

POST /data-collection/collect-batch
Content-Type: application/json

{
  "integrationCode": "YOUR_24_CHAR_CODE",
  "data": [
    { "dataType": "event", "timestamp": "2025-01-15T10:30:00Z", "sessionId": "s1", "data": { "name": "page_view" } },
    { "dataType": "error", "timestamp": "2025-01-15T10:30:05Z", "sessionId": "s1", "data": { "message": "TypeError..." } }
  ]
}

GET /data-collection/data

Retrieve collected data for an integration.

GET /data-collection/data?integrationId=INTEGRATION_ID&limit=100
Authorization: Bearer YOUR_TOKEN

GET /data-collection/telemetry

Get telemetry statistics (unique users, session counts).

GET /data-collection/telemetry?integrationId=INTEGRATION_ID
Authorization: Bearer YOUR_TOKEN
Integration Endpoints

GET /integrations

List all integrations for the authenticated user.

GET /integrations
Authorization: Bearer YOUR_TOKEN

POST /integrations

Create a new integration.

POST /integrations
Content-Type: application/json
Authorization: Bearer YOUR_TOKEN

{
  "name": "My App",
  "type": "web"
}

GET /integrations/:id

Get details of a specific integration.

GET /integrations/INTEGRATION_ID
Authorization: Bearer YOUR_TOKEN
GitHub Integration

GET /integrations/:id/github/repos

List GitHub repositories for a connected integration.

GET /integrations/INTEGRATION_ID/github/repos
Authorization: Bearer YOUR_TOKEN

POST /integrations/:id/github/select

Select repositories to connect.

POST /integrations/INTEGRATION_ID/github/select
Content-Type: application/json
Authorization: Bearer YOUR_TOKEN

{
  "repoIds": ["repo_id_1", "repo_id_2"]
}
SwarmAI / TestingAI Endpoints

POST /ai/swarm/run

Start a SwarmAI/TestingAI run (multi-agent). Parameters include agents, targetUrl, maxPages and maxClicks.

POST /ai/swarm/run
Content-Type: application/json
Authorization: Bearer YOUR_TOKEN

{
  "integrationId": "INTEGRATION_ID",
  "agents": 8,
  "targetUrl": "https://www.example.com",
  "maxPages": 3,
  "maxClicks": 10,
  "includeAccessibility": true
}

GET /ai/swarm/last

Get the last run status for an integration.

GET /ai/swarm/last?integrationId=INTEGRATION_ID
Authorization: Bearer YOUR_TOKEN

GET /ai/swarm/analysis

Get analysis for the last run (or a specific runId).

GET /ai/swarm/analysis?integrationId=INTEGRATION_ID&runId=RUN_ID
Authorization: Bearer YOUR_TOKEN

GET /ai/swarm/stream (SSE)

Server-Sent Events stream with live logs. Optional filter by integrationId.

GET /ai/swarm/stream?integrationId=INTEGRATION_ID

GET /ai/swarm/video

Download recorded agent video (usually .webm, sometimes .mp4).

GET /ai/swarm/video?integrationId=INTEGRATION_ID&runId=RUN_ID&agent=1
Authorization: Bearer YOUR_TOKEN
Error Responses

All endpoints return standard error responses:

{
  "statusCode": 401,
  "message": "Unauthorized",
  "error": "Unauthorized"
}

Common status codes: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Internal Server Error).