Menu QaldyDocs

Backend (console)

Backend projects, tables, columns, rows, keys and logs, as the console and personal tokens use them. 19 routes, from the API’s own OpenAPI document.

19 routes. Every path starts at https://cloud-api.qaldy.com. Sign-in, tokens, errors and limits are on the overview.

Routes

MethodPathWhat it does
GET/​v1/​backend/​projects/​{projectId}One backend: tables, settings, counts and what you may change
GET/​v1/​backend/​projects/​{projectId}/​keysKeys of a backend (prefixes only; owner)
POST/​v1/​backend/​projects/​{projectId}/​keysCreate a key; its value is in this answer only (owner)
DELETE/​v1/​backend/​projects/​{projectId}/​keys/​{keyId}Revoke a key at once (owner)
GET/​v1/​backend/​projects/​{projectId}/​logsRecent data API requests and the last hour of load
PATCH/​v1/​backend/​projects/​{projectId}/​settingsRate limit, allowed browser origins and public-read tables (owner)
POST/​v1/​backend/​projects/​{projectId}/​tablesCreate a table with typed columns (id and created_at are added)
DELETE/​v1/​backend/​projects/​{projectId}/​tables/​{table}Drop a table and its rows (the table's name typed back)
POST/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​columnsAdd a column
GET/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​exportEvery row as CSV or JSON (up to 5,000)
POST/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​importAppend rows from CSV (header row = column names; all or nothing per check)
PUT/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​policySet the rules of a table from their sentences (owner)
POST/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​policy/​testTry the rules as a visitor, a signed-in person or a key; nothing is written (owner)
GET/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​rowsA page of rows (same filters as the data API)
POST/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​rowsInsert rows
PATCH/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​rows/​{id}Change one row
DELETE/​v1/​backend/​projects/​{projectId}/​tables/​{table}/​rows/​{id}Delete one row
GET/​v1/​workspaces/​{ws}/​backend/​projectsBackend projects you can see
POST/​v1/​workspaces/​{ws}/​backend/​projectsNew backend: a datacenter on the island, a sample table, no keys yet

Reference

GET /v1/backend/projects/{projectId}

One backend: tables, settings, counts and what you may change.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the read scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters

Response 200

FieldTypeRequiredNotes
idstringyesat least 1 characters
namestringyesat least 1 characters
slugstringyesat least 1 characters
descriptionstringyes
createdAtstring (date-time)yes
urlstringyesat least 1 characters
tableCountintegeryesat least 0
keyCountintegeryesat least 0
rowCountintegeryesat least 0
requestsPerMinnumberyesat least 0
workspaceIdstringyesat least 1 characters
createdBystringyesat least 1 characters
settingsobjectyes
settings.rateLimitPerMinintegeryes10 to 100000
settings.ipRatePerMinintegeryes10 to 100000
settings.maxBodyKbintegeryes1 to 1024
settings.allowedOriginsstring[]yesup to 20 items
settings.identityobject or nullyes
tablesobject[]yes
tables[].namestringyes
tables[].columnsobject[]yesup to 66 items
tables[].publicReadbooleanyes
tables[].rulesobject[]yesup to 16 items
tables[].rowCountinteger or nullyesat least 0
tables[].createdAtstring (date-time)yes
canEditbooleanyes
canAdminbooleanyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

GET /v1/backend/projects/{projectId}/keys

Keys of a backend (prefixes only; owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters

Response 200

FieldTypeRequiredNotes
idstringyesat least 1 characters
namestringyes1 to 60 characters
kind"publishable" · "secret"yes
prefixstringyesat least 1 characters
last4stringyes4 to 4 characters
scopes"rows:read" · "rows:write" · "schema:write"[]yesup to 3 items
tablesstring[] or nullyesup to 64 items
createdAtstring (date-time)yes
createdBystringyesat least 1 characters
lastUsedAtstring (date-time) or nullyes
revokedAtstring (date-time) or nullyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/backend/projects/{projectId}/keys

Create a key; its value is in this answer only (owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters

Request body (application/json)

FieldTypeRequiredNotes
kind"publishable" · "secret"yes
namestringyes1 to 60 characters
scopes"rows:read" · "rows:write" · "schema:write"[]up to 3 items
tablesstring[] or nullup to 64 items

Response 200

FieldTypeRequiredNotes
keyobjectyes
key.idstringyesat least 1 characters
key.namestringyes1 to 60 characters
key.kind"publishable" · "secret"yes
key.prefixstringyesat least 1 characters
key.last4stringyes4 to 4 characters
key.scopes"rows:read" · "rows:write" · "schema:write"[]yesup to 3 items
key.tablesstring[] or nullyesup to 64 items
key.createdAtstring (date-time)yes
key.createdBystringyesat least 1 characters
key.lastUsedAtstring (date-time) or nullyes
key.revokedAtstring (date-time) or nullyes
secretstringyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

DELETE /v1/backend/projects/{projectId}/keys/{keyId}

Revoke a key at once (owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
keyIdpathstringyes1 to 64 characters

Response 200

FieldTypeRequiredNotes
oktrueyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

GET /v1/backend/projects/{projectId}/logs

Recent data API requests and the last hour of load.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the read scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
limitqueryinteger1 to 200. default 50

Response 200

FieldTypeRequiredNotes
logsobject[]yes
logs[].idstringyesat least 1 characters
logs[].atstring (date-time)yes
logs[].methodstringyes1 to 10 characters
logs[].pathstringyesup to 300 characters
logs[].tablestring or nullyes
logs[].statusintegeryes100 to 599
logs[].durationMsintegeryesat least 0
logs[].keyPrefixstring or nullyes
logs[].keyNamestring or nullyesup to 60 characters
logs[].keyKind"publishable" · "secret" · null or nullyes
logs[].rowsinteger or nullyesat least 0
logs[].errorCodestring or nullyes
metricsobjectyes
metrics.windowMinutesintegeryesat least 1
metrics.perMinuteinteger[]yesup to 120 items
metrics.requestsPerMinnumberyesat least 0
metrics.totalintegeryesat least 0
metrics.errorsintegeryesat least 0
metrics.p50Msnumber or nullyesat least 0
metrics.p95Msnumber or nullyesat least 0
metrics.lastRequestAtstring (date-time) or nullyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

PATCH /v1/backend/projects/{projectId}/settings

Rate limit, allowed browser origins and public-read tables (owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters

Request body (application/json)

FieldTypeRequiredNotes
rateLimitPerMininteger10 to 100000
ipRatePerMininteger10 to 100000
maxBodyKbinteger1 to 1024
allowedOriginsstring[]up to 20 items
identityobject or null
identity.issuerstringyes1 to 200 characters
identity.audiencestringyes1 to 200 characters
identity.roleClaimstringdefault "role"
identity.keysobject[]yesup to 8 items
publicReadTablesstring[]up to 64 items
confirmPublicReadstring[]up to 64 items

Response 200

FieldTypeRequiredNotes
idstringyesat least 1 characters
namestringyesat least 1 characters
slugstringyesat least 1 characters
descriptionstringyes
createdAtstring (date-time)yes
urlstringyesat least 1 characters
tableCountintegeryesat least 0
keyCountintegeryesat least 0
rowCountintegeryesat least 0
requestsPerMinnumberyesat least 0
workspaceIdstringyesat least 1 characters
createdBystringyesat least 1 characters
settingsobjectyes
settings.rateLimitPerMinintegeryes10 to 100000
settings.ipRatePerMinintegeryes10 to 100000
settings.maxBodyKbintegeryes1 to 1024
settings.allowedOriginsstring[]yesup to 20 items
settings.identityobject or nullyes
tablesobject[]yes
tables[].namestringyes
tables[].columnsobject[]yesup to 66 items
tables[].publicReadbooleanyes
tables[].rulesobject[]yesup to 16 items
tables[].rowCountinteger or nullyesat least 0
tables[].createdAtstring (date-time)yes
canEditbooleanyes
canAdminbooleanyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/backend/projects/{projectId}/tables

Create a table with typed columns (id and created_at are added).

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters

Request body (application/json)

FieldTypeRequiredNotes
namestringyes
columnsobject[]up to 64 items. default
columns[].namestringyes
columns[].type"text" · "integer" · "real" · "boolean" · "timestamp" · "json"yes
columns[].nullablebooleandefault true
publicReadbooleandefault false
confirmPublicstring

Response 200

FieldTypeRequiredNotes
namestringyes
columnsobject[]yesup to 66 items
columns[].namestringyes
columns[].type"text" · "integer" · "real" · "boolean" · "timestamp" · "json"yes
columns[].nullablebooleanyes
columns[].systembooleanyes
publicReadbooleanyes
rulesobject[]yesup to 16 items
rules[].idstringyes
rules[].audienceobjectyes
rules[].actions"read" · "insert" · "update" · "delete"[]yesup to 4 items
rules[].whereobjectyes
rules[].columnsstring[] or nullyesup to 66 items
rules[].migratedboolean
rules[].sentencestringyesup to 400 characters
rowCountinteger or nullyesat least 0
createdAtstring (date-time)yes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

DELETE /v1/backend/projects/{projectId}/tables/{table}

Drop a table and its rows (the table's name typed back).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

FieldTypeRequiredNotes
confirmstringyes

Response 200

FieldTypeRequiredNotes
oktrueyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/backend/projects/{projectId}/tables/{table}/columns

Add a column.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

FieldTypeRequiredNotes
namestringyes
type"text" · "integer" · "real" · "boolean" · "timestamp" · "json"yes
nullablebooleandefault true

Response 200

FieldTypeRequiredNotes
namestringyes
columnsobject[]yesup to 66 items
columns[].namestringyes
columns[].type"text" · "integer" · "real" · "boolean" · "timestamp" · "json"yes
columns[].nullablebooleanyes
columns[].systembooleanyes
publicReadbooleanyes
rulesobject[]yesup to 16 items
rules[].idstringyes
rules[].audienceobjectyes
rules[].actions"read" · "insert" · "update" · "delete"[]yesup to 4 items
rules[].whereobjectyes
rules[].columnsstring[] or nullyesup to 66 items
rules[].migratedboolean
rules[].sentencestringyesup to 400 characters
rowCountinteger or nullyesat least 0
createdAtstring (date-time)yes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

GET /v1/backend/projects/{projectId}/tables/{table}/export

Every row as CSV or JSON (up to 5,000).

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the read scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters
formatquery"csv" · "json"default "csv"

Response 200: The file

A string.

POST /v1/backend/projects/{projectId}/tables/{table}/import

Append rows from CSV (header row = column names; all or nothing per check).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

FieldTypeRequiredNotes
csvstringyes1 to 1000000 characters
importIdstring

Response 200

FieldTypeRequiredNotes
insertedintegeryesat least 0
errorsobject[]yesup to 20 items
errors[].lineintegeryesat least 1
errors[].messagestringyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

PUT /v1/backend/projects/{projectId}/tables/{table}/policy

Set the rules of a table from their sentences (owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

FieldTypeRequiredNotes
sentencesstring[]yesup to 16 items
confirmPublicstring

Response 200

FieldTypeRequiredNotes
tableobjectyes
table.namestringyes
table.columnsobject[]yesup to 66 items
table.publicReadbooleanyes
table.rulesobject[]yesup to 16 items
table.rowCountinteger or nullyesat least 0
table.createdAtstring (date-time)yes
warningsstring[]yesup to 20 items

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/backend/projects/{projectId}/tables/{table}/policy/test

Try the rules as a visitor, a signed-in person or a key; nothing is written (owner).

  • Authentication: the console’s session cookie.
  • Token: not available. This route is for a signed-in person in the console (403 console_only for a token).
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

FieldTypeRequiredNotes
principalobjectyes
action"read" · "insert" · "update" · "delete"default "read"
querystringup to 500 characters. default ""
rowmap of any or null
rowIdintegerat least 1

Response 200

FieldTypeRequiredNotes
whostringyes
action"read" · "insert" · "update" · "delete"yes
allowedbooleanyes
reasonstring or nullyes
hintstring or nullyes
matchedobject[]yes
matched[].idstringyes
matched[].sentencestringyes
readableColumnsstring[]yes
hiddenColumnsstring[]yes
rowsmap of any or null[]yesup to 20 items
hiddenPerRowstring[][]yesup to 20 items
totalRowsinteger or nullyesat least 0
visibleRowsinteger or nullyesat least 0
rowPassesboolean or nullyes
stampsmap of string or number or booleanyes
queryErrorobject or nullyes
queryError.codestringyes
queryError.messagestringyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

GET /v1/backend/projects/{projectId}/tables/{table}/rows

A page of rows (same filters as the data API).

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the read scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Response 200

FieldTypeRequiredNotes
rowsmap of any or null[]yes
totalintegeryes
limitintegeryes
offsetintegeryes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/backend/projects/{projectId}/tables/{table}/rows

Insert rows.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters

Request body (application/json)

An empty object: {}.

Response 200

A map of any or null[].

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

PATCH /v1/backend/projects/{projectId}/tables/{table}/rows/{id}

Change one row.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters
idpathstringyes1 to 20 characters

Request body (application/json)

An empty object: {}.

Response 200

A map of any or null.

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

DELETE /v1/backend/projects/{projectId}/tables/{table}/rows/{id}

Delete one row.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
projectIdpathstringyes1 to 128 characters
tablepathstringyes1 to 48 characters
idpathstringyes1 to 20 characters

Response 200

FieldTypeRequiredNotes
oktrueyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

GET /v1/workspaces/{ws}/backend/projects

Backend projects you can see.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the read scope.
ParameterInTypeRequiredNotes
wspathstringyes1 to 128 characters

Response 200

FieldTypeRequiredNotes
idstringyesat least 1 characters
namestringyesat least 1 characters
slugstringyesat least 1 characters
descriptionstringyes
createdAtstring (date-time)yes
urlstringyesat least 1 characters
tableCountintegeryesat least 0
keyCountintegeryesat least 0
rowCountintegeryesat least 0
requestsPerMinnumberyesat least 0

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

POST /v1/workspaces/{ws}/backend/projects

New backend: a datacenter on the island, a sample table, no keys yet.

  • Authentication: the console’s session cookie.
  • Token: a personal access token or an MCP sign-in with the write scope.
ParameterInTypeRequiredNotes
wspathstringyes1 to 128 characters

Request body (application/json)

FieldTypeRequiredNotes
namestringyes2 to 60 characters
descriptionstringup to 280 characters. default ""
starter"orders" · "waitlist" · "blank"default "orders"

Response 200

FieldTypeRequiredNotes
idstringyesat least 1 characters
namestringyesat least 1 characters
slugstringyesat least 1 characters
descriptionstringyes
createdAtstring (date-time)yes
urlstringyesat least 1 characters
tableCountintegeryesat least 0
keyCountintegeryesat least 0
rowCountintegeryesat least 0
requestsPerMinnumberyesat least 0
workspaceIdstringyesat least 1 characters
createdBystringyesat least 1 characters
settingsobjectyes
settings.rateLimitPerMinintegeryes10 to 100000
settings.ipRatePerMinintegeryes10 to 100000
settings.maxBodyKbintegeryes1 to 1024
settings.allowedOriginsstring[]yesup to 20 items
settings.identityobject or nullyes
tablesobject[]yes
tables[].namestringyes
tables[].columnsobject[]yesup to 66 items
tables[].publicReadbooleanyes
tables[].rulesobject[]yesup to 16 items
tables[].rowCountinteger or nullyesat least 0
tables[].createdAtstring (date-time)yes
canEditbooleanyes
canAdminbooleanyes

Errors: 400, 401, 403, 404, 409, 429 (the error format is on the overview).

Type to search. Up and down to choose, Enter to open, Esc to close.