For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fields

List all fields in a table

get

Retrieves all fields defined in a table. Each field in the response includes type-specific properties: options (array for choice/multi, expression string for dchoice/dmulti), optionName / optionIcon / optionColor for dchoice/dmulti, and expression for function fields.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Responses
200

Fields retrieved successfully

application/json
get/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields
GET /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "expression": "text",
      "expressionErrors": [
        {
          "column": 1,
          "line": 1,
          "message": "text"
        }
      ],
      "index": true,
      "labels": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "name": "text",
      "optionColor": "text",
      "optionIcon": "text",
      "optionName": "text",
      "options": [
        {
          "color": "text",
          "icon": "text",
          "id": "text",
          "labels": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "name": "text",
          "order": 1,
          "textColor": "text"
        }
      ],
      "readRoles": [
        "text"
      ],
      "refTableId": "text",
      "required": true,
      "search": true,
      "type": "any",
      "unique": true,
      "variant": "text",
      "writeRoles": [
        "text"
      ]
    }
  ]
}

Create a field

post

Creates a new field in a table.

Choice / multi fields: provide an options array with initial values. Each option receives a server-assigned stable id returned in the response.

Dynamic choice / dmulti fields: options is required and must be an expression that resolves the selectable records at runtime. optionName, optionIcon, and optionColor are optional display-value expressions. All expressions are validated after save — if any are invalid the field is still created and the response includes an expressionErrors array.

Logic (function) fields: expression is validated after save; errors are returned in expressionErrors.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Body
expressionstringOptional

Expression (for function type)

namestring · min: 1 · max: 100Required

Field name

Pattern: ^[a-z0-9_]+$
optionColorstringOptional

Color expression (for dchoice/dmulti types)

optionIconstringOptional

Icon expression (for dchoice/dmulti types)

optionNamestringOptional

Display name expression (for dchoice/dmulti types)

optionsany ofOptional

Options array (for choice/multi types) or selection expression (for dchoice/dmulti types)

or
stringOptional
refTableNamestring · min: 1 · max: 100 · nullableOptional

Reference table name (for reference/reverse types)

Default: nullPattern: ^[a-z0-9_]+$
typestring · enumRequired

Field type

Possible values:
variantstring · enumOptional

Field variant (for string type)

Possible values:
indexbooleanOptional

Field is indexed

requiredbooleanOptional

Field is required

searchbooleanOptional

Field is searchable

uniquebooleanOptional

Field is unique

Responses
201

Field created successfully. If the field contains an expression (function, dchoice, dmulti) and it has syntax errors, the response still returns 201 but includes an expressionErrors array.

application/json
post/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields
POST /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 246

{
  "index": true,
  "labels": {
    "": "Description",
    "de": "Beschreibung"
  },
  "name": "description",
  "readRoles": [
    "admin",
    "editor"
  ],
  "refTableName": null,
  "required": false,
  "search": true,
  "type": "string",
  "unique": false,
  "variant": "multiline-text",
  "writeRoles": [
    "admin"
  ]
}
{
  "data": {
    "expression": "text",
    "expressionErrors": [
      {
        "column": 1,
        "line": 1,
        "message": "text"
      }
    ],
    "index": true,
    "labels": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "name": "text",
    "optionColor": "text",
    "optionIcon": "text",
    "optionName": "text",
    "options": [
      {
        "color": "text",
        "icon": "text",
        "id": "text",
        "labels": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "name": "text",
        "order": 1,
        "textColor": "text"
      }
    ],
    "readRoles": [
      "text"
    ],
    "refTableId": "text",
    "required": true,
    "search": true,
    "type": "any",
    "unique": true,
    "variant": "text",
    "writeRoles": [
      "text"
    ]
  }
}

Create multiple fields (batch)

post

Creates multiple fields in a table within a single transaction. If any field creation fails, all changes are rolled back.

The same rules as the single-create endpoint apply per field: choice/multi fields accept an initial options array; dchoice/dmulti fields require an options expression; logic fields accept an optional expression. All expressions are validated after save — invalid expressions do not prevent creation but add an expressionErrors array to the affected field in the response.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Bodyobject[]
expressionstringOptional

Expression (for function type)

namestring · min: 1 · max: 100Required

Field name

Pattern: ^[a-z0-9_]+$
optionColorstringOptional

Color expression (for dchoice/dmulti types)

optionIconstringOptional

Icon expression (for dchoice/dmulti types)

optionNamestringOptional

Display name expression (for dchoice/dmulti types)

optionsany ofOptional

Options array (for choice/multi types) or selection expression (for dchoice/dmulti types)

or
stringOptional
refTableNamestring · min: 1 · max: 100 · nullableOptional

Reference table name (for reference/reverse types)

Default: nullPattern: ^[a-z0-9_]+$
typestring · enumRequired

Field type

Possible values:
variantstring · enumOptional

