The entity endpoints serve the normalized Makini model. When you need what sits below it, two escape hatches reach it: the raw tables a sync landed, and passthrough calls to the connected system's own API.Read raw tables#
See every table the connection's sync has landed, before any transformation, and read it row by row.Both endpoints need a connection-scoped token with connection:data:read.List the tables#
GET /v4/raw/tables lists every table the sync has landed. For each column it gives the column's type and the filter kind it accepts (null when the column cannot be filtered, such as JSON columns).Read a table#
GET /v4/raw/tables/{table} returns one page of a table exactly as the sync landed it: every column, with JSON columns as JSON. Rows are open objects, because a raw table has no fixed schema. Each row also carries bookkeeping columns such as _sdc_extracted_at (when Makini fetched the row), and a key column, the row's unique identifier within the table.Page, filter and sort#
Paging works as on entity lists: page and per_page (default 25, at most 100). The response is {data: [...], meta: {current_page, per_page}}.
Filters use the entity list syntax against the table's own columns, filter[<column>]=value or filter[<column>:<op>]=value. Boolean columns take eq and neq. Number and date-time columns take eq, neq, in, gt, gte, lt and lte. Text columns take all of those plus contains, startsWith and endsWith, which are case-insensitive. null is a value for eq and neq. JSON columns cannot be filtered.
Sorting is sort=<column> or sort=-<column>, on any column you can filter. Rows are always ordered by the key column (or the table's first column) as the final tiebreaker.
updatedSince does not apply to raw tables and is a 400. Filter on a timestamp column instead, such as filter[_sdc_extracted_at:gte]=2026-09-01.
Call the connected system's API#
POST /v4/passthrough sends one request to the connected system, authenticated with the connection's stored credentials. You never hold those credentials.The response carries the connected system's status code, and its body decoded and returned as JSON, including the system's own 4xx errors.Build the request#
| Key | Meaning |
|---|
path | The path on the connected system. It is resolved against the system's own base URL, so the host cannot be chosen. |
method | The HTTP method, in any case. Sent together with path. |
headers | Optional request headers, as string values. |
query | Optional query parameters. |
body | Optional request body. |
base64encoded | Optional boolean flag. |
method is one of get, post, put, patch, delete, head, options, purge, link or unlink.For database-backed systems, send sql and parameters instead of path and method. Any other key is a 400.Passthrough needs a connection-scoped token with connection:data:write.
Reference#
Next steps#
Reading data
Read the normalized model, with paging and incremental sync.
Filtering
The filter syntax raw tables share with entity lists.
Makini Query Language
Query the normalized model in one statement.
Access tokens
Get a connection-scoped token with the right scopes.