Records
Records are the rows inside a table. The records API supports create, read, update, delete, and rich querying.
Create a record
POST /api/table/<table_id>/records/create
Request body
{
"data": {
"name": "Acme Corp",
"email": "hello@acme.test",
"status": "Active"
}
}
Example
curl -X POST https://infolobby.com/api/table/101/records/create \
-H "Authorization: Bearer il_live_..." \
-H "Content-Type: application/json" \
-d '{"data":{"name":"Acme Corp","email":"hello@acme.test","status":"Active"}}'
Response
The full record with the assigned ID.
Get a record
GET /api/table/<table_id>/record/<record_id>/get
Update a record
POST /api/table/<table_id>/record/<record_id>/update
Request body
{
"data": {
"status": "Archived"
}
}
Only include fields you want to change.
Lookup fields accept either the related record ID or an object with id and title. For example, "user": 2 and "user": {"id": 2, "title": "Andreas"} are both valid.
Delete a record
POST /api/table/<table_id>/record/<record_id>/delete
Query records
POST /api/table/<table_id>/records/query
Request body
{
"fields": ["name", "email", "status"],
"where": {
"status": "Active"
},
"order_by": "name",
"order_dir": "A",
"limit": 50,
"offset": 0
}
Supported where forms:
- Simple equality:
{"status": "Active"} - Comparison:
{"age": [">", 21]}
Or use the more verbose filters array:
{
"filters": [
{"column": "status", "compare": "=", "value": "Active"},
{"column": "age", "compare": ">", "value": 21}
]
}
compare accepts =, !=, <, <=, >, >=.
field may be used instead of column. The following aliases are also accepted:
| Alias | Meaning |
|---|---|
EQ |
= |
NE, NEQ |
!= |
GT |
> |
GTE |
>= |
LT |
< |
LTE |
<= |
C, CONTAINS |
contains (LIKE %value%) |
SW, STARTS_WITH |
starts with (LIKE value%) |
EW, ENDS_WITH |
ends with (LIKE %value) |
EMPTY, IS_EMPTY |
field is empty |
NEMPTY, IS_NOT_EMPTY |
field is not empty |
For IS_EMPTY and IS_NOT_EMPTY, the value field is ignored.
Query through a saved view
Pass view_id to query with the filters and sort saved on a table view.
The view fully replaces request-supplied filters, where, order_by,
and order_dir:
{
"view_id": 42,
"search": "acme",
"limit": 100
}
Pass 0 for the table's synthesised Default view (unfiltered). search
is still applied on top of the view's filters. See the
Views API reference for the full view endpoints.
Internal layout renderers may pass append_filters: true with view_id
to add range/layout filters on top of the saved view. Without that flag,
the saved view remains authoritative.
Date tokens
Date fields accept tokens that resolve server-side:
| Token | Resolves to |
|---|---|
today |
Current date |
now |
Current date and time |
yesterday |
Previous day |
start_of_week |
Monday of the current week |
start_of_month |
First day of the current month |
start_of_year |
January 1 of the current year |
start_of_last_week |
Monday of the previous week |
start_of_last_month |
First day of the previous month |
start_of_last_year |
January 1 of the previous year |
-Nd, +Nd |
N days ago / from now |
-Nw, +Nw |
N weeks ago / from now |
-Nm, +Nm |
N months ago / from now |
-Ny, +Ny |
N years ago / from now |
Example: all records created in the last 30 days:
{
"filters": [
{"column": "created", "compare": ">=", "value": "-30d"}
]
}
Current user token
User fields accept the literal @me, which resolves server-side to the
authenticated user's email address. Useful in saved views so each viewer
sees their own records without per-user filter duplication.
{
"filters": [
{"column": "assignee", "compare": "=", "value": "@me"}
]
}
For session and personal API-key requests, @me resolves to the logged-in
user's email. For account API keys, it resolves to the account owner's email.
Search
{
"search": "acme"
}
Batch delete
POST /api/table/<table_id>/records/delete_batch
{
"record_ids": [1, 5, 12, 39]
}
File fields
File-type fields hold an array of attachment metadata objects. Reading a record returns the full array under each file field. Most callers should manage attachments through the dedicated Files API, which handles upload, append, delete, and download. Use this record/update endpoint with a {name, path, type, size, host} array only when you need to replace the entire attachment list of a field in one call.