Products
Retrieve a paginated list of products available in a specific shop, filtered by market.List Products
Unique identifier for the shop
Market identifier (e.g.
DE for Germany)Filter products and SKUs by name
Page number (0-indexed)
Results per page (max 150)
product:read
Example Request
Response
Response Fields
| Field | Type | Description |
|---|---|---|
data | array | List of product objects |
data[].uid | string | Product UID |
data[].display_name | string | Product display name |
data[].attributes | object | Product attributes as key-value pairs |
data[].skus | array | Available SKUs for this product in the given market |
data[].skus[].uid | string | SKU UID (use this when creating checkouts) |
data[].skus[].display_name | string | SKU display name |
data[].skus[].attributes | object | SKU attributes as key-value pairs |
data[].skus[].availability | string | Availability bucket (High, Medium, Low, or Unavailable) |
data[].skus[].telemedicine_provider_data.external_id | string | External SKU identifier for the telemedicine provider |
data[].skus[].price | integer | Price in euro cents |
data[].skus[].currency | string | Price currency |
data[].skus[].unit | string | SKU unit |
data[].skus[].standard_selling_unit | number | Standard selling unit |
totalRegistries | integer | Total number of matching products |
totalPages | integer | Total number of pages |
Error Responses
| Status Code | Description |
|---|---|
400 | Missing market query parameter |
404 | Shop not found |
Check Live Stock
Check whether one or more SKUs are currently available in the requested quantities before the checkout starts.Unique identifier for the shop
product:read
Live stock is checked against Shopify’s current available inventory for the mapped product variants. This includes inventory already held by Shopify orders and draft-order reservations.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
sku_uid | string | Yes | SKU UID from the product catalog |
quantity | integer | Yes | Quantity to check. Must be at least 1 |
sku_uid can appear only once per live stock request.
Example Request
Available Response
When all requested quantities are available, the endpoint returns200 OK.
Unavailable Response
When at least one requested quantity is not available, the endpoint returns409 Conflict.
Response Fields
| Field | Type | Description |
|---|---|---|
available | boolean | true only when all requested quantities are available |
lines[].sku_uid | string | Requested SKU UID |
lines[].quantity | integer | Requested quantity |
lines[].available | boolean | Whether this SKU has enough stock |
lines[].available_stock | integer | Current stock available for the SKU in the shop |
Error Responses
| Status Code | Description |
|---|---|
400 | Body validation failed or duplicate sku_uid values |
404 | Shop or SKU not found |
409 | At least one requested quantity is unavailable |
Reserve Products
Create a Shopify draft order with a 24-hour inventory reservation before prescriptions are available. Use the returned draft order ID later asreserved_draft_order_id when uploading signed prescriptions.
Unique identifier for the shop
create_prescription_checkout
The reservation request does not include prescriptions or patient data. RxScale adds telemedicine provider attributes from the API key automatically.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
external_reservation_id | string | No | Your reservation identifier. Stored on the Shopify draft order and returned in the response |
lines | array | Yes | Products to reserve |
lines[].sku_uid | string | Yes | SKU UID from the product catalog |
lines[].quantity | integer | Yes | Quantity to reserve |
sku_uid can appear only once per reservation request. Duplicate SKU lines are rejected because the later prescription upload must match each reserved draft-order line unambiguously.
Example Request
Response
draft_order.id is the Shopify legacy DraftOrder ID, not the Shopify GID. Pass this value to POST /v2/public/prescriptions/{shop_identifier} as reserved_draft_order_id after the prescriptions are signed.
Error Responses
| Status Code | Description |
|---|---|
400 | API key is not linked to a telemedicine provider, body validation failed, or duplicate sku_uid values |
404 | Shop or SKU not found |