REST API Reference
The Temps REST API provides programmatic access to every feature available in the dashboard. All endpoints return JSON and use standard HTTP methods.
All API requests require authentication via a Bearer token in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
"https://your-temps-instance/api/projects"
CopyCopied!
Obtain a token from Settings > API Keys in the dashboard. Tokens can be scoped to specific permissions.
Deployed applications receive a per-environment token automatically as the TEMPS_API_TOKEN environment variable.
All endpoints are relative to your Temps instance URL:
https://your-temps-instance/api/
CopyCopied!
Success responses return JSON with the resource data directly:
{
"id" : 1 ,
"name" : "my-project" ,
"slug" : "my-project" ,
"created_at" : "2026-01-15T12:00:00Z"
}
CopyCopied!
Error responses use RFC 7807 Problem Details:
{
"type" : "about:blank" ,
"title" : "Not Found" ,
"status" : 404 ,
"detail" : "Project 42 not found"
}
CopyCopied!
Paginated responses include items and a total count:
{
"items" : [ ... ],
"total" : 42
}
CopyCopied!
Default pagination: 20 items per page, max 100. Use ?page=2&per_page=50 query parameters.
Method Endpoint Description GET/projectsList all projects POST/projectsCreate a project GET/projects/{project_id}Get a project PUT/projects/{project_id}Update a project DELETE/projects/{project_id}Delete a project POST/projects/{project_id}/trigger-pipelineTrigger a deployment from Git
Trigger pipeline
curl -X POST "https://your-instance/api/projects/{project_id}/trigger-pipeline" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"branch": "main", "environment_id": 1}'
CopyCopied!
Method Endpoint Description GET/projects/{project_id}/deploymentsList deployments GET/projects/{project_id}/deployments/{deployment_id}Get deployment details POST/projects/{project_id}/deployments/{deployment_id}/rollbackRollback to this deployment POST/projects/{project_id}/deployments/{deployment_id}/cancelCancel a running deployment POST/projects/{project_id}/deployments/{deployment_id}/pausePause a deployment POST/projects/{project_id}/deployments/{deployment_id}/resumeResume a paused deployment POST/projects/{project_id}/deployments/{deployment_id}/teardownStop and remove containers
Remote deployment endpoints
Method Endpoint Description POST/projects/{id}/environments/{id}/deploy/imageDeploy from a registry image POST/projects/{id}/environments/{id}/deploy/image-uploadUpload and deploy a Docker tarball (max 1 GB) POST/projects/{id}/environments/{id}/deploy/staticDeploy from a static file bundle POST/projects/{id}/upload/staticUpload a static bundle (max 500 MB)
Deployment jobs and logs
Method Endpoint Description GET.../deployments/{id}/jobsList all jobs for a deployment GET.../deployments/{id}/jobs/{job_id}/logsGet logs for a specific job
Container management
Method Endpoint Description GET.../environments/{id}/containersList containers in an environment GET.../containers/{id}/metricsGet real-time resource metrics POST.../containers/{id}/startStart a container POST.../containers/{id}/stopStop a container POST.../containers/{id}/restartRestart a container
Method Endpoint Description GET/projects/{project_id}/environmentsList environments POST/projects/{project_id}/environmentsCreate an environment GET/projects/{project_id}/environments/{env_id}Get environment details PUT/projects/{project_id}/environments/{env_id}/settingsUpdate environment settings DELETE/projects/{project_id}/environments/{env_id}Delete an environment
Update settings
curl -X PUT "https://your-instance/api/projects/{id}/environments/{id}/settings" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cpu_limit": 2000,
"memory_limit": 1024,
"replicas": 3,
"exposed_port": 8080
}'
CopyCopied!
Method Endpoint Description GET/projects/{id}/env-varsList variables (filter with ?environment_id=X) POST/projects/{id}/env-varsCreate a variable PUT/projects/{id}/env-vars/{var_id}Update a variable DELETE/projects/{id}/env-vars/{var_id}Delete a variable GET/projects/{id}/env-vars/{key}/valueGet a single variable value
Create a variable
curl -X POST "https://your-instance/api/projects/{id}/env-vars" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "API_KEY",
"value": "secret-value",
"environment_ids": [1, 2],
"include_in_preview": false
}'
CopyCopied!
Method Endpoint Description GET/projects/{id}/environments/{id}/domainsList domains for an environment POST/projects/{id}/environments/{id}/domainsAdd a domain DELETE/projects/{id}/environments/{id}/domains/{domain_id}Remove a domain
Method Endpoint Description GET/external-servicesList all services POST/external-servicesCreate a service GET/external-services/{id}Get service details PUT/external-services/{id}Update a service DELETE/external-services/{id}Delete a service GET/external-services/{id}/healthHealth check POST/external-services/{id}/startStart a service POST/external-services/{id}/stopStop a service POST/external-services/{id}/upgradeUpgrade Docker image POST/external-services/{id}/projectsLink to a project DELETE/external-services/{id}/projects/{project_id}Unlink from a project GET/external-services/{id}/projectsList linked projects GET/external-services/{id}/projects/{id}/environmentGet env vars for service+project GET/external-services/typesList available service types GET/external-services/available-containersList importable Docker containers POST/external-services/importImport an existing container
Method Endpoint Description GET/projects/{id}/statusOverall status (monitors + incidents) POST/projects/{id}/monitorsCreate a monitor GET/projects/{id}/monitorsList monitors GET/monitors/{id}Get monitor details DELETE/monitors/{id}Delete a monitor GET/monitors/{id}/current-statusCurrent status with custom timeframe GET/monitors/{id}/uptimeUptime history GET/monitors/{id}/bucketedTime-bucketed status data POST/projects/{id}/incidentsCreate an incident GET/projects/{id}/incidentsList incidents GET/incidents/{id}Get incident details PATCH/incidents/{id}/statusUpdate incident status GET/incidents/{id}/updatesGet incident updates
Method Endpoint Description GET/backups/s3-sourcesList S3 sources POST/backups/s3-sourcesCreate an S3 source GET/backups/s3-sources/{id}Get S3 source PATCH/backups/s3-sources/{id}Update S3 source DELETE/backups/s3-sources/{id}Delete S3 source POST/backups/s3-sources/{id}/runTrigger a manual backup GET/backups/s3-sources/{id}/backupsList backups in this source GET/backups/schedulesList backup schedules POST/backups/schedulesCreate a schedule GET/backups/schedules/{id}Get schedule DELETE/backups/schedules/{id}Delete schedule PATCH/backups/schedules/{id}/enableEnable schedule PATCH/backups/schedules/{id}/disableDisable schedule GET/backups/{id}Get backup details
Method Endpoint Description GET/notification-providersList providers POST/notification-providers/emailCreate email provider POST/notification-providers/slackCreate Slack provider POST/notification-providers/webhookCreate webhook provider PUT/notification-providers/email/{id}Update email provider PUT/notification-providers/slack/{id}Update Slack provider PUT/notification-providers/webhook/{id}Update webhook provider DELETE/notification-providers/{id}Delete provider POST/notification-providers/{id}/testTest provider GET/notification-preferencesGet preferences PUT/notification-preferencesUpdate preferences
Method Endpoint Description GET/projects/{id}/webhooksList webhooks POST/projects/{id}/webhooksCreate a webhook GET/projects/{id}/webhooks/{id}Get webhook PUT/projects/{id}/webhooks/{id}Update webhook DELETE/projects/{id}/webhooks/{id}Delete webhook GET/projects/{id}/webhooks/{id}/deliveriesList delivery history POST.../deliveries/{id}/retryRetry a failed delivery
Method Endpoint Description GET/usersList users POST/usersCreate a user GET/users/{id}Get user PUT/users/{id}Update user DELETE/users/{id}Delete user GET/api-keysList API keys POST/api-keysCreate an API key DELETE/api-keys/{id}Delete an API key
For the complete, auto-generated OpenAPI specification with all request/response schemas, access /api/docs on your Temps instance. The Node SDK (@temps-sdk/node-sdk) provides a fully typed client with 24 namespaces generated from this spec.
Instead of making raw HTTP requests, use the official Node SDK for a typed client:
import { TempsClient } from '@temps-sdk/node-sdk' ;
const temps = new TempsClient ({
baseUrl: 'https://your-instance.temps.dev' ,
apiKey: 'your-api-key' ,
});
// All endpoints are available as typed methods
const { data : projects } = await temps.projects. list ();
const { data : deployments } = await temps.deployments. list ({ path: { project_id: 1 } });
CopyCopied!
See the Node SDK Reference for the full API.