Skip to main content

List Records

Retrieve records from a table with support for filtering, sorting, and pagination.
GET /api/v1/db/data/{orgs}/{baseName}/{tableName}
curl -X GET "https://app.nocodb.com/api/v1/db/data/noco/my-base/users?limit=25&offset=0" \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID
viewName
string
Optional view name to apply view filters and sorts

Query Parameters

fields
array
Comma-separated list of field names to include in response
sort
string
Sort by field. Use - prefix for descending order (e.g., -createdAt)
where
string
Filter condition (e.g., (name,eq,John)~and(age,gt,25))
limit
integer
default:"25"
Number of records to return (max 1000)
offset
integer
default:"0"
Number of records to skip for pagination
sortArrJson
string
JSON array for multiple sort fields: [{"field":"name","direction":"asc"}]
filterArrJson
string
JSON array for complex filters: [{"field":"status","op":"eq","value":"active"}]
getHiddenColumns
boolean
default:"false"
Include hidden columns in response

Response

list
array
Array of record objects. Each record contains the table columns as properties.
pageInfo
object
Pagination metadata
totalRows
number
Total number of records matching the query
page
number
Current page number
pageSize
number
Number of records per page
isFirstPage
boolean
Whether this is the first page
isLastPage
boolean
Whether this is the last page

Example Response

{
  "list": [
    {
      "Id": 1,
      "Name": "John Doe",
      "Email": "[email protected]",
      "CreatedAt": "2023-03-11T09:10:53.567Z"
    },
    {
      "Id": 2,
      "Name": "Jane Smith",
      "Email": "[email protected]",
      "CreatedAt": "2023-03-11T10:15:20.123Z"
    }
  ],
  "pageInfo": {
    "totalRows": 100,
    "page": 1,
    "pageSize": 25,
    "isFirstPage": true,
    "isLastPage": false
  }
}

Get Record

Retrieve a single record by its ID.
GET /api/v1/db/data/{orgs}/{baseName}/{tableName}/{rowId}
curl -X GET https://app.nocodb.com/api/v1/db/data/noco/my-base/users/1 \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID
rowId
string
required
Record ID (primary key value)

Response

Returns a single record object with all field values.

Create Record

Insert a new record into a table.
POST /api/v1/db/data/{orgs}/{baseName}/{tableName}
curl -X POST https://app.nocodb.com/api/v1/db/data/noco/my-base/users \
  -H "xc-auth: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Name": "John Doe",
    "Email": "[email protected]",
    "Age": 30
  }'

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID

Request Body

Provide field values as key-value pairs. Use the column title or column name as keys.
{
  "FieldName1": "value1",
  "FieldName2": "value2"
}

Query Parameters

before
string
Insert record before the specified row ID
undo
boolean
default:"false"
Track this operation for undo functionality

Response

Returns the created record with all field values including auto-generated fields (ID, timestamps, etc.).

Update Record

Update an existing record.
PATCH /api/v1/db/data/{orgs}/{baseName}/{tableName}/{rowId}
curl -X PATCH https://app.nocodb.com/api/v1/db/data/noco/my-base/users/1 \
  -H "xc-auth: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Name": "John Updated",
    "Age": 31
  }'

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID
rowId
string
required
Record ID to update

Request Body

Provide only the fields you want to update.
{
  "FieldName1": "newValue1",
  "FieldName2": "newValue2"
}

Response

Returns the updated record with all field values.

Delete Record

Delete a record from the table.
DELETE /api/v1/db/data/{orgs}/{baseName}/{tableName}/{rowId}
curl -X DELETE https://app.nocodb.com/api/v1/db/data/noco/my-base/users/1 \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID
rowId
string
required
Record ID to delete

Response

Returns 1 on successful deletion.

Find One Record

Find the first record matching the given criteria.
GET /api/v1/db/data/{orgs}/{baseName}/{tableName}/find-one
curl -X GET "https://app.nocodb.com/api/v1/db/data/noco/my-base/users/find-one?where=(Email,eq,[email protected])" \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID

Query Parameters

fields
array
Fields to include in response
where
string
Filter condition
sort
string
Sort order

Response

Returns a single record object or null if no match found.

Count Records

Get the total count of records matching the criteria.
GET /api/v1/db/data/{orgs}/{baseName}/{tableName}/count
curl -X GET "https://app.nocodb.com/api/v1/db/data/noco/my-base/users/count?where=(Status,eq,active)" \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID

Query Parameters

where
string
Filter condition to count matching records

Response

{
  "count": 42
}

Check Record Exists

Check if a record exists by its ID.
GET /api/v1/db/data/{orgs}/{baseName}/{tableName}/{rowId}/exist
curl -X GET https://app.nocodb.com/api/v1/db/data/noco/my-base/users/1/exist \
  -H "xc-auth: YOUR_API_TOKEN"

Path Parameters

orgs
string
required
Organization name (currently always noco)
baseName
string
required
Base name or base ID
tableName
string
required
Table name or table ID
rowId
string
required
Record ID to check

Response

true

Filtering Records

NocoDB supports powerful filtering using the where parameter:

Simple Filter

(FieldName,operator,value)

Multiple Filters

(Field1,eq,value1)~and(Field2,gt,value2)
(Field1,eq,value1)~or(Field2,lt,value2)

Supported Operators

  • eq - Equal
  • neq - Not equal
  • gt - Greater than
  • gte - Greater than or equal
  • lt - Less than
  • lte - Less than or equal
  • like - Contains (case-insensitive)
  • nlike - Does not contain
  • is - Is (for null checks)
  • isnot - Is not (for null checks)
  • in - In list
  • notin - Not in list
  • btw - Between

Examples

# Find active users
?where=(Status,eq,active)

# Find users older than 25
?where=(Age,gt,25)

# Find users with name containing "John"
?where=(Name,like,John)

# Complex filter
?where=(Status,eq,active)~and(Age,gt,25)~and(Country,eq,USA)

Sorting Records

Single Field Sort

# Ascending
?sort=Name

# Descending
?sort=-Name

Multiple Field Sort

?sortArrJson=[{"field":"Status","direction":"asc"},{"field":"Name","direction":"desc"}]

Build docs developers (and LLMs) love