Public Cloud APIs

All available Ninox Public Cloud API endpoints

Content in curly brackets { } signifies a placeholder. Both the curly brackets and the content within must be replaced for the request to work.

Get multiple workspaces

GET https://api.ninox.com/v1/teams

Retrieves data from multiple teams

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

[
    {
        "id": "mnPLY6DMsvq9wz4id",
        "name": "Public Cloud Test Team"
    },
    {
        "id": "Cf8fqfNeCaAvBrjkS",
        "name": "Public Cloud Test Team_1"
    }
]

Sample request

curl https://api.ninox.com/v1/teams
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get a single workspace

GET https://api.ninox.com/v1/teams/{teamid}

Retrieves data from a single team

Path Parameters

NameTypeDescription

teamid*

string

workspace id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

{
    "id": "mnPLY6DMsvq9wz4id",
    "name": "My Team 1"
}

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get multiple databases

GET https://api.ninox.com/v1/teams/{teamid}/databases

Retrieves data from multiple databases

Path Parameters

NameTypeDescription

teamid*

string

workspace id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

[
    {
        "id": "gt5k36w957yt",
        "name": "Contacts"
    }
]

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get a schema for a single database

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}

Retrieves data from a schema for a single database

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

{
    "settings": {
        "name": "Contacts",
        "icon": "i-db-icon-big i-db i-team",
        "color": "#6691FF",
        "backgroundClass": "background-file",
        "backgroundTimestamp": 1505809647759
    },
    "schema": {
        "seq": 223,
        "version": 7,
        "nextTypeId": 10,
        "types": {
        },
        "afterOpenBehavior": "restoreNavigation",
        "fileSync": "full"
    }
}

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Execute a read-only query with GET

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/{query}

Executes a read-only query in a database

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

Query Parameters

NameTypeDescription

query*

string

string of a query | e.g., (select Contact).'First Name'

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

[
    "Tim",
    "Chalie",
    "John",
    "Caroline",
    "Sophie",
    "Hans",
    "Alfred ",
    "Nadin"
]

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/pt53j1tburs8/query?query=(select Contact).'First Name'
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Execute a read-only query with POST

POST https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/{query}

Executes a read-only query in a database

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

query*

string

string of a query | e.g., (select Contact).'First Name'

[
    "Tim",
    "Chalie",
    "John",
    "Caroline",
    "Sophie",
    "Hans",
    "Alfred ",
    "Nadin"
]

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/query
-X POST
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"
-D {
    "query": "(select Contact).'First Name'"
}

Execute a writable query

POST https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/exec

Executes a writable query in a database

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

query*

string

string of a query | e.g., users()

[
    "anm2jMxL7kRuatXW9"
]

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/exec
-X POST
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"
-D '{
    "query": "users()"
}'

Get a schema for multiple tables

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables

Retrieves data from a schema for multiple tables

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

[
    {
        "id": "A",
        "name": "Contact",
        "fields": [
        ]
    },
    {
        "id": "B",
        "name": "Contact Email",
        "fields": [
        ]
    },
    {
        "id": "C",
        "name": "Contact Phone",
        "fields": [
        ]
    },
    {
        "id": "D",
        "name": "Contact Address",
        "fields": [
        ]
    },
    {
        "id": "E",
        "name": "Contact Internet",
        "fields": [
        ]
    },
    {
        "id": "F",
        "name": "Contact instant messenger accounts",
        "fields": [
        ]
    },
    {
        "id": "G",
        "name": "Contact social profiles",
        "fields": [
        ]
    },
    {
        "id": "H",
        "name": "Table1",
        "fields": [
        ]
    },
    {
        "id": "I",
        "name": "Table2",
        "fields": [
        ]
    }
]

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get a schema for a single table

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}

Retrieves data from a schema for a single table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

{
    "id": "A",
    "name": "Contact",
    "fields": [
        {
            "id": "A",
            "name": "Kind",
            "type": "choice",
            "choices": [
                {
                    "id": "1",
                    "caption": "Person",
                    "captions": {}
                },
                {
                    "id": "2",
                    "caption": "Company",
                    "captions": {}
                }
            ]
        }
    ]
}

Sample request

curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get multiple records

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records

Retrieves data from multiple records in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

Query Parameters

NameTypeDescription

choiceStyle

string

ids | names

choice

string

ids | names

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

[
    {
        "id": 1,
        "createdAt": "",
        "createdBy": 0,
        "modifiedAt": "2017-08-01T16:52:12",
        "modifiedBy": "EPZ2zSxuC7jt6WF2D",
        "fields": {
        }
    }
    {
        "id": 4,
        "createdAt": "",
        "createdBy": "EPZ2zSxuC7jt6WF2D",
        "modifiedAt": "2017-08-01T17:06:52",
        "modifiedBy": "EPZ2zSxuC7jt6WF2D",
        "fields": {
        }
    }
]    

Sample request

curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Get a single record

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}

Retrieves data from a single record in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

rid*

string

record id

Query Parameters

NameTypeDescription

choiceStyle

string

ids | names

style

string

ids | names

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

{
    "id": 1,
    "createdAt": "",
    "createdBy": 0,
    "modifiedAt": "2017-08-01T16:52:12",
    "modifiedBy": "EPZ2zSxuC7jt6WF2D",
    "fields": {
    }
}

Sample request

curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/1
-X GET
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"

Update a single record with PUT

PUT https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}

Updates a single record in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

rid*

string

record id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

fields

object

object of a field | e.g., "First name": "Jane"

