Links

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
https://api.ninox.com
/v1/teams
Get multiple workspaces

Sample request

1
curl https://api.ninox.com/v1/teams
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}
Get a single workspace

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases
Get multiple databases

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}
Get a schema for a single database

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/{query}
Execute a read-only query with GET

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/pt53j1tburs8/query?query=(select Contact).'First Name'
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
post
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/{query}
Execute a read-only query with POST

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/query
2
-X POST
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
5
-D {
6
"query": "(select Contact).'First Name'"
7
}
post
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/exec
Execute a writable query

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/exec
2
-X POST
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
5
-D '{
6
"query": "users()"
7
}'
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables
Get a schema for multiple tables

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}
Get a schema for a single table

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records
Get multiple records

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}
Get a single record

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/1
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
put
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}
Update a single record with PUT

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/8
2
-X PUT
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
5
-D '{
6
"fields": {
7
"First name": "Jane"
8
}
9
}'
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records
Look up/search a single record with GET
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

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

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.
1
https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/records?filters={"L":"Stanley"}
post
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/record
Look up/search a single record with POST
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

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

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.
1
https://api.ninox.com/v1/teams/u14mwnoutm14yrcnf/databases/w41fzot5t5wt/tables/A/record?filters={"L":"Stanley"}
post
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records
Create/update multiple records with POST

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records
2
-X POST
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
5
-D [{
6
"id": 1,
7
"fields": {
8
"First name": "Tom"
9
}
10
},{
11
"fields": {
12
"First name": "Andrea"
13
}
14
}]
  • 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.
post
https://api.ninox.com
/v1/teams/{tid}/databases/{dbid}/tables/{tid}/records
Upsert (update/insert) multiple records with POST

Sample request

1
curl https://api.ninox.com/v1/teams/XFND77BerC5NNoxK4/databases/vibpwezinpsx/tables/A/records
2
-X POST
3
-H "Authorization": "Bearer ff184e50-0699-11ee-86e5-e581bf9dd2fe"
4
-H "Content-Type": "application/json"
5
-D '[{
6
"_upsert": true,
7
"_id": 43,
8
"E": "Alfred",
9
"G": "Becker"
10
}, {
11
"_upsert": true,
12
"_id": 44,
13
"E": "Caroline",
14
"G": "Schultz"
15
}, {
16
"_upsert": true,
17
"_id": 45,
18
"E": "Hans",
19
"G": "Copeland"
20
}]'
Use the upsert database operation when you need to update a single record or multiple records of the same record ID. This is especially useful when multiple tables are related to each other.
For example, upsert allows you to sync changes between multiple tables while maintaining the record IDs:
  1. 2.
    Apply those changes to a target table with Upsert (update/insert) multiple records with POST.
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/changes?sinceSq={sequence}
Get changes in a database with sequence number

Sample request

1
curl https://api.ninox.com/v1/teams/XFND77BerC5NNoxK4/databases/a2jufgz7xu1w/changes?sinceSq=1
2
-X GET
3
-H "Authorization": "Bearer fbf2d4a0-5628-11ee-bac8-87316d8c232f"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/changes?sinceSq={sequence}
Get changes in a table with sequence number

Sample request

1
curl https://api.ninox.com/v1/teams/XFND77BerC5NNoxK4/databases/vibpwezinpsx/tables/A/changes?sinceSq=1
2
-X GET
3
-H "Authorization": "Bearer fbf2d4a0-5628-11ee-bac8-87316d8c232f"
4
-H "Content-Type": "application/json"
get
api.ninox.com
/v1/teams/{teamid}/databases/(dbid}/tables/{tid}/records/{rid}/changes?sinceSq={sequence}
Get changes in a single record with sequence number

Sample request

1
curl https://api.ninox.com/v1/teams/XFND77BerC5NNoxK4/databases/vibpwezinpsx/tables/A/records/1/changes?sinceSq=1
2
-X GET
3
-H "Authorization": "Bearer fbf2d4a0-5628-11ee-bac8-87316d8c232f"
4
-H "Content-Type": "application/json"
delete
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}
Delete a single record

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A/records/8
2
-X DELETE
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
delete
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records
Delete multiple records

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A/records
2
-X DELETE
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
5
-D '[23,24]'
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files/{file}
Get a single file

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A/records/5/files/mobile-phone.jpeg
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
post
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files
Upload a single file with POST

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/4/files
2
-X POST
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "multipart/form-data"
5
-F 'file=@"/Users/anastasiya/Downloads/iStock-184877012.jpeg"'
delete
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files/{file}
Delete a single file

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/10/files/iStock-184877012.jpeg
2
-X DELETE
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files
Get metadata for multiple files

Sample request

1
curl https://api.ninox.com/v1/teams/Cf8fqfNeCaAvBrjkS/databases/zvdufqsrxwr2/tables/A/records/25/files
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files/{file}/metadata
Get metadata for a single file

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A/records/5/files/iStock-184877012.jpeg/metadata
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"
get
https://api.ninox.com
/v1/teams/{teamid}/databases/{dbid}/tables/{tid}/records/{rid}/files/{file}/thumb.jpg
Get a thumbnail for a single file

Sample request

1
curl https://api.ninox.com/v1/teams/mnPLY6DMsvq9wz4id/databases/gt5k36w957yt/tables/A/records/5/files/iStock-184877012.jpeg/thumb.jpg
2
-X GET
3
-H "Authorization": "Bearer c0da1580-1a26-11ec-ba4d-f9d8817e4f95"
4
-H "Content-Type": "application/json"