Field variant (for string type)

Possible values:
indexbooleanOptional

Field is indexed

requiredbooleanOptional

Field is required

searchbooleanOptional

Field is searchable

uniquebooleanOptional

Field is unique

Responses
201

Fields created successfully. Fields with invalid expressions still return 201 but include an expressionErrors array.

application/json
post/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch
POST /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 196

[
  {
    "labels": {
      "": "First Name"
    },
    "name": "first_name",
    "type": "string"
  },
  {
    "labels": {
      "": "Last Name"
    },
    "name": "last_name",
    "type": "string"
  },
  {
    "labels": {
      "": "Age"
    },
    "name": "age",
    "required": true,
    "type": "number"
  }
]
{
  "data": [
    {
      "expression": "text",
      "expressionErrors": [
        {
          "column": 1,
          "line": 1,
          "message": "text"
        }
      ],
      "index": true,
      "labels": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "name": "text",
      "optionColor": "text",
      "optionIcon": "text",
      "optionName": "text",
      "options": [
        {
          "color": "text",
          "icon": "text",
          "id": "text",
          "labels": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "name": "text",
          "order": 1,
          "textColor": "text"
        }
      ],
      "readRoles": [
        "text"
      ],
      "refTableId": "text",
      "required": true,
      "search": true,
      "type": "any",
      "unique": true,
      "variant": "text",
      "writeRoles": [
        "text"
      ]
    }
  ]
}

Delete multiple fields (batch)

delete

Deletes multiple fields in a table within a single transaction. If any field deletion fails, all changes are rolled back.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Body
fieldNamesstring[] · min: 1Required

Field name

Responses
200

Fields deleted successfully

application/json
delete/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch
DELETE /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 55

{
  "fieldNames": [
    "description",
    "status",
    "assigned_user"
  ]
}
{
  "data": [
    {
      "expression": "text",
      "expressionErrors": [
        {
          "column": 1,
          "line": 1,
          "message": "text"
        }
      ],
      "index": true,
      "labels": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "name": "text",
      "optionColor": "text",
      "optionIcon": "text",
      "optionName": "text",
      "options": [
        {
          "color": "text",
          "icon": "text",
          "id": "text",
          "labels": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "name": "text",
          "order": 1,
          "textColor": "text"
        }
      ],
      "readRoles": [
        "text"
      ],
      "refTableId": "text",
      "required": true,
      "search": true,
      "type": "any",
      "unique": true,
      "variant": "text",
      "writeRoles": [
        "text"
      ]
    }
  ]
}

Update multiple fields (batch)

patch

Updates multiple fields in a table within a single transaction. If any field update fails, all changes are rolled back. Same per-field rules as the single-update endpoint apply to each entry.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Bodyobject[]
expressionstringOptional

Expression (for function type)

namestring · min: 1 · max: 100Optional

Field name

Pattern: ^[a-z0-9_]+$
optionColorstringOptional

Color expression (for dchoice/dmulti types)

optionIconstringOptional

Icon expression (for dchoice/dmulti types)

optionNamestringOptional

Display name expression (for dchoice/dmulti types)

optionsany ofOptional

Options array (for choice/multi types) or selection expression (for dchoice/dmulti types)

or
stringOptional
indexbooleanOptional

Field is indexed

requiredbooleanOptional

Field is required

searchbooleanOptional

Field is searchable

uniquebooleanOptional

Field is unique

fieldNamestring · min: 1 · max: 100Required

Name of the field to update

Pattern: ^[a-z0-9_]+$
Responses
200

Fields updated successfully. A field with an updated expression that has syntax errors still returns 200 but includes an expressionErrors array.

application/json
patch/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch
PATCH /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/batch HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 108

[
  {
    "fieldName": "status",
    "readRoles": [
      "admin"
    ],
    "writeRoles": [
      "admin"
    ]
  },
  {
    "fieldName": "notes",
    "required": false
  }
]
{
  "data": [
    {
      "expression": "text",
      "expressionErrors": [
        {
          "column": 1,
          "line": 1,
          "message": "text"
        }
      ],
      "index": true,
      "labels": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "name": "text",
      "optionColor": "text",
      "optionIcon": "text",
      "optionName": "text",
      "options": [
        {
          "color": "text",
          "icon": "text",
          "id": "text",
          "labels": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          },
          "name": "text",
          "order": 1,
          "textColor": "text"
        }
      ],
      "readRoles": [
        "text"
      ],
      "refTableId": "text",
      "required": true,
      "search": true,
      "type": "any",
      "unique": true,
      "variant": "text",
      "writeRoles": [
        "text"
      ]
    }
  ]
}

Get a specific field

get

Retrieves detailed information about a specific field in a table. For choice/multi fields the response includes an options array with stable ids. For dchoice/dmulti fields the response includes the options expression and any configured optionName, optionIcon, optionColor formulas. For function fields the response includes the expression.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
fieldNamestring · min: 1 · max: 100Required

