Base URL: https://appbe.endlesstesting.ai
All protected endpoints require Authorization: Bearer <api-key> header.
| Method | Path | Auth | Description |
|---|
| GET | /api/domains/ | Yes | List all domains |
| POST | /api/domains/ | Yes | Create domain |
| DELETE | /api/domains/:id | Yes | Delete domain (cascades) |
| POST | /api/domains/:id/kill-switch/activate | Yes | Emergency stop all tests |
| POST | /api/domains/:id/kill-switch/deactivate | Yes | Resume tests |
| GET | /api/domains/:id/kill-switch/status | Yes | Check kill switch state |
| Method | Path | Auth | Description |
|---|
| GET | /api/runs/ | Yes | List all runs with stats |
| GET | /api/runs/:id | Yes | Get single run |
| GET | /api/runs/:id/tests | Yes | Tests in a run with analytics |
| DELETE | /api/runs/:id | Yes | Soft-delete run |
| GET | /api/runs/domain/:domainId/tests | Yes | All tests for a domain |
| Method | Path | Auth | Description |
|---|
| GET | /api/tests/full | Yes | Full test with events |
| GET | /api/tests/by-url-allocations?url= | No | SDK allocation (Thompson sampling) |
| GET | /api/tests/:id | Yes | Get test by ID |
| POST | /api/tests/:id/toggle-status | Yes | Pause/resume test |
| POST | /api/tests/:id/cancel-draft | Yes | Cancel draft test |
| POST | /api/tests/:id/evaluate | Yes | Trigger manual evaluation |
| Method | Path | Auth | Description |
|---|
| POST | /api/variants/ai-run/targets | Yes | Create full test run with AI variants |
| POST | /api/variants/ai | Yes | Create single test with AI variants |
| POST | /api/variants/:id/status | Yes | Change variant status |
| Method | Path | Auth | Description |
|---|
| POST | /api/events | No | Record event (impression/click/conversion) |
| GET | /api/events | Yes | List events (paginated) |
| GET | /api/events/summary | Yes | Event counts by variant |
| Method | Path | Auth | Description |
|---|
| GET | /api/analytics/summary | Yes | Aggregated impressions/clicks/conversions |
| Method | Path | Auth | Description |
|---|
| GET | /api/brand-context/domain/:domainId | Yes | Get brand context |
| POST | /api/brand-context/ | Yes | Create brand context |
| PUT | /api/brand-context/:id | Yes | Update brand context |
| POST | /api/brand-context/extract/:domainId | Yes | AI auto-extract from domain |
| Method | Path | Auth | Description |
|---|
| GET | /api/conversion-metrics/:domainId | Yes | Get domain defaults |
| POST | /api/conversion-metrics/:domainId | Yes | Set domain defaults |
| GET | /api/conversion-metrics/:domainId/run/:runId | Yes | Get run-specific metrics |
| PUT | /api/conversion-metrics/:domainId/run/:runId | Yes | Set run-specific metrics |
| Method | Path | Auth | Description |
|---|
| GET | /api/usage | Yes | Current usage vs free tier limits |
| Method | Path | Auth | Description |
|---|
| POST | /api/auth/api-key | No | Generate API key for domain |
| GET | /api/auth/verify | Yes | Verify API key |
| POST | /api/auth/api-key/regenerate | Yes | Regenerate API key |
| Method | Path | Auth | Description |
|---|
| GET | /api/health | No | System health check |
| GET | /api/build-info | No | Build metadata |