API reference · Catalog

List products

GEThttps://dev.adolfjon.uz/v1/catalog/products
catalog:read paginated read-only

Products on sale, newest first. Prices are the public price in UZS, including active sales.

Parameters

categoryquery · integer
Only this category id.
typequery · string
Only this product type.
One of: account, token, coupon, service, boost, design
limitquery · integer
Items per page, 1 to 100. Default 20.
cursorquery · string
meta.next_cursor from the previous page.
langquery · string
Language of titles and texts. Default en.
One of: uz, ru, en

Request

curl https://dev.adolfjon.uz/v1/catalog/products \
  -H "Authorization: Bearer ak_test_YOUR_KEY"

Response

200 OK · application/json
{
    "ok": true,
    "data": [
        {
            "id": 341,
            "title": "VIP 30 days",
            "type": "token",
            "category_id": 2,
            "price": {
                "uzs": 59000,
                "original_uzs": 59000,
                "discount_percent": 0,
                "sale_ends_at": null
            },
            "in_stock": true,
            "stock": null,
            "featured": true,
            "sold": 1840,
            "image_url": "https://adolfjon.uz/storage/uploads/vip.webp",
            "description": "VIP access for 30 days. Activates instantly.",
            "tags": [
                "vip"
            ],
            "url": "https://adolfjon.uz/store/product/341",
            "created_at": "2026-10-26T14:05:00+05:00"
        }
    ],
    "meta": {
        "request_id": "req_3f9a0c1d2e4b5a6978c0",
        "mode": "live",
        "has_more": false,
        "next_cursor": null
    }
}

Try it

Send a real request

Paste a key from your dashboard. A test key is best here. The key stays in this browser tab only and is sent straight to the API.

Errors

CodeHTTPWhen
unauthorized401No key, or the key is not valid.
insufficient_scope403The key lacks the permission. error.required_scope names it.
rate_limited429Over the per-minute limit. Wait error.retry_after seconds.
invalid_request400A parameter is wrong. error.param names it.