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

Records

Get records from a table

get

Retrieves paginated rows from a table with optional filtering and sorting

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: 1Required

Module name

Example: crm
tableNamestring · min: 1Required

Table name

Example: contacts
workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Example: 5rdco4s18swuPattern: ^[a-z0-9]+$
Query parameters
fieldsstringOptional

Comma-separated list of field names to include

filterstringOptional

Filter conditions as a JSON string (e.g., {"email": "test@example.com"})

limitnumber · min: 1 · max: 100Optional

Maximum number of rows to return (1-100)

offsetnumberOptional

Number of rows to skip (starts with 0)

sortstringOptional

Field name to sort by

Responses
200

Rows retrieved successfully

application/json
get/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/records
GET /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/records HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "id": "1",
      "values": {
        "category": "Audio",
        "item-name": "Aura Headphones",
        "price-usd": 199.99,
        "product-id": 101,
        "stock-level": 25
      }
    },
    {
      "id": "2",
      "values": {
        "category": "Wearables",
        "item-name": "Zenith Smartwatch",
        "price-usd": 249.5,
        "product-id": 102,
        "stock-level": 12
      }
    }
  ],
  "page_info": {
    "has_more": true,
    "limit": 2,
    "offset": 0
  }
}

Create records in a table

post

Creates new records in an existing table (max. 6MB payload size)

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: 1Required

Module name

tableNamestring · min: 1Required

Table name

workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Pattern: ^[a-z0-9]+$
Body
Responses
201

Records created successfully

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

{
  "records": [
    {
      "any_field": {
        "source": "import",
        "score": 98
      },
      "appointment_field": "[2024-02-15T09:00:00Z,2024-02-15T10:00:00Z)",
      "array_field": [
        "alpha",
        "beta",
        "gamma"
      ],
      "boolean_field": true,
      "choice_field": "Gold",
      "color_field": "#ffcc00",
      "date_field": "2024-02-15",
      "file_field": "file_123",
      "html_field": "<p>Rich text</p>",
      "icon_field": "check-circle",
      "multi_field": [
        "Gold",
        "Silver"
      ],
      "number_field": 1234.56,
      "react_field": "<Component name=\"Badge\" />",
      "reference_field": 42,
      "string_field": "Hello world",
      "styled_field": "font-weight: 600;",
      "time_field": "09:30",
      "timeinterval_field": "09:00-17:00",
      "timestamp_field": "2024-02-15T13:45:30Z",
      "unknown_field": {
        "raw": true
      },
      "user_field": "user_123"
    }
  ]
}
{
  "data": {
    "ids": [
      "101"
    ]
  }
}

Delete records from a table

delete

Deletes existing records from a table in a single transaction. If any record id is invalid, does not exist, or 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: 1Required

Module name

tableNamestring · min: 1Required

Table name

workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Pattern: ^[a-z0-9]+$
Body
recordsinteger[] · min: 1Required

Array of record ids to delete

Responses
200

Records deleted successfully

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

{
  "records": [
    101,
    "102",
    103
  ]
}
{
  "data": {
    "deletedIds": [
      "101",
      "102",
      "103"
    ]
  }
}

Update records in a table

patch

Updates existing records in a table (max. 6MB payload size). Each record must include an id field referencing an existing record. The update is transactional — if any record fails validation or does not exist, all changes are rolled back.

Field type rules:

  • multi — must be an array of strings (e.g. ["Gold", "Silver"]). A plain string is not accepted.

  • choice — a single string (e.g. "Gold") or an array of strings.

  • booleantrue or false only; numeric 1/0 are not accepted.

  • number — a finite number or a numeric string (e.g. "42.5").

  • date / timestamp / appointment — ISO 8601 string or Unix timestamp (ms).

  • Any field may be set to null to clear its value.

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: 1Required

Module name

tableNamestring · min: 1Required

Table name

workspaceIdstring · min: 12 · max: 12Required

Workspace ID

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

Records updated successfully

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

{
  "records": [
    {
      "any_field": {
        "source": "import",
        "score": 98
      },
      "appointment_field": "[2024-02-15T09:00:00Z,2024-02-15T10:00:00Z)",
      "array_field": [
        "alpha",
        "beta",
        "gamma"
      ],
      "boolean_field": true,
      "choice_field": "Gold",
      "color_field": "#ffcc00",
      "date_field": "2024-02-15",
      "file_field": "file_123",
      "html_field": "<p>Rich text</p>",
      "icon_field": "{\"icon\":\"check-circle\",\"color\":\"#4CAF50\",\"filling\":1}",
      "id": 1,
      "multi_field": [
        "Gold",
        "Silver"
      ],
      "number_field": 1234.56,
      "react_field": "<Component name=\"Badge\" />",
      "reference_field": 42,
      "string_field": "Hello world",
      "styled_field": "font-weight: 600;",
      "time_field": "09:30",
      "timeinterval_field": "08:00:00",
      "timestamp_field": "2024-02-15T13:45:30Z",
      "unknown_field": {
        "raw": true
      },
      "user_field": "user_123"
    }
  ]
}
{
  "data": {
    "updatedIds": [
      "1",
      "2"
    ]
  }
}

Import records from CSV file

post

Import records from a CSV file into an existing table.

The endpoint accepts multipart/form-data with:

  • A CSV file (max 50 MB)

  • Optional parsing and import options

Auto-mapping: By default, CSV columns are automatically mapped to table fields by matching column header names to field names (case-insensitive).

Import Modes:

  • append: Always create new records (default)

  • update: Only update existing records (requires key field mappings)

  • upsert: Update existing records or create new ones (requires key field mappings)

Field Mappings: Optionally provide explicit mappings to control which CSV columns map to which table fields, and which fields are used as keys for update/upsert operations.

The entire import is processed within a single transaction - if any record fails to import, 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: 1Required

Module name

tableNamestring · min: 1Required

Table name

workspaceIdstring · min: 12 · max: 12Required

Workspace ID

Pattern: ^[a-z0-9]+$
Body
filestring · binaryRequired

CSV file to import (max 50 MB)

hasHeaderbooleanOptional

Whether the CSV file has a header row

Default: true
delimiterstringOptional

CSV delimiter character (auto-detected if not specified)

quoteCharstringOptional

CSV quote character

Default: "
encodingstring · enumOptional

CSV file encoding

Default: utf8Possible values:
importModestring · enumOptional

Import mode: append (insert all), update (update existing only), upsert (insert or update)

Default: appendPossible values:
numberFormatstring · enumOptional

Number format for parsing numeric values

Default: usPossible values:
batchSizeinteger · min: 10 · max: 200Optional

Number of records to process per batch

Default: 100
mappingsstringOptional

JSON array of field mappings: [{"csvColumnName": "Name", "fieldName": "name", "updatePolicy": "key"}]

Responses
201

CSV import completed successfully

application/json
post/api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/records/import/csv
POST /api/v1/workspace/{workspaceId}/modules/{moduleName}/tables/{tableName}/records/import/csv HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 164

{
  "file": "binary",
  "hasHeader": true,
  "delimiter": "text",
  "quoteChar": "\"",
  "encoding": "utf8",
  "importMode": "append",
  "numberFormat": "us",
  "batchSize": 100,
  "mappings": "text"
}
{
  "data": {
    "rowsImported": 100,
    "rowsSkipped": 0,
    "rowsUpdated": 0
  }
}

Last updated

Was this helpful?