Deployments
Deploy applications and view deployment history.
Deploy
POST /v1/projects/:id/deploy
Content-Type: multipart/form-data
curl -X POST https://api.sota.io/v1/projects/550e8400-e29b-41d4-a716-446655440000/deploy \
-H "Authorization: Bearer <token>" \
-F "archive=@app.tar.gz"
Request
Upload your code as a .tar.gz archive (max 50 MB) in the archive form field.
Response
Returns 202 Accepted — the build starts asynchronously:
{
"data": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"image_tag": null,
"build_method": null,
"framework": null,
"error_message": null,
"url": null,
"created_at": "2026-02-25T14:30:00Z",
"updated_at": "2026-02-25T14:30:00Z"
}
}
The deployment starts building immediately. Use the logs stream endpoint to follow build progress.
Redeploy
Re-deploy the current image with the latest environment variables. No code upload needed — uses the existing built image.
POST /v1/projects/:id/redeploy
curl -X POST https://api.sota.io/v1/projects/550e8400-e29b-41d4-a716-446655440000/redeploy \
-H "Authorization: Bearer <token>"
Returns 200 OK with the new deployment:
{
"data": {
"id": "new-deployment-uuid",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "deploying",
"created_at": "2026-02-28T12:00:00Z"
}
}
Useful after changing environment variables — redeploy picks up the new values without re-building.
List Deployments
GET /v1/projects/:id/deployments
curl https://api.sota.io/v1/projects/550e8400-e29b-41d4-a716-446655440000/deployments \
-H "Authorization: Bearer <token>"
Response:
{
"data": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "running",
"image_tag": "registry.sota.io/my-app:7c9e6679",
"build_method": "railpack",
"framework": "nextjs",
"url": "my-app.sota.io",
"created_at": "2026-02-25T14:30:00Z",
"updated_at": "2026-02-25T14:31:00Z"
}
],
"pagination": {
"next_cursor": null,
"has_more": false
}
}
Stream Build Logs
GET /v1/projects/:id/deployments/:deploy_id/logs/stream
This endpoint uses Server-Sent Events (SSE) to stream build logs in real-time.
curl -N https://api.sota.io/v1/projects/550e8400-.../deployments/7c9e6679-.../logs/stream \
-H "Authorization: Bearer <token>"
Each event contains a log line:
data: [build] Installing dependencies...
data: [build] Building application...
data: [deploy] Container started
data: [deploy] Health check passed
The connection closes when the deployment completes or fails. Maximum connection duration: 15 minutes.
Get Deployment Logs
GET /v1/projects/:id/deployments/:deploy_id/logs
Returns all available logs for the deployment as text or JSON, depending on the Accept header.
Deployment Statuses
| Status | Description |
|---|---|
pending | Deployment created, waiting for build to start |
building | Code archive uploaded, build in progress |
built | Image built successfully, preparing to deploy |
deploying | Container starting, running health checks |
running | Container healthy, serving traffic |
failed | Build or health check failed |
stopped | Container stopped (replaced by newer deployment) |