Skip to content

API reference

Columns

A table's columns: what to extract, with which type and instruction.

Add column

POST/v1/projects/{project_id}/tables/{table_id}/columns

Path parameters

  • project_idstringRequired
  • table_idstringRequired

Request body

application/json

  • currency_codestringoptional

    Exactly 3 characters.

  • descriptionstringoptionalnullable

    Up to 256 characters.

  • instructionstringoptionalnullable

    Up to 512 characters.

  • namestringRequired
    Matches
    ^[\w\s.-]+$

    1 to 64 characters.

  • optionsarray of stringsoptional

    Up to 500 items.

  • requiredbooleanoptional
    Default
    false
  • typestringoptional
    Allowed values
    arraybooleancurrencydateemailenummulti_selectnumberstringtexturl
    Default
    string

Returns

200application/json

  • created_atintegerRequired

    At least 0.

  • deleted_atintegerRequirednullable

    At least 0.

  • updated_atintegerRequired

    At least 0.

  • idstringRequired

    1 to 48 characters.

  • project_idstringRequired

    1 to 48 characters.

  • namestringRequired

    1 to 128 characters.

  • slugstringRequired

    1 to 50 characters.

  • columns_jsonarray of objectsRequired

    1 to 100 items.

  • instructionstringRequirednullable

    Up to 512 characters.

  • strictnessstringRequired
    Allowed values
    strictbalancedflexible
  • insert_modestringRequired
    Allowed values
    appenddedupmergereplace
  • merge_columns_jsonarray of stringsRequirednullable

    At least 1 items.

  • default_sortstringRequirednullable
  • row_countintegerRequired

    At least 0.

  • usage_countintegerRequired

    At least 0.

  • data_versionintegerRequired

    At least 0.

  • fts_versionintegerRequired

    At least 0.

  • last_used_atintegerRequirednullable

    At least 0.

Errors

  • 404not_foundtable_not_found
  • 409optimistic_lock_conflict
Errors every endpoint can return
import { AnyrowSDK } from "@anyrow/sdk"const anyrow = new AnyrowSDK({  baseURL: "https://api.anyrow.ai",  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },})const { data, error } = await anyrow.column.add({  params: {    project_id: "{project_id}",    table_id: "{table_id}"  },  json: {    currency_code: "string",    description: "string",    instruction: "string",    name: "string",    options: [      "string"    ],    required: false,    type: "string"  },})
{  "created_at": 1711468800000,  "deleted_at": 1711468800000,  "updated_at": 1711468800000,  "id": "tbl_01h5a3g8k9m2n4p6q8r0t2v4x6",  "project_id": "string",  "name": "string",  "slug": "string",  "columns_json": [    {      "currency_code": "string",      "description": "string",      "id": "string",      "instruction": "string",      "name": "string",      "options": [        "string"      ],      "required": false,      "searchable": true,      "type": "string"    }  ],  "instruction": "string",  "strictness": "strict",  "insert_mode": "append",  "merge_columns_json": [    "string"  ],  "default_sort": "string",  "row_count": 42,  "usage_count": 42,  "data_version": 42,  "fts_version": 42,  "last_used_at": 1711468800000}

Reorder columns

PUT/v1/projects/{project_id}/tables/{table_id}/columns/order

Path parameters

  • project_idstringRequired
  • table_idstringRequired

Request body

application/json

  • orderarray of stringsRequired

    At least 1 items.

Returns

200application/json

  • created_atintegerRequired

    At least 0.

  • deleted_atintegerRequirednullable

    At least 0.

  • updated_atintegerRequired

    At least 0.

  • idstringRequired

    1 to 48 characters.

  • project_idstringRequired

    1 to 48 characters.

  • namestringRequired

    1 to 128 characters.

  • slugstringRequired

    1 to 50 characters.

  • columns_jsonarray of objectsRequired

    1 to 100 items.

  • instructionstringRequirednullable

    Up to 512 characters.

  • strictnessstringRequired
    Allowed values
    strictbalancedflexible
  • insert_modestringRequired
    Allowed values
    appenddedupmergereplace
  • merge_columns_jsonarray of stringsRequirednullable

    At least 1 items.

  • default_sortstringRequirednullable
  • row_countintegerRequired

    At least 0.

  • usage_countintegerRequired

    At least 0.

  • data_versionintegerRequired

    At least 0.

  • fts_versionintegerRequired

    At least 0.

  • last_used_atintegerRequirednullable

    At least 0.

