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.


Authentication

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"

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.


Base URL

All endpoints are relative to your Temps instance URL:

https://your-temps-instance/api/

Response format

Success responses return JSON with the resource data directly:

{
  "id": 1,
  "name": "my-project",
  "slug": "my-project",
  "created_at": "2026-01-15T12:00:00Z"
}

Error responses use RFC 7807 Problem Details:

{
  "type": "about:blank",
  "title": "Not Found",
  "status": 404,
  "detail": "Project 42 not found"
}

Paginated responses include items and a total count:

{
  "items": [...],
  "total": 42
}

Default pagination: 20 items per page, max 100. Use ?page=2&per_page=50 query parameters.


Projects

MethodEndpointDescription
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}'

Deployments

MethodEndpointDescription
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

MethodEndpointDescription
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

MethodEndpointDescription
GET.../deployments/{id}/jobsList all jobs for a deployment
GET.../deployments/{id}/jobs/{job_id}/logsGet logs for a specific job

Container management

MethodEndpointDescription
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

Environments

MethodEndpointDescription
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
  }'

Environment variables

MethodEndpointDescription
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
  }'

Domains

MethodEndpointDescription
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

External services

MethodEndpointDescription
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

Monitoring

MethodEndpointDescription
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

Backups

MethodEndpointDescription
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

Notifications

MethodEndpointDescription
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

Webhooks

MethodEndpointDescription
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

Users and API keys

MethodEndpointDescription
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

Using the Node SDK

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 } });

See the Node SDK Reference for the full API.

Was this page helpful?