Cloud · sites
36 routes. Paths are relative to https://api.intersink.com/v1. This group belongs to a feature in beta.
- GET/cloud/channels/{channelId}/gitThe channel's GitHub and GitLab connections
- DELETE/cloud/channels/{channelId}/git/{id}Disconnect a git connection no site uses
- GET/cloud/channels/{channelId}/git/{id}/branchesBranches of a repository: ?repo=owner/name (GitHub) or project id (GitLab)
- GET/cloud/channels/{channelId}/git/{id}/reposRepositories a connection can read
- POST/cloud/channels/{channelId}/git/githubStart installing the GitHub App: returns GitHub's install URL
- POST/cloud/channels/{channelId}/git/github/linkReuse a GitHub connection of another channel in the same business: { connection_id } (you must manage both)
- GET/cloud/channels/{channelId}/git/github/shareableGitHub connections on your other channels of this business that this channel can reuse
- POST/cloud/channels/{channelId}/git/gitlabConnect GitLab: { base_url?, token } (a token with the api scope, kept encrypted)
- GET/cloud/channels/{channelId}/sitesThe channel's sites
- POST/cloud/channels/{channelId}/sitesCreate a site and deploy it: { name, plan, source{kind…}, branch, framework, … env[] } (first month paid now)
- GET/cloud/channels/{channelId}/sites/{id}One site with its domains and deploy hook
- PATCH/cloud/channels/{channelId}/sites/{id}Build settings: { branch, framework, root_dir, commands, port, plan (from next month), redeploy? }
- DELETE/cloud/channels/{channelId}/sites/{id}Delete a site: stops it and removes its build, keys and hooks. Storage it adopted from an earlier app is kept unless ?delete_adopted_volumes=true
- PUT/cloud/channels/{channelId}/sites/{id}/addressChange the site's default address: { slug } → https://<slug>.<SITES_BASE_DOMAIN> (redeploys; the old address stops answering)
- POST/cloud/channels/{channelId}/sites/{id}/deploy-hookMake a new deploy hook URL (the old one stops working)
- GET/cloud/channels/{channelId}/sites/{id}/deploymentsRecent deployments
- POST/cloud/channels/{channelId}/sites/{id}/deploymentsDeploy now: { force? } (force rebuilds without cache)
- POST/cloud/channels/{channelId}/sites/{id}/deployments/{dep}/cancelCancel a queued or running deployment
- GET/cloud/channels/{channelId}/sites/{id}/deployments/{dep}/logBuild log of a deployment
- POST/cloud/channels/{channelId}/sites/{id}/domainsAdd a domain: { domain }. Returns the DNS record to set.
- DELETE/cloud/channels/{channelId}/sites/{id}/domains/{domainId}Remove a domain
- POST/cloud/channels/{channelId}/sites/{id}/domains/{domainId}/verifyCheck DNS: an A record pointing here, or (behind a proxy like Cloudflare) the TXT proof _kodkila-challenge.<domain> (pre-rename _westmonk-challenge still accepted); then the domain goes live with HTTPS
- GET/cloud/channels/{channelId}/sites/{id}/envEnvironment variables
- PUT/cloud/channels/{channelId}/sites/{id}/envAdd or change variables: { vars: [{ key, value }] }
- DELETE/cloud/channels/{channelId}/sites/{id}/env/{envId}Delete a variable
- GET/cloud/channels/{channelId}/sites/{id}/logsThe running app's latest log lines
- POST/cloud/channels/{channelId}/sites/{id}/rollbackGo back to a kept build: { commit }
- GET/cloud/channels/{channelId}/sites/{id}/rollbacksBuilds kept for rollback
- POST/cloud/channels/{channelId}/sites/{id}/volumesKeep a folder's files across deploys: { mount_path } (e.g. /data; used from the next deploy)
- POST/cloud/channels/{channelId}/sites/{id}/volumes/deleteStop keeping a folder across deploys: { mount_path }. Its files stay on the server (returned as kept_volume)
- GET/cloud/channels/{channelId}/sites/address-checkWhether a default address <slug>.<SITES_BASE_DOMAIN> can be used: ?slug= → { slug, available, reason, url }
- GET/cloud/channels/{channelId}/sites/optionsPlans, build presets and what is set up
- POST/cloud/git/github/callbackFinish connecting GitHub: { state, installation_id, code } from GitHub's redirect
- POST/cloud/hooks/deploy/{siteId}/{token}Deploy hook: POST from CI or a CMS to deploy the site
- POST/cloud/hooks/githubGitHub App webhook (signed): pushes deploy matching sites
- POST/cloud/hooks/gitlab/{siteId}GitLab push webhook of one site (X-Gitlab-Token)
The channel's GitHub and GitLab connections
GET/cloud/channels/{channelId}/git
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Disconnect a git connection no site uses
DELETE/cloud/channels/{channelId}/git/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Branches of a repository: ?repo=owner/name (GitHub) or project id (GitLab)
GET/cloud/channels/{channelId}/git/{id}/branches
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| reporequired | string, query |
Response
200. data is string[].
Repositories a connection can read
GET/cloud/channels/{channelId}/git/{id}/repos
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is of type object.
Start installing the GitHub App: returns GitHub's install URL
POST/cloud/channels/{channelId}/git/github
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Reuse a GitHub connection of another channel in the same business: { connection_id } (you must manage both)
POST/cloud/channels/{channelId}/git/github/link
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Connect GitLab: { base_url?, token } (a token with the api scope, kept encrypted)
POST/cloud/channels/{channelId}/git/gitlab
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
The channel's sites
GET/cloud/channels/{channelId}/sites
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Create a site and deploy it: { name, plan, source{kind…}, branch, framework, … env[] } (first month paid now)
POST/cloud/channels/{channelId}/sites
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
One site with its domains and deploy hook
GET/cloud/channels/{channelId}/sites/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Build settings: { branch, framework, root_dir, commands, port, plan (from next month), redeploy? }
PATCH/cloud/channels/{channelId}/sites/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete a site: stops it and removes its build, keys and hooks. Storage it adopted from an earlier app is kept unless ?delete_adopted_volumes=true
DELETE/cloud/channels/{channelId}/sites/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| delete_adopted_volumesrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Change the site's default address: { slug } → https://<slug>.<SITES_BASE_DOMAIN> (redeploys; the old address stops answering)
PUT/cloud/channels/{channelId}/sites/{id}/address
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Make a new deploy hook URL (the old one stops working)
POST/cloud/channels/{channelId}/sites/{id}/deploy-hook
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Recent deployments
GET/cloud/channels/{channelId}/sites/{id}/deployments
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. data is object[].
Deploy now: { force? } (force rebuilds without cache)
POST/cloud/channels/{channelId}/sites/{id}/deployments
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Cancel a queued or running deployment
POST/cloud/channels/{channelId}/sites/{id}/deployments/{dep}/cancel
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| deprequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Build log of a deployment
GET/cloud/channels/{channelId}/sites/{id}/deployments/{dep}/log
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| deprequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Add a domain: { domain }. Returns the DNS record to set.
POST/cloud/channels/{channelId}/sites/{id}/domains
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Remove a domain
DELETE/cloud/channels/{channelId}/sites/{id}/domains/{domainId}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| domainIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Check DNS: an A record pointing here, or (behind a proxy like Cloudflare) the TXT proof _kodkila-challenge.<domain> (pre-rename _westmonk-challenge still accepted); then the domain goes live with HTTPS
POST/cloud/channels/{channelId}/sites/{id}/domains/{domainId}/verify
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| domainIdrequired | string, path |
Response
200. The payload in data is of type object.
Environment variables
GET/cloud/channels/{channelId}/sites/{id}/env
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Add or change variables: { vars: [{ key, value }] }
PUT/cloud/channels/{channelId}/sites/{id}/env
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete a variable
DELETE/cloud/channels/{channelId}/sites/{id}/env/{envId}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path | |
| envIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
The running app's latest log lines
GET/cloud/channels/{channelId}/sites/{id}/logs
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Go back to a kept build: { commit }
POST/cloud/channels/{channelId}/sites/{id}/rollback
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Builds kept for rollback
GET/cloud/channels/{channelId}/sites/{id}/rollbacks
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Keep a folder's files across deploys: { mount_path } (e.g. /data; used from the next deploy)
POST/cloud/channels/{channelId}/sites/{id}/volumes
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Stop keeping a folder across deploys: { mount_path }. Its files stay on the server (returned as kept_volume)
POST/cloud/channels/{channelId}/sites/{id}/volumes/delete
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Whether a default address <slug>.<SITES_BASE_DOMAIN> can be used: ?slug= → { slug, available, reason, url }
GET/cloud/channels/{channelId}/sites/address-check
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| slugrequired | string, query |
Response
200. The payload in data is of type object.
Plans, build presets and what is set up
GET/cloud/channels/{channelId}/sites/options
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Finish connecting GitHub: { state, installation_id, code } from GitHub's redirect
POST/cloud/git/github/callback
Needs a signed-in user (Bearer token or access_token cookie).
Response
200. The payload in data is not described in the spec yet.
Deploy hook: POST from CI or a CMS to deploy the site
POST/cloud/hooks/deploy/{siteId}/{token}
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| siteIdrequired | string, path | |
| tokenrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
GitHub App webhook (signed): pushes deploy matching sites
POST/cloud/hooks/github
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| x-github-event | string, header | |
| x-hub-signature-256 | string, header |
Response
200. The payload in data is of type object.
GitLab push webhook of one site (X-Gitlab-Token)
POST/cloud/hooks/gitlab/{siteId}
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| siteIdrequired | string, path | |
| x-gitlab-token | string, header |
Response
200. The payload in data is of type object.