Errors

  • 404column_not_foundnot_foundtable_not_found
  • 409optimistic_lock_conflict
Errors every endpoint can return
import { AnyrowSDK } from "@anyrow/sdk"const anyrow = new AnyrowSDK({  baseURL: "https://api.anyrow.ai",  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },})const { data, error } = await anyrow.column.reorder({  params: {    project_id: "{project_id}",    table_id: "{table_id}"  },  json: {    order: [      "string"    ]  },})
{  "created_at": 1711468800000,  "deleted_at": 1711468800000,  "updated_at": 1711468800000,  "id": "tbl_01h5a3g8k9m2n4p6q8r0t2v4x6",  "project_id": "string",  "name": "string",  "slug": "string",  "columns_json": [    {      "currency_code": "string",      "description": "string",      "id": "string",      "instruction": "string",      "name": "string",      "options": [        "string"      ],      "required": false,      "searchable": true,      "type": "string"    }  ],  "instruction": "string",  "strictness": "strict",  "insert_mode": "append",  "merge_columns_json": [    "string"  ],  "default_sort": "string",  "row_count": 42,  "usage_count": 42,  "data_version": 42,  "fts_version": 42,  "last_used_at": 1711468800000}

Update column

PATCH/v1/projects/{project_id}/tables/{table_id}/columns/{col_id}

Path parameters

  • project_idstringRequired
  • table_idstringRequired
  • col_idstringRequired

Request body

application/json

  • descriptionstringoptionalnullable

    Up to 256 characters.

  • instructionstringoptionalnullable

    Up to 512 characters.

  • namestringoptional
    Matches
    ^[\w\s.-]+$

    1 to 64 characters.

  • optionsarray of stringsoptional

    Up to 500 items.

  • requiredbooleanoptional
    Default
    false
  • searchablebooleanoptional
  • typestringoptional
    Allowed values
    arraybooleancurrencydateemailenummulti_selectnumberstringtexturl
    Default
    string

Returns

200application/json

  • created_atintegerRequired

    At least 0.

  • deleted_atintegerRequirednullable

    At least 0.

  • updated_atintegerRequired

    At least 0.

  • idstringRequired

    1 to 48 characters.

  • project_idstringRequired

    1 to 48 characters.

  • namestringRequired

    1 to 128 characters.

  • slugstringRequired

    1 to 50 characters.

  • columns_jsonarray of objectsRequired

    1 to 100 items.

  • instructionstringRequirednullable

    Up to 512 characters.

  • strictnessstringRequired
    Allowed values
    strictbalancedflexible
  • insert_modestringRequired
    Allowed values
    appenddedupmergereplace
  • merge_columns_jsonarray of stringsRequirednullable

    At least 1 items.

  • default_sortstringRequirednullable
  • row_countintegerRequired

    At least 0.

  • usage_countintegerRequired

    At least 0.

  • data_versionintegerRequired

    At least 0.

  • fts_versionintegerRequired

    At least 0.

  • last_used_atintegerRequirednullable

    At least 0.

Errors

  • 404column_not_foundnot_foundtable_not_found
  • 409optimistic_lock_conflict
