Tables
List records
Reads a table's records with paging, sorting, search and filters.
GET
https://app.getera.io/api/v1/tables/{tableId}/recordsAPI key
Returns the records of a table. Records the key's owner cannot see (row rules) are left out.
Authentication
An API key in the x-api-key header. The key's owner needs read permission in Tables; otherwise you get 404. See Authentication.
Path parameter
| Name | Type | Required | Description |
|---|---|---|---|
tableId | UUID | Yes | The table's id. It is in the address bar when the table is open: /tables/<tableId>. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | No | Records per page. Default 25, minimum 1, maximum 500. |
offset | number | No | Records to skip. Default 0. |
sort | string | No | Comma-separated field keys. A leading - sorts that field descending, e.g. -amount,name. |
q | string | No | Free-text search. |
filter | JSON | No | A condition. Single: {"field":"status","cmp":"eq","value":"Paid"}. Combined: {"op":"and","children":[...]}. Examples of cmp: eq, in, notempty. |
Fields are named by their key: the Key value shown when you edit the field.
Example
curl -G https://app.getera.io/api/v1/tables/3f2a9c1e-0000-4000-8000-000000000001/records \
-H "x-api-key: ERA_API_KEY" \
--data-urlencode "limit=2" \
--data-urlencode "sort=-amount" \
--data-urlencode 'filter={"field":"status","cmp":"eq","value":"Paid"}'Response
{
"list": [
{
"id": "8b1d0c4e-0000-4000-8000-000000000010",
"name": "Demo Cafe",
"status": "Paid",
"amount": 1200,
"created_at": "2026-10-01T09:12:00.000Z",
"updated_at": "2026-10-03T14:40:00.000Z",
"created_by": "c0ffee00-0000-4000-8000-000000000002"
}
],
"pageInfo": { "totalRows": 37, "limit": 2, "offset": 0, "isLastPage": false }
}Each record has id first, then its fields by key, then created_at, updated_at and created_by. Computed fields come filled in.
Errors
| Status | When |
|---|---|
400 | filter is not valid JSON or names an unknown field. Body {"error": "...", "code": "..."}. |
401 | Missing or invalid key. |
403 | The key's owner is not in the workspace. |
404 | No such table, not a table that holds records, or no read permission in Tables. |
429 | Rate limit. See Authentication. |
The older address /api/v1/base/{tableId}/records keeps working the same way.