Projects
Manage your sota.io projects via the REST API.
List Projects
GET /v1/projects
curl https://api.sota.io/v1/projects \
-H "Authorization: Bearer <token>"
Response:
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My App",
"slug": "my-app",
"created_at": "2026-02-25T10:00:00Z",
"updated_at": "2026-02-25T14:30:00Z"
}
],
"pagination": {
"next_cursor": null,
"has_more": false
}
}
Query Parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (default: 20, max: 100) |
cursor | string | Pagination cursor from previous response |
Create Project
POST /v1/projects
curl -X POST https://api.sota.io/v1/projects \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"name": "My App"}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name (1-100 characters) |
slug | string | No | URL slug (used in {slug}.sota.io). Auto-generated from name if not provided. |
The slug is auto-generated from the project name: lowercase, spaces and special characters become hyphens, max 63 characters. For example, "My Cool App" becomes my-cool-app.
You can also provide a custom slug: {"name": "My App", "slug": "custom-slug"}.
Note: The slug cannot be changed after creation because it is part of the app URL (
{slug}.sota.io).
Response (201 Created):
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My App",
"slug": "my-app",
"created_at": "2026-02-25T10:00:00Z",
"updated_at": "2026-02-25T10:00:00Z"
}
}
Update Project
PATCH /v1/projects/:id
curl -X PATCH https://api.sota.io/v1/projects/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"name": "My Updated App"}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | New display name (1-100 characters) |
Delete Project
DELETE /v1/projects/:id
curl -X DELETE https://api.sota.io/v1/projects/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer <token>"
Returns 204 No Content. This stops all running containers and removes the project. This action is irreversible.