Flavours Partner API
Product

List Products

GET
/api/v2/products

List all products with pagination and filtering options. per_page is capped at 100: a larger value is clamped to 100, never rejected. Default mode (pagination=page or omitted) is offset pagination and returns the paginator shown below. Keyset mode (pagination=keyset) orders by product id ascending, ignores page, sort and key_by (a sort or key_by that is not a product column is still rejected with 422), and is never cached; data then is an object with data (the products), per_page, after_id (echo of the request), next_after_id (pass it as after_id for the next page; null on the last page), has_more and total (an integer on the first request, when after_id is omitted, null afterwards). Products deleted between two keyset requests do not cause later products to be skipped, and an after_id that is unknown or belongs to another market only positions the cursor inside the caller's own products. A keyset walk is not a snapshot: a product created during the walk with an id below the cursor is not returned, so take a changes-feed position before the first page and replay the feed from it after the last page.

Authorization

API-TOKEN
API-TOKEN<token>

Your partner API key. Send it in the API-TOKEN header on every request.

In: header

Query Parameters

page?|

Page number for pagination. Must be at least 1.

per_page?|

Number of items per page (max 100; larger values are clamped to 100). When filter.products_ids is sent, the cap is the larger of 100 and the number of ids, so one page can hold every requested product. Keyset mode always caps at 100. Must be at least 1.

search?|

Search in product/option/additional name or duration.

sort?|

Sort field and direction (e.g., order, -created_at).

key_by?|

Key the results by this field.

includes*array<>
pagination?|

Pagination mode: page (default, offset) or keyset (ordered by id ascending; page, sort and key_by are ignored; continue with after_id).

Value in"page" | "keyset"
after_id?|

Keyset mode only: the next_after_id from the previous response. Omit for the first page. Must not be greater than 36 characters.

filter?object
filter.market_id?|

Must match an existing stored value.

filter.branch_id?|

Must match an existing stored value.

filter.category_id?|

Must match an existing stored value.

filter.has_category?|

Pass 0 for products attached to no category, 1 for products that have one. Omit for both.

filter.is_active?|
filter.has_options?|
filter.products_ids*array<>

Must match an existing stored value.

filter.payment_method_key?|

Must match an existing stored value.

filter.order_type_key?|

Must match an existing stored value.

options?|
options.barcode?|
options.barcode.type?|
Value in"CODE_128" | "EAN_13" | "EAN_8" | "CODE_39" | "CODE_39_VIN" | "CODABAR" | "UPC_A" | "UPC_E" | "INTERLEAVED_2_OF_5" | "STANDARD_2_OF_5" | "CODE_93"
options.barcode.white?|
options.barcode.padding?|

Header Parameters

X-API-Version*string

API contract version to target. See the Changelog for what changed in each version.

