Skip to content

Data API endpoints

13 endpoints at https://api.vaif.studio, generated from the API's OpenAPI document. The REST API page covers authentication, and All endpoints lists every group.

GET /v1/project

Response 200 (application/json)
{
  project: string;
  environment: string;
  status: string;
  endpoints: {
    data: string;
    functions: string;
    storage: string;
    graphql: string;
  };
}

GET /v1/health

Response 200 (application/json)
{
  status: string;
  project: string;
  environment: string;
  timestamp: string;
}

GET /v1/data/{projectId}/{table}

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
wherequerystringNo
filterquery{ [key: string]: string; }No
whereFieldquerystringNo
whereValuequerystringNo
limitquerynumberNo
offsetquerynumberNo
selectquerystringNo
orderByquerystringNo
orderDirquerystringNo
order_byquerystringNo
order_dirquerystringNo
includequerystringNo
filter[or]query{ [key: string]: string; }No
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
}

Errors: 400, 401, 403, 429, 500, with the error body.

POST /v1/data/{projectId}/{table}

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
Request body (application/json, required)
{ [key: string]: any }
Response 200 (application/json)
{
  data: { [key: string]: any };
} | {
  data: { [key: string]: any };
  action: string;
}

Errors: 400, 401, 403, 429, 500, with the error body.

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
qquerystringYes
fieldsquerystringNo
limitquerynumberNo
offsetquerynumberNo
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
}

Errors: 400, 401, 403, 429, 500, with the error body.

GET /v1/data/{projectId}/{table}/aggregate

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
fnquery"count" | "sum" | "avg" | "min" | "max"Yes
columnquerystringNo
group_byquerystringNo
wherequerystringNo
filterquery{ [key: string]: string; }No
whereFieldquerystringNo
whereValuequerystringNo
Response 200 (application/json)
{
  data: { [key: string]: any }[];
}

Errors: 400, 401, 403, 429, 500, with the error body.

POST /v1/data/{projectId}/{table}/query

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
Request body (application/json, required)
{
  filter?: {
    and?: {
      field: string;
      op: string;
      value: any;
    }[];
    or?: {
      field: string;
      op: string;
      value: any;
    }[];
  };
  select?: string[];
  orderBy?: {
    column: string;
    direction?: string;
  }[];
  limit?: number;
  offset?: number;
}
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
}

Errors: 400, 401, 403, 429, 500, with the error body.

GET /v1/data/{projectId}/{table}/{id}

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
idpathstringYes
Response 200 (application/json)
{
  data: { [key: string]: any };
}

Errors: 400, 401, 403, 429, 500, with the error body.

PATCH /v1/data/{projectId}/{table}/{id}

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
idpathstringYes
Request body (application/json, required)
{ [key: string]: any }
Response 200 (application/json)
{
  data: { [key: string]: any };
}

Errors: 400, 401, 403, 429, 500, with the error body.

DELETE /v1/data/{projectId}/{table}/{id}

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
idpathstringYes
Response 200 (application/json)
{
  data: {
    id: string;
  };
  deleted: boolean;
}

Errors: 400, 401, 403, 429, 500, with the error body.

POST /v1/data/{projectId}/{table}/bulk

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
Request body (application/json, required)
{ [key: string]: any }[]
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
}

Errors: 400, 401, 403, 429, 500, with the error body.

PATCH /v1/data/{projectId}/{table}/bulk

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
Request body (application/json, required)
{
  data: { [key: string]: any };
  filter?: { [key: string]: any };
}
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
}

Errors: 400, 401, 403, 429, 500, with the error body.

DELETE /v1/data/{projectId}/{table}/bulk

Dynamic table columns are preserved. List pagination uses offset; cursor is not implemented. API key and optional end-user Bearer token may be sent together to apply owner rules.

Authentication: a project API key or a bearer token (API keys).

ParameterInTypeRequired
projectIdpathstringYes
tablepathstringYes
wherequerystringNo
filterquery{ [key: string]: string; }No
whereFieldquerystringNo
whereValuequerystringNo
idsquerystringNo
Response 200 (application/json)
{
  data: { [key: string]: any }[];
  count: number;
} | {
  deleted: number;
  ids: any[];
}

Errors: 400, 401, 403, 429, 500, with the error body.