Ready2order Product API

Products are the items sold at the point of sale. Each product belongs to a product group and carries a price, a VAT rate, and a set of optional features such as stock tracking, variations, and ingredients. **Identifiers** A product supports three optional identifiers alongside its system `product_id`: - `product_itemnumber`: the merchant's own article number, used on labels, in exports, and for stock lookups - `product_barcode`: EAN or barcode for scanning at the POS - `product_externalReference`: for integrators to store their own system's ID, so you can map between your records and ready2order without storing `product_id` on your side **Pricing and VAT** `product_price` is the base price. Set `product_priceIncludesVat` to `true` (the default) if that figure is gross, or `false` if it is net. A VAT rate is required on creation — supply either `product_vat` as a percentage or `product_vat_id` referencing a [VAT rate](#tag/Vat-Rate). Customers and customer categories can have individual price overrides managed via the [per-customer prices](#operation/productGetAllCustomerProductPrices) and [per-category prices](#operation/productGetAllCustomerCategoryProductPrices) endpoints. **Custom price and quantity** Set `product_customPrice: true` to let the cashier enter the price manually at checkout, which is useful for open-price items. `product_customQuantity: true` does the same for the quantity. **Stock** Stock tracking is optional and configured per product. Set `product_stock_enabled: true`, then use `product_stock_value` for the current quantity, `product_stock_safetyStock` for the minimum threshold, and `product_stock_reorderLevel` for the point at which the system alerts about low inventory. Use the [get stock](#operation/productGetStock) and [update stock](#operation/productUpdateStock) endpoints to read or update stock figures without touching other product fields. **Product type** `product_type` is mainly relevant in gastro mode, where it drives printer routing (e.g. kitchen vs. bar). Available values: `standard`, `food`, `drink`, `extra`, `sidedish`, `variation`, `ingredient`. For standard retail products, use `standard`. **Variations and ingredients** Variations (selectable add-ons or modifications) and ingredients (component tracking for recipes and partial-unit sales) are enabled per product with `product_variations_enabled` and `product_ingredients_enabled`. Both require the corresponding feature to be active on the account. **Keeping a catalogue in sync** The recommended approach is to subscribe to [webhooks](#tag/Webhook) for `product.created` and `product.updated` events. This avoids polling and ensures your system is updated in near real-time without unnecessary requests. If webhooks are not an option, use the `updatedAfter` query parameter on [list products](#operation/productGetAll) to fetch only products changed since a given timestamp. Use [batch create](#operation/productCreateBatch) to create multiple products in one request.

Business capability
Item Master Data Management BC-2370.10

Operations 20

POST /products/batch Create products in bulk #
POST /products/batch/stock Update stock in bulk #
GET /products List products #
POST /products Create a product #
GET /products/{id} Get a product #
PUT /products/{id} Update a product #
DELETE /products/{id} Delete a product #
GET /products/itemNumber/{itemNumber}/stock Get product stock by item number #
GET /products/{id}/stock Get product stock #
PUT /products/{id}/stock Update product stock #
GET /products/{id}/price/customer List per-customer prices #
POST /products/{id}/price/customer Set per-customer price #
GET /products/{id}/price/customer/{customerId} Get per-customer price #
PUT /products/{id}/price/customer/{customerId} Update per-customer price #
DELETE /products/{id}/price/customer/{customerId} Remove per-customer price #
GET /products/{id}/price/customerCategory List customer category prices #
POST /products/{id}/price/customerCategory Set customer category price #
GET /products/{id}/price/customerCategory/{customerCategoryId} Get customer category price #
PUT /products/{id}/price/customerCategory/{customerCategoryId} Update customer category price #
DELETE /products/{id}/price/customerCategory/{customerCategoryId} Remove customer category price #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ready2order-product-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ready2order-product-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ready2order Public Product API
  contact:
    name: support@ready2order.com
  license:
    name: proprietary
  version: R2-2026.30.2
  description: '# First Steps


    ## Authorization


    The ready2order API uses a three-token flow to grant your integration access to a ready2order account.'
servers:
- url: https://api.ready2order.com/v1
tags:


# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ready2order/refs/heads/main/openapi/ready2order-product-api-openapi.yml