Sites
Static sites and single-page apps at their own address: versions, going live, rolling back, and the files in a version. 6 routes, from the API’s own OpenAPI document.
6 routes. Every path starts at https://cloud-api.qaldy.com. Sign-in, tokens, errors and limits are on the overview.
Routes#
| Method | Path | What it does |
|---|---|---|
| GET | /v1/sites/{id} | One site: versions, traffic and storage |
| DELETE | /v1/sites/{id} | Delete a site, all its versions and the files only it used (owner; type its name) |
| POST | /v1/sites/{id}/activate | Make a version live: the newest, or an older one to roll back |
| DELETE | /v1/sites/{id}/versions/{versionId} | Delete a version that is not live, and the files only it used |
| GET | /v1/sites/{id}/versions/{versionId}/files | The files of one version: path, size and type |
| GET | /v1/workspaces/{ws}/sites | Sites you can open: status, live version and page views for 14 days |
Reference#
GET /v1/sites/{id}#
One site: versions, traffic and storage.
- Authentication: the console’s session cookie.
- Token: a personal access token or an MCP sign-in with the
readscope. - Who:
can_view. Tokens:read
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | yes | 1 to 128 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
workspaceId | string | yes | |
name | string | yes | |
slug | string | yes | |
url | string or null | yes | |
status | "live" · "paused" · "empty" | yes | |
sharing | "private" · "shared" · "workspace" · "public" | yes | |
current | object or null | yes | |
current.id | string | yes | |
current.number | integer | yes | at least 1 |
current.createdAt | string (date-time) | yes | |
current.createdBy | object or null | yes | |
current.bundleHash | string | yes | |
current.fileCount | integer | yes | at least 0 |
current.totalBytes | integer | yes | at least 0 |
current.spa | boolean | yes | |
current.hasIndex | boolean | yes | |
current.note | string or null | yes | |
current.source | "console" · "api" | yes | |
current.current | boolean | yes | |
versionCount | integer | yes | at least 0 |
createdAt | string (date-time) | yes | |
updatedAt | string (date-time) | yes | |
spark | integer[] | yes | |
pages14d | integer | yes | at least 0 |
canEdit | boolean | yes | |
description | string | yes | |
canDelete | boolean | yes | |
versions | object[] | yes | |
versions[].id | string | yes |
…and 13 more fields. The full schema is in openapi.json.
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).
DELETE /v1/sites/{id}#
Delete a site, all its versions and the files only it used (owner; type its name).
- Authentication: the console’s session cookie.
- Token: not available. This route is for a signed-in person in the console (
403 console_onlyfor a token). - Who: owner (
ownerrelation); signed-in person only
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | yes | 1 to 128 characters |
Request body (application/json)
| Field | Type | Required | Notes |
|---|---|---|---|
confirm | string | yes | 1 to 200 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
ok | true | yes |
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).
POST /v1/sites/{id}/activate#
Make a version live: the newest, or an older one to roll back.
- Authentication: the console’s session cookie.
- Token: not available. This route is for a signed-in person in the console (
403 console_onlyfor a token). - Who:
can_edit; signed-in person only
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | yes | 1 to 128 characters |
Request body (application/json)
| Field | Type | Required | Notes |
|---|---|---|---|
versionId | string | yes | 1 to 128 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
workspaceId | string | yes | |
name | string | yes | |
slug | string | yes | |
url | string or null | yes | |
status | "live" · "paused" · "empty" | yes | |
sharing | "private" · "shared" · "workspace" · "public" | yes | |
current | object or null | yes | |
current.id | string | yes | |
current.number | integer | yes | at least 1 |
current.createdAt | string (date-time) | yes | |
current.createdBy | object or null | yes | |
current.bundleHash | string | yes | |
current.fileCount | integer | yes | at least 0 |
current.totalBytes | integer | yes | at least 0 |
current.spa | boolean | yes | |
current.hasIndex | boolean | yes | |
current.note | string or null | yes | |
current.source | "console" · "api" | yes | |
current.current | boolean | yes | |
versionCount | integer | yes | at least 0 |
createdAt | string (date-time) | yes | |
updatedAt | string (date-time) | yes | |
spark | integer[] | yes | |
pages14d | integer | yes | at least 0 |
canEdit | boolean | yes | |
description | string | yes | |
canDelete | boolean | yes | |
versions | object[] | yes | |
versions[].id | string | yes |
…and 13 more fields. The full schema is in openapi.json.
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).
DELETE /v1/sites/{id}/versions/{versionId}#
Delete a version that is not live, and the files only it used.
- Authentication: the console’s session cookie.
- Token: not available. This route is for a signed-in person in the console (
403 console_onlyfor a token). - Who:
can_edit; signed-in person only
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | yes | 1 to 128 characters |
versionId | path | string | yes | 1 to 128 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
workspaceId | string | yes | |
name | string | yes | |
slug | string | yes | |
url | string or null | yes | |
status | "live" · "paused" · "empty" | yes | |
sharing | "private" · "shared" · "workspace" · "public" | yes | |
current | object or null | yes | |
current.id | string | yes | |
current.number | integer | yes | at least 1 |
current.createdAt | string (date-time) | yes | |
current.createdBy | object or null | yes | |
current.bundleHash | string | yes | |
current.fileCount | integer | yes | at least 0 |
current.totalBytes | integer | yes | at least 0 |
current.spa | boolean | yes | |
current.hasIndex | boolean | yes | |
current.note | string or null | yes | |
current.source | "console" · "api" | yes | |
current.current | boolean | yes | |
versionCount | integer | yes | at least 0 |
createdAt | string (date-time) | yes | |
updatedAt | string (date-time) | yes | |
spark | integer[] | yes | |
pages14d | integer | yes | at least 0 |
canEdit | boolean | yes | |
description | string | yes | |
canDelete | boolean | yes | |
versions | object[] | yes | |
versions[].id | string | yes |
…and 13 more fields. The full schema is in openapi.json.
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).
GET /v1/sites/{id}/versions/{versionId}/files#
The files of one version: path, size and type.
- Authentication: the console’s session cookie.
- Token: not available. This route is for a signed-in person in the console (
403 console_onlyfor a token). - Who:
can_view
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | yes | 1 to 128 characters |
versionId | path | string | yes | 1 to 128 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
versionId | string | yes | |
spa | boolean | yes | |
files | object[] | yes | |
files[].path | string | yes | |
files[].size | integer | yes | at least 0 |
files[].type | string | yes | |
files[].sha256 | string | yes |
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).
GET /v1/workspaces/{ws}/sites#
Sites you can open: status, live version and page views for 14 days.
- Authentication: the console’s session cookie.
- Token: a personal access token or an MCP sign-in with the
readscope. - Who: member, filtered to
can_view. Tokens:read
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ws | path | string | yes | 1 to 128 characters |
Response 200
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
workspaceId | string | yes | |
name | string | yes | |
slug | string | yes | |
url | string or null | yes | |
status | "live" · "paused" · "empty" | yes | |
sharing | "private" · "shared" · "workspace" · "public" | yes | |
current | object or null | yes | |
current.id | string | yes | |
current.number | integer | yes | at least 1 |
current.createdAt | string (date-time) | yes | |
current.createdBy | object or null | yes | |
current.bundleHash | string | yes | |
current.fileCount | integer | yes | at least 0 |
current.totalBytes | integer | yes | at least 0 |
current.spa | boolean | yes | |
current.hasIndex | boolean | yes | |
current.note | string or null | yes | |
current.source | "console" · "api" | yes | |
current.current | boolean | yes | |
versionCount | integer | yes | at least 0 |
createdAt | string (date-time) | yes | |
updatedAt | string (date-time) | yes | |
spark | integer[] | yes | |
pages14d | integer | yes | at least 0 |
canEdit | boolean | yes |
Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).