Field name

Example: emailPattern: ^[a-z0-9_]+$
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Responses
200

Field details retrieved successfully

application/json
get/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName}
GET /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "expression": "text",
    "expressionErrors": [
      {
        "column": 1,
        "line": 1,
        "message": "text"
      }
    ],
    "index": true,
    "labels": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "name": "text",
    "optionColor": "text",
    "optionIcon": "text",
    "optionName": "text",
    "options": [
      {
        "color": "text",
        "icon": "text",
        "id": "text",
        "labels": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "name": "text",
        "order": 1,
        "textColor": "text"
      }
    ],
    "readRoles": [
      "text"
    ],
    "refTableId": "text",
    "required": true,
    "search": true,
    "type": "any",
    "unique": true,
    "variant": "text",
    "writeRoles": [
      "text"
    ]
  }
}

Delete a field

delete

Deletes a field in a table

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
fieldNameanyRequired

Field name

Example: email
tableNameanyRequired

Table name

Example: contacts
moduleNameanyRequired

Module name

Example: crm
workspaceIdanyRequired

Workspace ID

Example: 5rdco4s18swu
Responses
200

Field deleted successfully

application/json
delete/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName}
DELETE /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "expression": "text",
    "expressionErrors": [
      {
        "column": 1,
        "line": 1,
        "message": "text"
      }
    ],
    "index": true,
    "labels": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "name": "text",
    "optionColor": "text",
    "optionIcon": "text",
    "optionName": "text",
    "options": [
      {
        "color": "text",
        "icon": "text",
        "id": "text",
        "labels": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "name": "text",
        "order": 1,
        "textColor": "text"
      }
    ],
    "readRoles": [
      "text"
    ],
    "refTableId": "text",
    "required": true,
    "search": true,
    "type": "any",
    "unique": true,
    "variant": "text",
    "writeRoles": [
      "text"
    ]
  }
}

Update a field

patch

Updates an existing field in a table.

choice / multi fields: options replaces the full option list. Include the stable id for existing options you want to keep; omit id for new options. Sending an options array to a non-choice field or an options expression to a non-dynamic-choice field returns 400.

dchoice / dmulti fields: options updates the selection expression. optionName, optionIcon, and optionColor update the corresponding display-value formulas. All expressions are validated after save — if any are invalid the field is still saved and the response includes an expressionErrors array. optionName, optionIcon, optionColor cannot be sent to non-dynamic-choice fields (returns 400).

Logic (function) fields: expression is validated after save; errors are returned in expressionErrors.

Authorizations
AuthorizationstringRequired

Enter your Workspace API key.

API keys can be generated and managed within the Workspace Integration settings in the Ninox app.

Path parameters
fieldNamestring · min: 1 · max: 100Required

Field name

Example: emailPattern: ^[a-z0-9_]+$
moduleNamestring · min: 1 · max: 100Required

Module name

Example: crmPattern: ^[a-z0-9_]+$
tableNamestring · min: 1 · max: 100Required

Table name

Example: contactsPattern: ^[a-z0-9_]+$
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Body
expressionstringOptional

Expression (for function type)

namestring · min: 1 · max: 100Optional

Field name

Pattern: ^[a-z0-9_]+$
optionColorstringOptional

Color expression (for dchoice/dmulti types)

optionIconstringOptional

Icon expression (for dchoice/dmulti types)

optionNamestringOptional

Display name expression (for dchoice/dmulti types)

optionsany ofOptional

Options array (for choice/multi types) or selection expression (for dchoice/dmulti types)

or
stringOptional
indexbooleanOptional

Field is indexed

requiredbooleanOptional

Field is required

searchbooleanOptional

Field is searchable

uniquebooleanOptional

Field is unique

Responses
200

Field updated successfully. If the field contains an updated expression (function, dchoice, dmulti) and it has syntax errors, the response still returns 200 but includes an expressionErrors array.

application/json
patch/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName}
PATCH /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/fields/{fieldName} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 75

{
  "labels": {
    "": "Updated Label",
    "de": "Aktualisiertes Label"
  },
  "required": true
}
{
  "data": {
    "expression": "text",
    "expressionErrors": [
      {
        "column": 1,
        "line": 1,
        "message": "text"
      }
    ],
    "index": true,
    "labels": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "name": "text",
    "optionColor": "text",
    "optionIcon": "text",
    "optionName": "text",
    "options": [
      {
        "color": "text",
        "icon": "text",
        "id": "text",
        "labels": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "name": "text",
        "order": 1,
        "textColor": "text"
      }
    ],
    "readRoles": [
      "text"
    ],
    "refTableId": "text",
    "required": true,
    "search": true,
    "type": "any",
    "unique": true,
    "variant": "text",
    "writeRoles": [
      "text"
    ]
  }
}

Last updated

Was this helpful?