Catalog

Categories & brands

How products are organised. Categories nest; brands do not.

GET/catalog/categories/

List categories. Categories nest, so each may have a parent.

Filters

parentis_activesearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
name
string
slug
string
parent
integer
sort_order
integer
image_url
string
is_active
boolean
children_count
integer
products_count
integer
created_at
datetime
updated_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/catalog/categories/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200
{
  "next": "https://api.tajirpoint.com/api/v1/catalog/categories/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "name": "Nescafé Classic 200g",
      "slug": "slug",
      "parent": 1,
      "sort_order": 1,
      "image_url": "https://media.tajirpoint.com/products/nescafe.jpg",
      "is_active": true,
      "children_count": 1,
      "products_count": 1,
      "created_at": "2026-07-11T09:14:22Z",
      "updated_at": "2026-07-11T09:14:22Z"
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
POST/catalog/categories/

Create a category.

Body parameters

nameRequired
string
parentOptional
integer
sort_orderOptional
integer
image_urlOptional
string
is_activeOptional
boolean

Response fields

id
integer
name
string
slug
string
parent
integer
sort_order
integer
image_url
string
is_active
boolean
children_count
integer
products_count
integer
created_at
datetime
updated_at
datetime

Errors

400Validation failed. `details` names the offending fields.
401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl -X POST https://api.tajirpoint.com/api/v1/catalog/categories/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nescafé Classic 200g",
    "parent": 1,
    "sort_order": 1,
    "image_url": "https://media.tajirpoint.com/products/nescafe.jpg",
    "is_active": true
  }'
Response · 200
{
  "id": 42,
  "name": "Nescafé Classic 200g",
  "slug": "slug",
  "parent": 1,
  "sort_order": 1,
  "image_url": "https://media.tajirpoint.com/products/nescafe.jpg",
  "is_active": true,
  "children_count": 1,
  "products_count": 1,
  "created_at": "2026-07-11T09:14:22Z",
  "updated_at": "2026-07-11T09:14:22Z"
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
GET/catalog/brands/

List brands.

Filters

parentis_activesearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
name
string
slug
string
logo_url
string
is_active
boolean
products_count
integer
created_at
datetime
updated_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/catalog/brands/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200
{
  "next": "https://api.tajirpoint.com/api/v1/catalog/brands/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "name": "Nescafé Classic 200g",
      "slug": "slug",
      "logo_url": "https://media.tajirpoint.com/products/nescafe.jpg",
      "is_active": true,
      "products_count": 1,
      "created_at": "2026-07-11T09:14:22Z",
      "updated_at": "2026-07-11T09:14:22Z"
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
POST/catalog/brands/

Create a brand.

Body parameters

nameRequired
string
logo_urlOptional
string
is_activeOptional
boolean

Response fields

id
integer
name
string
slug
string
logo_url
string
is_active
boolean
products_count
integer
created_at
datetime
updated_at
datetime

Errors

400Validation failed. `details` names the offending fields.
401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl -X POST https://api.tajirpoint.com/api/v1/catalog/brands/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nescafé Classic 200g",
    "logo_url": "https://media.tajirpoint.com/products/nescafe.jpg",
    "is_active": true
  }'
Response · 200
{
  "id": 42,
  "name": "Nescafé Classic 200g",
  "slug": "slug",
  "logo_url": "https://media.tajirpoint.com/products/nescafe.jpg",
  "is_active": true,
  "products_count": 1,
  "created_at": "2026-07-11T09:14:22Z",
  "updated_at": "2026-07-11T09:14:22Z"
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}