Skip to main content
View as Markdown

Pricing API Quickstart

By the end of this guide, you'll have retrieved live pricing data for SKUs from the Pricing API.

Prerequisites​

Make your first call​

BatchGetPricing (POST /pricing/v1/pricing/get) retrieves current price, MSRP, and active status for one or more SKUs. It's the right starting point: it requires no prior setup beyond having SKUs in your catalog, and gives you an immediate view of your live pricing state.

# get_authenticated_session() is provided in docs/snippets/auth.mdx — see Authenticating Your Requests
session = get_authenticated_session()

response = session.post(
"https://noon-api-gateway.noon.partners/pricing/v1/pricing/get",
json={
"items": [
{"partner_sku": "MY-SKU-001", "country_code": "ae"},
{"partner_sku": "MY-SKU-002", "country_code": "ae"},
{"partner_sku": "MY-SKU-001", "country_code": "sa"},
]
},
headers={"User-Agent": "MyPricingSync/1.0.0"},
timeout=30,
)
response.raise_for_status()
result = response.json()

Valid values for country_code: "ae", "sa", "eg".

Response:

<!-- from: v1BatchGetPricingResponse / v1BatchGetPricingResponseItem -->
{
"items": [
{
"partner_sku": "MY-SKU-001",
"country_code": "ae",
"status": { "status_id": 0, "status_code": "OK", "message": "" },
"price": 149.99,
"msrp": 199.99,
"is_active": true
},
{
"partner_sku": "MY-SKU-002",
"country_code": "ae",
"status": { "status_id": 0, "status_code": "OK", "message": "" },
"price": 89.00,
"msrp": null,
"is_active": true
},
{
"partner_sku": "MY-SKU-001",
"country_code": "sa",
"status": {
"status_id": 5,
"status_code": "NOT_FOUND",
"message": "Pricing not configured for this SKU and country"
},
"price": null,
"msrp": null,
"is_active": null
}
]
}

What you got back​

Each item in the response corresponds to a partner_sku + country_code pair from your request. price is the current selling price; msrp is the manufacturer's suggested retail price (null if not set). is_active indicates whether the SKU is currently active for sale in that country.

The third item returned NOT_FOUND — noon has no pricing record for MY-SKU-001 in SA. Use BatchUpsertPricing to create one.

Checking for errors​

The Pricing API returns errors at two levels:

  • Non-2xx HTTP response — the entire request failed (authentication, authorization, or malformed payload).
  • Per-item error within a 200 response — the request succeeded but one or more items failed. Always check the status on each entry in items, even when the HTTP status is 200; a status_code other than OK means that item did not succeed.

A single request can return a mix of successes and failures. HTTP 200 does not mean all items succeeded.

Where to go next​

Ask AI about this page
Get an explanation, examples, or a summary of this doc.