{
    "id": 8,
    "sequence": 207,
    "createdAt": "",
    "createdBy": "EPZ2zSxuC7jt6WF2D",
    "modifiedAt": "2021-09-23T14:47:09",
    "modifiedBy": "admin",
    "fields": {
        "First name": "Jane"
    }
}

Sample request

curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/8
-X PUT
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"
-D '{
    "fields": {
        "First name": "Jane"
    }
}'

Look up/search a single record with GET

GET https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records

Looks up/searches a single record in a table

Path Parameters

NameTypeDescription

teamid

string

workspace id

dbid

string

database id

tid

string

table id

Query Parameters

NameTypeDescription

filters

object

object of filters | e.g., "L": "Stanley"

Headers

NameTypeDescription

Authorizaton

string

Bearer {accessToken}

Content-Type

string

application/json

{
    "id": 1,
    "sequence": 133,
    "createdAt": "",
    "createdBy": 0,
    "modifiedAt": "2022-02-04T09:51:59",
    "modifiedBy": "root",
    "fields": {
        "Customer No": "K0001",
        "Title": "Mr",
        "Last Name": "Potts",
        "Email": "Stanley.Potts@cba.zyx",
        "First Name": "Stanley",
        "Image": "shutterstock_1519120589.jpg",
        "To Do": [
            23
        ],
        "Language": "DE",
        "Company": 1,
        "Status": "Active",
        "Meetings": [
            8,
            9
        ]
    }
}

To look up a record with GET, make sure the endpoint is/records. The result will be the same as in Look up/search a single record with POST(see below).

To identify which filters are mapped to which ids, send a GET request to retrieve the schema of a single table.

Sample request

curl https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/records
-X GET
-H "Content-Type": "application/json"
-H "Authorization": "Bearer e66e5190-14ad-11ec-aa6f-3502731d486c"
-D '{
    "filters": {
        "L": "Stanley"
    }
}'

Alternative notation

An alternative notation of the example sample request above is to include the parameter filters in the URL and leave D (data) empty.

https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/records?filters={"L":"Stanley"}

Look up/search a single record with POST

POST https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/record

Looks up/searches a single record in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

Query Parameters

NameTypeDescription

style

string

ids | names

dateStyle

string

ids | names

choiceStyle

string

ids | names

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

filters

object

object of filters | e.g., "A": "Sophie"

{
    "id": 6,
    "sequence": 90,
    "createdAt": "2021-09-28T09:32:42",
    "createdBy": "anm2jMxL7kRuatXW9",
    "modifiedAt": "2021-09-28T09:35:07",
    "modifiedBy": "EPZ2zSxuC7jt6WF2D",
    "fields": {
        "First name": "Sophie",
        "Last name": "Baxter",
        "Birthday": "1980-05-10",
        "Concatenate of City": "London",
        "Job title": "Head of Logistics",
        "Organization": "Hub City, Ltd.",
        "Department": "Import",
        "First of Address": "bax@hubcity.com"
    }
}

The endpoint is /record, not /records.

To identify which filters are mapped to which ids, send a GET request to retrieve the schema of a single table.

Sample request

curl https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/record
-X POST
-H "Content-Type": "application/json"
-H "Authorization": "Bearer e66e5190-14ad-11ec-aa6f-3502731d486c"
-D '{
    "filters": {
        "L": "Stanley"
    }
}'

Alternative notation

An alternative notation of the example sample request above is to include the parameter filters in the URL and leave D (data) empty.

https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/record?filters={"L":"Stanley"}

Create/update multiple records with POST

POST https://api.ninox.com/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records

Creates/updates multiple records in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

fields, rid

array

array of fields and record ids | e.g., "1" "First name": "Tom" "First name": "Andrea"

[
    {
        "id": 1,
        "createdAt": "",
        "createdBy": 0,
        "modifiedAt": "2021-09-23T17:05:42",
        "modifiedBy": "admin",
        "fields": {
            "First name": "Tom",
        }
    },
    {
        "id": 12,
        "createdAt": "2021-09-23T17:05:42",
        "createdBy": "admin",
        "modifiedAt": "2021-09-23T17:05:42",
        "modifiedBy": "admin",
        "fields": {
            "First name": "Andrea",
        }
    }
]

Sample request

curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records
-X POST
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
-H "Content-Type": "application/json"
-D [{
    "id": 1,
    "fields": {
        "First name": "Tom"
    }
},{
    "fields": {
        "First name": "Andrea"
    }
}]
  • To update an existing record, specify a record id and the fields you wish to update in a record.

  • To create a new record, do not specify the record id, only specify the fields you wish to create in a record.

Upsert (update/insert) multiple records with POST

POST https://api.ninox.com/v1/teams/{tid}/databases/{dbid}/tables/{tid}/records

Updates records if they exist or inserts new records in a table

Path Parameters

NameTypeDescription

teamid*

string

workspace id

dbid*

string

database id

tid*

string

table id

Headers

NameTypeDescription

Authorization*

string

Bearer {accessToken}

Content-Type

string

application/json

Request Body

NameTypeDescription

_upsert

boolean

true | "_upsert": true

fields, rid*

array

array of fields and record ids | e.g.,

"_id": 43, "E": "Alfred", "G": "Becker"

[
    {
        "_id": 43,
        "_cu": "admin",
        "_cd": "2023-09-19T13:07:40",
        "_mu": "admin",
        "_md": "2023-09-19T13:07:40",
        "A": "Person",
        "E": "Alfred",
        "G": "Becker",
        "O": ""
    },
    {
        "_id": 44,
        "_cu": "admin",
        "_cd": "2023-09-19T13:07:40",
        "_mu": "admin"