Menu QaldyDocs

Backend data API

The REST API your own apps and sites call with a project key (qk_pub_… or qk_sec_…), not a session. 10 routes, from the API’s own OpenAPI document.

10 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/​projects/​{projectId}/​rest/​{table}List rows the caller may see
POST/​v1/​projects/​{projectId}/​rest/​{table}Insert one row or up to 500 (all or nothing; rows:write, and a rule for the caller)
PATCH/​v1/​projects/​{projectId}/​rest/​{table}Update every row matching ≥ 1 filter (rows:write, and a rule for the caller)
DELETE/​v1/​projects/​{projectId}/​rest/​{table}Delete every row matching ≥ 1 filter (rows:write, and a rule for the caller)
GET/​v1/​projects/​{projectId}/​rest/​{table}/​{id}One row
PATCH/​v1/​projects/​{projectId}/​rest/​{table}/​{id}Update one row (rows:write, and a rule for the caller)
DELETE/​v1/​projects/​{projectId}/​rest/​{table}/​{id}Delete one row (rows:write, and a rule for the caller)
GET/​v1/​projects/​{projectId}/​schemaTables and typed columns the caller may use (a visitor or signed-in person sees only what the rules give them)
POST/​v1/​projects/​{projectId}/​schema/​tablesCreate a table (secret key with schema:write; it starts private)
POST/​v1/​projects/​{projectId}/​schema/​tables/​{table}/​columnsAdd a column (secret key with schema:write)

Reference

GET /v1/projects/{projectId}/rest/{table}

List rows the caller may see.

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters

Response 200: Rows

A map of any or null[].

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

POST /v1/projects/{projectId}/rest/{table}

Insert one row or up to 500 (all or nothing; rows:write, and a rule for the caller).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters

Request body (application/json)

An empty object: {}.

Response 201: Inserted row(s)

A map of any or null[].

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

PATCH /v1/projects/{projectId}/rest/{table}

Update every row matching ≥ 1 filter (rows:write, and a rule for the caller).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters

Request body (application/json)

An empty object: {}.

Response 200: Updated

A map of any or null[].

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

DELETE /v1/projects/{projectId}/rest/{table}

Delete every row matching ≥ 1 filter (rows:write, and a rule for the caller).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters

Response 200: Deleted

A map of any or null[].

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

GET /v1/projects/{projectId}/rest/{table}/{id}

One row.

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters
idpathstringyesRow id

Response 200: Row

A map of any or null.

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

PATCH /v1/projects/{projectId}/rest/{table}/{id}

Update one row (rows:write, and a rule for the caller).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters
idpathstringyesRow id

Request body (application/json)

An empty object: {}.

Response 200: Updated

A map of any or null[].

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

DELETE /v1/projects/{projectId}/rest/{table}/{id}

Delete one row (rows:write, and a rule for the caller).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters
idpathstringyesRow id

Response 200: Deleted

A map of any or null[].

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

GET /v1/projects/{projectId}/schema

Tables and typed columns the caller may use (a visitor or signed-in person sees only what the rules give them).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters

Response 200: Schema

FieldTypeRequiredNotes
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

Errors: 401, 429 (the error format is on the overview).

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

Create a table (secret key with schema:write; it starts private).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 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 201: Created

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, 409, 429 (the error format is on the overview).

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

Add a column (secret key with schema:write).

  • Authentication: a project key (qk_pub_… or qk_sec_…) as Authorization: Bearer.
ParameterInTypeRequiredNotes
projectIdpathstringyesBackend project id. 1 to 128 characters
tablepathstringyesTable name. 1 to 48 characters

Request body (application/json)

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

Response 201: Table

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).

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