API reference
The seenode REST API: base URL, authentication, and endpoints for automating deployments.
The seenode REST API lets you automate deployments and read account information, for example from a GitHub Actions or GitLab CI/CD pipeline.
Base URL
https://api.seenode.com/v1Authentication
All requests use a Bearer token. Create one in the dashboard (see Create an API token) and send it in the Authorization header:
Authorization: Bearer YOUR_API_TOKENEndpoints
List teams
GET /v1/teamsReturns the teams your token can access.
curl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://api.seenode.com/v1/teamsExample response (200 OK):
{ "teams": [ { "id": 12345, "name": "My Workspace", "icon": "0", "created": "2025-06-17T11:14:22", "membersCount": 1, "servicesLimit": 10, "billingThreshold": 200, "freeTrialAvailable": false, "freeTrialEnds": "2025-06-23T11:20:00", "lowCreditPrevention": null, "topUpAmount": null } ]}| Field | Description |
|---|---|
id | Team identifier |
name | Team name |
icon | Team icon |
created | Creation timestamp |
membersCount | Number of members |
servicesLimit | Maximum services allowed on the team |
billingThreshold | Spend threshold, in dollars |
freeTrialAvailable | Whether a free trial is available |
freeTrialEnds | Trial end timestamp (or null) |
lowCreditPrevention | Auto top-up configuration (or null) |
topUpAmount | Configured top-up amount (or null) |
Trigger a deployment
POST /v1/applications/{applicationId}/deploymentsDeploys a specific commit of an application.
curl -X POST \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"gitCommitSha": "<commit-sha>"}' \ https://api.seenode.com/v1/applications/APPLICATION_ID/deploymentsRequest body:
| Field | Description |
|---|---|
gitCommitSha | The Git commit SHA to deploy (must exist in the connected repository) |
A successful call returns 201 Created. The new deployment is nested under a deployment key. The full response embeds the resolved build settings (image, build/start commands, port) as applicationBuildSettings:
{ "deployment": { "applicationBuildSettings": { "buildCommand": "go build -o app ./cmd/server", "continuousDelivery": false, "created": "Sat, 11 Jul 2026 22:37:43 GMT", "id": 1945778, "image": { "dockerImageDefaultCommands": { "buildCommand": "go build -v -o app main.go", "id": 3, "runCommand": "./app" }, "dockerImageDefaultCommandsId": 3, "enabled": true, "id": 15, "imageRepository": "golang", "imageTag": "1.24", "name": "Golang 1.24", "note": "Public Golang 1.24", "type": "application" }, "imageId": 15, "port": 8080, "rootDirectory": "", "runCommand": "./app" }, "applicationBuildSettingsId": 1945778, "applicationId": 969217, "builtImage": null, "created": "Sun, 12 Jul 2026 09:00:28 GMT", "deployIsLive": false, "finished": null, "gitCommitAuthor": "Jane Developer", "gitCommitDate": "Tue, 16 Dec 2025 11:48:38 GMT", "gitCommitMessage": "Update service", "gitCommitSha": "a1b2c3d4e5f6…", "message": null, "sentryId": null, "started": null, "state": "NEW", "uuid": "3f2b1a9c-…" }}The deployment object fields:
| Field | Description |
|---|---|
applicationBuildSettings | The resolved build configuration used for this deployment: the runtime image, buildCommand, runCommand, port, rootDirectory, deploymentTimeout, and continuousDelivery flag |
applicationBuildSettingsId | ID of the build-settings record |
applicationId | The application this deployment belongs to |
builtImage | Registry path of the built container image, or null until the build finishes |
created | When the deployment was created |
deployIsLive | Whether this deployment is currently serving traffic |
finished | Build/finish timestamp, or null while in progress |
gitCommitAuthor | Commit author |
gitCommitDate | Commit date |
gitCommitMessage | Commit message |
gitCommitSha | The deployed commit |
message | Status/error message, or null |
sentryId | Associated Sentry event ID, or null |
started | When the build started, or null |
state | Deployment state: NEW, RUNNING, and so on |
uuid | Deployment UUID |
The deployment starts in state: "NEW"; state, started, builtImage, finished, and deployIsLive fill in as the build progresses. An unknown or missing commit returns 500 with {"error": "Commit SHA: … not found in the repository: <owner>/<repo>."}.
List deployments
GET /v1/applications/{applicationId}/deploymentsReturns the most recent and currently-live deployments for an application.
curl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://api.seenode.com/v1/applications/APPLICATION_ID/deploymentsExample response (200 OK). Each entry is a full deployment object (the applicationBuildSettings block is omitted below for brevity):
{ "deployments": { "lastDeployment": { "applicationBuildSettingsId": 1945778, "applicationId": 969217, "builtImage": null, "created": "2026-07-12 09:00:28", "deployIsLive": false, "finished": null, "gitCommitAuthor": "Jane Developer", "gitCommitDate": "2025-12-16 11:48:38", "gitCommitMessage": "Update service", "gitCommitSha": "a1b2c3d4e5f6…", "message": null, "sentryId": null, "started": "2026-07-12 09:00:28", "state": "RUNNING", "uuid": "3f2b1a9c-…" }, "liveDeployment": { "applicationBuildSettingsId": 1945778, "applicationId": 969217, "builtImage": "registry.example.com/seenode/production/<image-uuid>:<tag-uuid>", "created": "2026-07-12 08:59:56", "deployIsLive": true, "finished": "2026-07-12 09:00:39", "gitCommitAuthor": "Jane Developer", "gitCommitDate": "2025-12-16 11:48:38", "gitCommitMessage": "Update service", "gitCommitSha": "a1b2c3d4e5f6…", "message": null, "sentryId": null, "started": "2026-07-12 08:59:56", "state": "RUNNING", "uuid": "7c4e0d2b-…" } }}| Field | Description |
|---|---|
deployments.lastDeployment | The most recently created deployment. May still be building; watch state progress from NEW to RUNNING. |
deployments.liveDeployment | The deployment currently serving traffic (deployIsLive: true, with a builtImage and a finished timestamp). null if nothing is live yet. |
Both entries are the same deployment object returned by Trigger a deployment. Note that this endpoint formats timestamps as YYYY-MM-DD HH:MM:SS, whereas the trigger endpoint returns RFC-1123 dates (Sun, 12 Jul 2026 09:00:28 GMT).
Finding your application ID: open the application in the dashboard: the ID is in the URL, e.g. …/dashboard/applications?applicationId=969217 → 969217.