Default"2.0.0"
Value in"2.3.0" | "2.2.0" | "2.1.0" | "2.0.0"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.flavours.sa/dev/api/v2/products?page=1&per_page=20&search=burger&sort=order&key_by=id&includes=officia&pagination=keyset&after_id=&filter.market_id=nemo&filter.branch_id=quas&filter.category_id=2&filter.has_category=false&filter.is_active=false&filter.has_options=true&filter.products_ids=non&filter.payment_method_key=vero&filter.order_type_key=ut&options.barcode.type=molestiae&options.barcode.white=true&options.barcode.padding=false" \  -H "X-API-Version: 2.3.0"
{
  "meta": {
    "code": 200,
    "status": "success",
    "message": "Product list retrieved successfully."
  },
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": "36e99390-b8e4-4e4d-a70e-c794b3f4cf7d",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": null,
        "name_en": "Minus sit",
        "name_ar": "rem",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 0,
        "images": [
          "https://cdn.example.com/img/uploads/products/sample.png"
        ],
        "is_active": true,
        "created_at": 1792593346521,
        "updated_at": 1792593346521,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": 0,
        "max_additionals": 3,
        "is_global": false,
        "product_category_id": 16,
        "preparation_time": 15
      },
      {
        "id": "b75f3197-dde4-456d-8394-6f755dd546fb",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": null,
        "name_en": "Rerum necessitatibus",
        "name_ar": "quod",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 1,
        "images": [
          "https://cdn.example.com/img/uploads/products/sample.png"
        ],
        "is_active": true,
        "created_at": 1792593346521,
        "updated_at": 1792593346521,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": 0,
        "max_additionals": 3,
        "is_global": false,
        "product_category_id": 16,
        "preparation_time": 15
      },
      {
        "id": "3fd91fc4-f6ca-4ccb-95a8-a2643d1a5a63",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": null,
        "name_en": "Dolores perferendis",
        "name_ar": "occaecati",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 2,
        "images": [
          "https://cdn.example.com/img/uploads/products/sample.png"
        ],
        "is_active": true,
        "created_at": 1792593346521,
        "updated_at": 1792593346521,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": 0,
        "max_additionals": 3,
        "is_global": false,
        "product_category_id": 16,
        "preparation_time": 15
      },
      {
        "id": "937369b1-96dd-4413-b303-5dc3426627fa",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Docs Burger",
        "name_ar": "برجر",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 4,
        "images": null,
        "is_active": true,
        "created_at": 1792593340677,
        "updated_at": 1792593340677,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": 4,
        "preparation_time": null
      },
      {
        "id": "b2ba1e14-a3fe-4551-a24d-e1feed3a9972",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Docs Fries",
        "name_ar": "بطاطس",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 7,
        "images": null,
        "is_active": true,
        "created_at": 1792593331603,
        "updated_at": 1792593331603,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": 1,
        "preparation_time": null
      },
      {
        "id": "9ed1608d-2b3b-4375-b635-23116e65a721",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Docs Burger",
        "name_ar": "برجر",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 18,
        "images": null,
        "is_active": true,
        "created_at": 1792593331603,
        "updated_at": 1792593331603,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": 1,
        "preparation_time": null
      },
      {
        "id": "9d8ae5db-c3cc-449e-8246-c397920a9e26",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Docs Burger",
        "name_ar": "برجر",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 42,
        "images": null,
        "is_active": true,
        "created_at": 1792593340422,
        "updated_at": 1792593340422,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "194feeae-e875-4fb7-a7d3-086b53eaf3e8",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Est occaecati",
        "name_ar": "modi",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 43,
        "images": null,
        "is_active": true,
        "created_at": 1792593340930,
        "updated_at": 1792593340930,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "828ce6f8-2be0-4ac8-8baf-c57f10675f41",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Ex dicta",
        "name_ar": "velit",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 44,
        "images": null,
        "is_active": true,
        "created_at": 1792593341483,
        "updated_at": 1792593341483,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "53aa23cb-a3f1-44ec-a318-70d4050d207f",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Vero beatae",
        "name_ar": "at",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 45,
        "images": null,
        "is_active": true,
        "created_at": 1792593342625,
        "updated_at": 1792593342625,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "df13765d-0d60-46c6-9ae3-47f1c888c3f3",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Autem laborum",
        "name_ar": "quod",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 46,
        "images": null,
        "is_active": true,
        "created_at": 1792593343627,
        "updated_at": 1792593343627,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "7c2939f2-bf43-4fbf-a399-8a3d2ca9b857",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Aspernatur id",
        "name_ar": "natus",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 47,
        "images": null,
        "is_active": true,
        "created_at": 1792593343699,
        "updated_at": 1792593343699,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "2bb26b7a-7333-4157-bc1e-cc84eb67aa2b",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Quibusdam repellendus",
        "name_ar": "et",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 48,
        "images": null,
        "is_active": true,
        "created_at": 1792593343751,
        "updated_at": 1792593343751,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "a42dbf45-2dbe-4fbe-a4b0-470a7d2c8715",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Cupiditate reprehenderit",
        "name_ar": "totam",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 49,
        "images": null,
        "is_active": true,
        "created_at": 1792593343803,
        "updated_at": 1792593343803,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "1c075e42-e74c-421c-8ab7-9c5a8016359a",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Sint iste",
        "name_ar": "et",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 50,
        "images": null,
        "is_active": true,
        "created_at": 1792593343875,
        "updated_at": 1792593343875,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "928ccff3-03ce-44a8-91e6-1fdda6fe9a52",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Eum reprehenderit",
        "name_ar": "distinctio",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 51,
        "images": null,
        "is_active": true,
        "created_at": 1792593344221,
        "updated_at": 1792593344221,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "d85a907e-471f-4c8d-bafb-e5a8cf848d51",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Sint ducimus",
        "name_ar": "inventore",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 52,
        "images": null,
        "is_active": true,
        "created_at": 1792593344970,
        "updated_at": 1792593344970,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "14136ec6-36b1-42a4-bd1f-fe7e3dcb008b",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": null,
        "name_en": "Barcode Latte",
        "name_ar": "لاتيه باركود",
        "description_en": null,
        "description_ar": null,
        "stock": 0,
        "order": 53,
        "images": null,
        "is_active": true,
        "created_at": 1792593345238,
        "updated_at": 1792593345238,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "eb2020e8-8ee0-446c-aa31-b9977783d46a",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Blanditiis aut",
        "name_ar": "dolores",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 54,
        "images": null,
        "is_active": true,
        "created_at": 1792593345352,
        "updated_at": 1792593345352,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      },
      {
        "id": "0b5b3eb3-f3af-4523-a8d6-d8c57855a129",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "name_en": "Nisi qui",
        "name_ar": "quidem",
        "description_en": null,
        "description_ar": null,
        "stock": 50,
        "order": 55,
        "images": null,
        "is_active": true,
        "created_at": 1792593345442,
        "updated_at": 1792593345442,
        "deleted_at": null,
        "rating_amount": 0,
        "rating_avg": "0.00",
        "sold_amount": 0,
        "sold_revenue": 0,
        "qoyod_id": null,
        "min_additionals": null,
        "max_additionals": null,
        "is_global": false,
        "product_category_id": null,
        "preparation_time": null
      }
    ],
    "first_page_url": "https://localhost:8000/api/v2/products?page=1",
    "from": 1,
    "last_page": 2,
    "last_page_url": "https://localhost:8000/api/v2/products?page=2",
    "links": [
      {
        "url": null,
        "label": "&laquo; Previous",
        "page": null,
        "active": false
      },
      {
        "url": "https://localhost:8000/api/v2/products?page=1",
        "label": "1",
        "page": 1,
        "active": true
      },
      {
        "url": "https://localhost:8000/api/v2/products?page=2",
        "label": "2",
        "page": 2,
        "active": false
      },
      {
        "url": "https://localhost:8000/api/v2/products?page=2",
        "label": "Next &raquo;",
        "page": 2,
        "active": false
      }
    ],
    "next_page_url": "https://localhost:8000/api/v2/products?page=2",
    "path": "https://localhost:8000/api/v2/products",
    "per_page": 20,
    "prev_page_url": null,
    "to": 20,
    "total": 22
  }
}
{
  "meta": {
    "code": 401,
    "status": "error",
    "message": "Unauthenticated."
  },
  "data": null
}
{
  "meta": {
    "code": 403,
    "status": "error",
    "message": "Unauthorized."
  },
  "data": null
}
{
  "meta": {
    "code": 404,
    "status": "error",
    "message": "Resource not found."
  },
  "data": null
}
{
  "meta": {
    "code": 500,
    "status": "error",
    "message": "Internal server error."
  },
  "data": null
}