Flow Unified API
API ReferenceRestaurant

Category · category

Portable restaurant category contract. externalId and name are the core portable fields. Parent hierarchy is kept as parentExternalId when sources provide it.

Entity type: category · Methods: GET · POST

Portable restaurant category contract. externalId and name are the core portable fields. Parent hierarchy is kept as parentExternalId when sources provide it.

Endpoints

GET  /unified/{accountId}/category  # List normalized category records
POST /unified/{accountId}/category  # Create / push one category

Schema

FieldTypeRequiredDescription
externalIdstringYesStable source category identifier. Used as the idempotency key on writes.
namestringYesDisplay name of the category / menu group.
descriptionstringOptional category description when the source provides it.
parentExternalIdstringSource parent category identifier for hierarchy-aware systems.
activebooleanWhether the category is active / not deleted.
imageIdsstring[]Optional source image identifiers when available.

Example object

{
  "externalId": "cat_burgers",
  "name": "Burgers & Sandwiches",
  "description": "Grilled mains and handhelds.",
  "parentExternalId": "cat_mains",
  "active": true
}

The same shape is used as the POST request body and returned by GET reads — reads from every connected system are normalized to it.

Requests

pull category
curl "https://api.linktoany.com/unified/{accountId}/category?pageSize=10" \
  -H "accept: application/json" \
  -H "authorization: Bearer ak_<your_api_key>"
pull category · SDK
const page = await client.records.list(accountId, 'category', {
  pageSize: 10,
});

for (const category of page.data) {
  console.log(category);
}

// Or walk every page — the SDK follows the cursor for you
for await (const category of client.records.iterate(accountId, 'category')) {
  await save(category);
}
push category
curl -X POST "https://api.linktoany.com/unified/{accountId}/category" \
  -H "accept: application/json" \
  -H "authorization: Bearer ak_<your_api_key>" \
  -H "content-type: application/json" \
  -d '{"externalId":"cat_burgers","name":"Burgers & Sandwiches","description":"Grilled mains and handhelds.","parentExternalId":"cat_mains","active":true}'
push category · SDK
await client.records.create(accountId, 'category', {
  externalId: 'cat_burgers',
  name: 'Burgers & Sandwiches',
  description: 'Grilled mains and handhelds.',
  parentExternalId: 'cat_mains',
  active: true
});

Supported systems

SystemReadWriteAuthRate limit
SquareYesOAuth 2.05 req / s
Clover (Asia Pacific)YesYesAPI token5 req / 6s
Clover (US)YesYesAPI token10 req / s · 100 req / min
Lightspeed K-SeriesYesOAuth 2.0100 req / 60s

On this page