Errors every endpoint can return
import { AnyrowSDK } from "@anyrow/sdk"const anyrow = new AnyrowSDK({  baseURL: "https://api.anyrow.ai",  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },})const { data, error } = await anyrow.column.update({  params: {    project_id: "{project_id}",    table_id: "{table_id}",    col_id: "{col_id}"  },  json: {    description: "string",    instruction: "string",    name: "string",    options: [      "string"    ],    required: false,    searchable: true,    type: "string"  },})
{  "created_at": 1711468800000,  "deleted_at": 1711468800000,  "updated_at": 1711468800000,  "id": "tbl_01h5a3g8k9m2n4p6q8r0t2v4x6",  "project_id": "string",  "name": "string",  "slug": "string",  "columns_json": [    {      "currency_code": "string",      "description": "string",      "id": "string",      "instruction": "string",      "name": "string",      "options": [        "string"      ],      "required": false,      "searchable": true,      "type": "string"    }  ],  "instruction": "string",  "strictness": "strict",  "insert_mode": "append",  "merge_columns_json": [    "string"  ],  "default_sort": "string",  "row_count": 42,  "usage_count": 42,  "data_version": 42,  "fts_version": 42,  "last_used_at": 1711468800000}

Remove column

DELETE/v1/projects/{project_id}/tables/{table_id}/columns/{col_id}

Path parameters

  • project_idstringRequired
  • table_idstringRequired
  • col_idstringRequired

Returns

200application/json

  • created_atintegerRequired

    At least 0.

  • deleted_atintegerRequirednullable

    At least 0.

  • updated_atintegerRequired

    At least 0.

  • idstringRequired

    1 to 48 characters.

  • project_idstringRequired

    1 to 48 characters.

  • namestringRequired

    1 to 128 characters.

  • slugstringRequired

    1 to 50 characters.

  • columns_jsonarray of objectsRequired

    1 to 100 items.

  • instructionstringRequirednullable

    Up to 512 characters.

  • strictnessstringRequired
    Allowed values
    strictbalancedflexible
  • insert_modestringRequired
    Allowed values
    appenddedupmergereplace
  • merge_columns_jsonarray of stringsRequirednullable

    At least 1 items.

  • default_sortstringRequirednullable
  • row_countintegerRequired

    At least 0.

  • usage_countintegerRequired

    At least 0.

  • data_versionintegerRequired

    At least 0.

  • fts_versionintegerRequired

    At least 0.

  • last_used_atintegerRequirednullable

    At least 0.

Errors

  • 404column_not_foundnot_foundtable_not_found
  • 409optimistic_lock_conflict
Errors every endpoint can return
import { AnyrowSDK } from "@anyrow/sdk"const anyrow = new AnyrowSDK({  baseURL: "https://api.anyrow.ai",  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },})const { data, error } = await anyrow.column.remove({  params: {    project_id: "{project_id}",    table_id: "{table_id}",    col_id: "{col_id}"  },})
{  "created_at": 1711468800000,  "deleted_at": 1711468800000,  "updated_at": 1711468800000,  "id": "tbl_01h5a3g8k9m2n4p6q8r0t2v4x6",  "project_id": "string",  "name": "string",  "slug": "string",  "columns_json": [    {      "currency_code": "string",      "description": "string",      "id": "string",      "instruction": "string",      "name": "string",      "options": [        "string"      ],      "required": false,      "searchable": true,      "type": "string"    }  ],  "instruction": "string",  "strictness": "strict",  "insert_mode": "append",  "merge_columns_json": [    "string"  ],  "default_sort": "string",  "row_count": 42,  "usage_count": 42,  "data_version": 42,  "fts_version": 42,  "last_used_at": 1711468800000}

Get distinct column values

GET/v1/projects/{project_id}/tables/{table_id}/columns/{col_id}/distinct

Path parameters

  • project_idstringRequired
  • table_idstringRequired
  • col_idstringRequired

Query parameters

  • limitintegeroptional
    Default
    100

    Between 1 and 500.

  • qstringoptional

    Up to 200 characters.

Returns

200application/json

  • valuesarray of string | numberRequired

Errors

  • 404column_not_foundnot_foundtable_not_found
Errors every endpoint can return
import { AnyrowSDK } from "@anyrow/sdk"const anyrow = new AnyrowSDK({  baseURL: "https://api.anyrow.ai",  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },})const { data, error } = await anyrow.column.distinct({  params: {    project_id: "{project_id}",    table_id: "{table_id}",    col_id: "{col_id}"  },})
{  "values": [    "string"  ]}