Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developer.clopos.com/llms.txt

Use this file to discover all available pages before exploring further.

Purpose

Allows you to retrieve your category tree, including subcategories, in a single call.

HTTP Request

GET https://integrations.clopos.com/open-api/v2/categories
This endpoint requires authentication. Include your JWT in the x-token header. See Authentication for how to obtain a token and Errors for error responses.

Query Parameters

page
integer
default:"1"
Page number for pagination (1-based).
limit
integer
default:"50"
Number of categories to return (1-999).
parent_id
integer
Filters records under a specific parent category.
type
string
Category type; PRODUCT, INGREDIENT, ACCOUNTING.
include_children
boolean
default:"true"
Include child categories in the response.
include_inactive
boolean
default:"false"
Return inactive categories.

Request Example

curl -X GET "https://integrations.clopos.com/open-api/v2/categories?page=1&limit=20&filters%5B0%5D%5B0%5D=type&filters%5B0%5D%5B1%5D=PRODUCT" \
  -H "x-token: oauth_example_token" \

Response

200 OK — List of categories

{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Pizza",
            "status": 1,
            "hidden": false,
            "type": "PRODUCT",
            "position": null,
            "parent_id": null,
            "depth": 0,
            "color": "00bcd4",
            "children": [],
            "media": [],
            "created_at": "2026-01-28T18:23:53.000000Z",
            "updated_at": "2026-01-28T18:23:53.000000Z"
        },
        {
            "id": 2,
            "name": "Drinks",
            "status": 1,
            "hidden": false,
            "type": "PRODUCT",
            "position": null,
            "parent_id": null,
            "depth": 0,
            "color": "00bcd4",
            "children": [],
            "media": [
                {
                    "uuid": "1d76f22b-c209-4fac-be3a-cfde7b8f0d74",
                    "mime_type": "image/jpeg",
                    "size": 87281,
                    "urls": {
                        "original": "https://cdn.clopos.com/omega/1d76f22b-.../original.jpg",
                        "extra_large": "https://cdn.clopos.com/omega/1d76f22b-.../extra_large.jpg",
                        "thumb": "https://cdn.clopos.com/omega/1d76f22b-.../thumb.jpg"
                    },
                    "blur_hash": "LEIpFsE%t1}TxpENEgaK0iowRktQ",
                    "dimensions": {
                        "width": 612,
                        "height": 459
                    }
                }
            ],
            "created_at": "2026-02-13T16:31:36.000000Z",
            "updated_at": "2026-02-13T16:31:36.000000Z"
        }
    ],
    "total": 2
}

400 Bad Request — Parameter error

{
    "success": false,
    "error": "invalid_parameter",
    "message": "type must be one of PRODUCT, INGREDIENT, ACCOUNTING"
}

Field Reference

Category Object

FieldTypeDescription
idintegerUnique identifier.
namestringCategory name.
statusinteger1 = active, 0 = inactive.
typestringPRODUCT, INGREDIENT, or ACCOUNTING.
positioninteger (nullable)Display order position.
parent_idinteger (nullable)Parent category ID, null for root categories.
_lftintegerLeft boundary in the nested-set tree. Useful for ordering and subtree queries.
_rgtintegerRight boundary in the nested-set tree. A category’s descendants have _lft and _rgt values between its own.
depthintegerHierarchy level (0 = root).
colorstringHEX color code (without # prefix).
hiddenbooleanWhether the category is hidden from menus.
childrenarraySubcategories (same structure, nested recursively).
mediaarrayImage attachments. See Media object.
created_atstringCreation timestamp (ISO 8601).
updated_atstringLast update timestamp (ISO 8601).

Notes

  • With the type parameter, you can call different category collections (menu, ingredient, accounting) from a single endpoint.
  • By sending include_children=false, you can retrieve only top-level categories; sub-branches are retrieved with separate calls.
  • The depth field indicates the hierarchy level: 0 for root categories, 1 for first-level children, and so on.
  • To see inactive categories, send include_inactive=true; otherwise, they are hidden by default.
  • In a production environment, adjust pagination values (page, limit) according to the brand’s inventory size.