Promise.all: instead of firing several sequential API calls, you send one request and get all the results back together.POST /v2/api/multi-entity| Field | Required | Description |
|---|---|---|
key | Yes | The entity to fetch (e.g. invoice, requisition, le_187). |
action | Yes | "show" to fetch a single record, or "list" to fetch a collection. |
options | Yes | For show: the record ID. For list: filter key-value pairs. |
data_level | Yes | Controls the depth of data returned: -1, 1, 2, 3, or 4 — the same data level previously appended to endpoint URLs. |
alias | Optional | A custom name for the response key of the fetched entity. Recommended when fetching the same entity more than once, to avoid key conflicts. |
Note on filters: for listactions, filters are passed askey: valuedirectly — not in thefilter[key]=valueformat.
[
{
"key": "invoice",
"action": "show",
"options": "172185",
"data_level": 1
},
{
"key": "requisition",
"action": "list",
"options": { "order_id": "172185", "order_type": 3 },
"alias": "requisition"
}
]{
"invoice": {
"id": 172185,
"no": "*64500",
"date": "2025-10-29",
"client_id": 52739,
"payment_status": 2,
"summary_total": 9978,
"summary_paid": 9978,
"summary_unpaid": 0,
"staff": { ... },
"clients": { ... },
"invoice_item": [ ... ],
"payment": [ ... ]
},
"requisition": {
"current_page": 1,
"data": [
{
"id": 206298,
"number": "145749",
"status": 3,
"type": 2,
"order_id": 172185,
"order_number": "*64500",
"date": "2025-11-03 17:35:00"
}
],
"total": 1,
"per_page": 20
}
}action:| Action | Returns |
|---|---|
show | A single record object directly under the entity key. |
list | A paginated object containing data, total, current_page, per_page, and similar fields. |
key — or by its alias, if one was provided. Using an alias is the way to avoid collisions when the same entity is fetched more than once in a single request.