project_uuid.
Note: These endpoints manage project records themselves. To scope API operations to a specific project, use the X-Project-UUID request header on other endpoints.
GET /api/projects — List Projects
Returns all projects with aggregated statistics. Optionally filter by owner UUID. Query parameters:| Parameter | Type | Default | Description |
|---|---|---|---|
owner | string | Filter by owner UUID |
| Field | Type | Description |
|---|---|---|
stats.http_records.total | int | Total HTTP records in the project |
stats.http_records.success | int | 2xx status code count |
stats.http_records.redirect | int | 3xx status code count |
stats.http_records.client_err | int | 4xx status code count |
stats.http_records.server_err | int | 5xx status code count |
stats.findings.total | int | Total findings |
stats.findings.critical | int | Critical severity count |
stats.findings.high | int | High severity count |
stats.findings.medium | int | Medium severity count |
stats.findings.low | int | Low severity count |
stats.findings.info | int | Info severity count |
stats.scans | int | Total scan sessions |
stats.agent_runs | int | Total agent runs |
stats.source_repos | int | Total linked source repositories |
stats.oast_interactions | int | Total OAST (out-of-band) interactions |
| Code | Condition |
|---|---|
| 503 | Database not connected |
POST /api/projects — Create Project
Request body:| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project name |
description | string | No | Project description |
owner_uuid | string | No | UUID of the owning user |
| Code | Condition |
|---|---|
| 400 | Missing name field |
| 400 | Invalid request body |
| 503 | Database not connected |
GET /api/projects/:uuid — Get Project
Retrieve a single project by UUID with aggregated statistics.| Code | Condition |
|---|---|
| 404 | Project not found |
| 503 | Database not connected |
PUT /api/projects/:uuid — Update Project
Update fields on an existing project. Only non-empty fields are applied. Request body:| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New project name |
description | string | No | New description |
owner_uuid | string | No | New owner UUID |
| Code | Condition |
|---|---|
| 400 | Invalid request body |
| 404 | Project not found |
| 503 | Database not connected |
DELETE /api/projects/:uuid — Delete Project
Delete a project by UUID. The default project (00000000-0000-0000-0000-000000000001) cannot be deleted. All data (scans, HTTP records, findings, scopes, source repos, OAST interactions, scan logs) belonging to the deleted project is automatically reassigned to the default project.
| Code | Condition |
|---|---|
| 400 | Attempting to delete default project |
| 500 | Database deletion failed |
| 503 | Database not connected |
