How to Read Products, Categories and Taxes with the Zepio Developer API | Zepio Help Centre
Zepio

How can we help?

How to Read Products, Categories and Taxes with the Zepio Developer API

List your products with their variants, stock, prices and images, and look up category and tax IDs, through the Zepio Developer API.

Updated 19 Oct 2026 4 min read


On this page

The Products API lets you read your catalogue from your own code: products with their variants, stock, prices, images and categories, plus your categories and taxes. Use it to match your ERP items to Zepio products, or to check what a bulk update saved.

Create an API key

  • Go to Settings › Developer API and click Create API key.
  • Tick this ability: Read products (products:read).

Send it as a Bearer token. See API keys, limits and errors for the basics.

Authorization: Bearer YOUR_API_KEY
Accept: application/json

Endpoints

Method Endpoint Description
GET /products List products, newest first
GET /products/{id} Get one product
GET /categories List categories
GET /taxes List taxes

All are under https://yourwebsite.com/api/developer/v1.

Get products

GET /api/developer/v1/products

Query parameters

Parameter Type Required Description
per_page integer No Products per page. Maximum 100. Default 25
cursor string No The cursor for the next or previous page
branch_id integer No Only products from this branch
erp_id string No Only the product with this ERP ID
sku_code string No Only the product with this SKU
category_id integer No Only products in this category
is_active boolean No 1 for active products, 0 for hidden ones
updated_after datetime No Only products changed after this time, for example 2026-10-17T09:00:00+05:30
search string No Matches part of the name, or an exact SKU or ERP ID

Example request

curl -X GET "https://yourwebsite.com/api/developer/v1/products?per_page=100" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Find a product by its ERP ID

curl -X GET "https://yourwebsite.com/api/developer/v1/products?erp_id=55885588" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Example response

{
  "success": true,
  "message": "OK",
  "data": [
    {
      "id": 1009,
      "branch_id": 1,
      "name": "Organic Almonds 500g",
      "slug": "organic-almonds-500g",
      "short_description": null,
      "description": "<p>Crunchy, unsalted almonds.</p>",
      "sku_code": "QFMAWVHW",
      "erp_id": "55885588",
      "hsn_code": "0802",
      "original_price": 120,
      "selling_price": 100,
      "track_quantity": true,
      "unit_quantity": 48,
      "has_stock": true,
      "min_quantity": 1,
      "max_quantity": null,
      "low_stock_alert": 5,
      "unit_label": "",
      "unit_weight": 500,
      "weight_unit": "gm",
      "length": null,
      "width": null,
      "height": null,
      "tax_id": 1,
      "is_active": true,
      "created_at": "2026-09-21T04:25:59+00:00",
      "updated_at": "2026-10-16T12:10:17+00:00",
      "category_ids": [54],
      "images": [
        {
          "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "url": "https://yourwebsite.com/media/almonds.jpg",
          "position": 1
        }
      ],
      "variants": []
    }
  ],
  "meta": {
    "per_page": 100,
    "next_page_url": "https://yourwebsite.com/api/developer/v1/products?per_page=100&cursor=eyJpZCI6MTAwOSwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
    "prev_page_url": null,
    "has_more": true
  }
}

Pagination

When has_more is true, call next_page_url to get the next page. Stop when has_more is false.

Get one product

GET /api/developer/v1/products/{id}
curl -X GET "https://yourwebsite.com/api/developer/v1/products/1009" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

The reply has the same fields as one product in the list. A product that does not exist, or was deleted, returns 404.

Product fields

Field Description
id Zepio product ID. Use it as id in a bulk update
branch_id The branch the product belongs to
sku_code, erp_id, hsn_code Your codes for the product
original_price MRP
selling_price The price shoppers pay
track_quantity Whether stock is tracked
unit_quantity Stock in hand, when stock is tracked
has_stock Whether the product can be bought right now
tax_id The tax applied. Look it up in /taxes
is_active Whether the product shows in your store
category_ids IDs of the categories the product is in. Look them up in /categories
images Images in display order
variants Sizes, colours or other options, each with its own id, sku_code, prices and stock. Empty when the product has none

Get categories

GET /api/developer/v1/categories
Parameter Type Required Description
per_page integer No Categories per page. Maximum 100. Default 100
cursor string No The cursor for the next page
branch_id integer No Only categories from this branch
parent_id integer No Only sub-categories of this category
is_active boolean No 1 for active categories, 0 for hidden ones
{
  "success": true,
  "message": "OK",
  "data": [
    {
      "id": 2,
      "branch_id": 1,
      "parent_id": null,
      "name": "Fresh Fruits",
      "slug": "fresh-fruits",
      "position": 20,
      "is_active": true,
      "created_at": "2024-11-24T18:17:31+00:00",
      "updated_at": "2024-11-24T19:15:34+00:00"
    }
  ],
  "meta": {
    "per_page": 100,
    "next_page_url": null,
    "prev_page_url": null,
    "has_more": false
  }
}

Get taxes

GET /api/developer/v1/taxes
{
  "success": true,
  "message": "OK",
  "data": [
    { "id": 1, "name": "5% GST", "percentage": "5.00" }
  ]
}

Notes

  • The API key must have the Read products ability (products:read).
  • Reading shares one limit of 60 requests a minute with all your other keys. Use per_page=100 and updated_after to need fewer requests. See API keys, limits and errors.
  • Deleted products are not returned.
  • Download links, licence keys and streaming links of digital products are never returned by this API.

Did this answer your question?

Book a call

Tell us about your business and pick a time. We will confirm on WhatsApp, then call you.

Outside India? Change +91 to your country code.

Your business
Pick a day
Pick a time (India time)

Choose a day first.