API reference | Seenode Docs

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/v1

Authentication

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_TOKEN

Endpoints

List teams

GET /v1/teams

Returns the teams your token can access.

Terminal window
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://api.seenode.com/v1/teams

Example 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
}
]
}
FieldDescription
idTeam identifier
nameTeam name
iconTeam icon
createdCreation timestamp
membersCountNumber of members
servicesLimitMaximum services allowed on the team
billingThresholdSpend threshold, in dollars
freeTrialAvailableWhether a free trial is available
freeTrialEndsTrial end timestamp (or null)
lowCreditPreventionAuto top-up configuration (or null)
topUpAmountConfigured top-up amount (or null)

Trigger a deployment

POST /v1/applications/{applicationId}/deployments

Deploys a specific commit of an application.

Terminal window
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/deployments

Request body:

FieldDescription
gitCommitShaThe 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:

FieldDescription
applicationBuildSettingsThe resolved build configuration used for this deployment: the runtime image, buildCommand, runCommand, port, rootDirectory, deploymentTimeout, and continuousDelivery flag
applicationBuildSettingsIdID of the build-settings record
applicationIdThe application this deployment belongs to
builtImageRegistry path of the built container image, or null until the build finishes
createdWhen the deployment was created
deployIsLiveWhether this deployment is currently serving traffic
finishedBuild/finish timestamp, or null while in progress
gitCommitAuthorCommit author
gitCommitDateCommit date
gitCommitMessageCommit message
gitCommitShaThe deployed commit
messageStatus/error message, or null
sentryIdAssociated Sentry event ID, or null
startedWhen the build started, or null
stateDeployment state: NEW, RUNNING, and so on
uuidDeployment 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}/deployments

Returns the most recent and currently-live deployments for an application.

Terminal window
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://api.seenode.com/v1/applications/APPLICATION_ID/deployments

Example 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-…"
}
}
}
FieldDescription
deployments.lastDeploymentThe most recently created deployment. May still be building; watch state progress from NEW to RUNNING.
deployments.liveDeploymentThe 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=969217969217.