Documentation

REST Endpoints

Complete reference for all SimuTest REST API endpoints.

Base URL

All API requests are made to the following base URL. Include your API key in the Authorization header as a Bearer token.

https://api.simutest.dev/v1

Use st_live_ keys for production and st_test_ keys for sandbox environments. See Authentication for details.

Tests

The tests resource is the primary entry point for running SimuTest sessions. Create a test to start AI user simulations against any URL.

MethodEndpointDescription
POST/testsCreate and start a new test
GET/testsList all tests (paginated)
GET/tests/{id}Get test status and results
GET/tests/{id}/sessionsList all sessions for a test
GET/tests/{id}/sessions/{sid}Get individual session details
GET/tests/{id}/reportGet generated report
DELETE/tests/{id}Cancel a running test

Sessions

Individual session endpoints provide access to thinking traces, recordings, and screenshots for a specific AI user session.

MethodEndpointDescription
GET/sessions/{id}Get full session with thinking traces
GET/sessions/{id}/traceGet only thinking trace
GET/sessions/{id}/recordingGet session recording
GET/sessions/{id}/screenshotsGet screenshots

Personas

Manage persona packs and custom personas. Persona packs are curated collections of user archetypes. You can also create custom personas for specialized testing scenarios.

MethodEndpointDescription
GET/personas/packsList persona packs
GET/personas/packs/{id}Get pack details
POST/personasCreate custom persona
GET/personasList custom personas

Reports

Generate and retrieve detailed UX analysis reports for completed tests. Reports include aggregate scores, thinking trace highlights, and ranked issue lists.

MethodEndpointDescription
POST/tests/{id}/reportsGenerate report for a test
GET/reports/{id}Get report
GET/reportsList reports

Comparisons

Create A/B comparisons between two tests or variants. Comparisons provide statistical analysis to determine which variant performs better across all scoring criteria.

MethodEndpointDescription
POST/comparisonsCreate A/B comparison
GET/comparisons/{id}Get comparison results

Example Request

The following example creates a new test with 200 sessions, targeting a checkout flow with diverse auto-generated personas across both desktop and mobile viewports.

Create a test:

curl -X POST https://api.simutest.dev/v1/tests \
  -H "Authorization: Bearer st_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "task": "Find and purchase the premium plan",
    "sessions": 200,
    "model": "claude-sonnet",
    "personas": { "source": "auto-diverse" },
    "criteria": ["task_completion", "cta_findability"],
    "viewport": ["desktop", "mobile"]
  }'

Response:

{
  "id": "test_abc123",
  "status": "running",
  "url": "https://example.com",
  "task": "Find and purchase the premium plan",
  "sessions_total": 200,
  "sessions_completed": 0,
  "created_at": "2025-01-15T10:00:00Z",
  "estimated_completion": "2025-01-15T10:25:00Z",
  "stream_url": "wss://stream.simutest.dev/tests/test_abc123",
  "report_url": null
}

The stream_url field provides a WebSocket endpoint for real-time session events. See WebSocket Streaming for details.