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.