Get product

PUBLIC

Returns a single product by ID within a merchant.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
📘

CacheCache-Control: public, max-age=7200 (2 hours)

Part of the catalog — The product catalog explains how merchants, products, calendars and timeslots fit together.

Why this endpoint exists

The single-product read, for a product detail page or a deep link. It returns the same Product object as list products, so if you already hold the list you do not need this call.

Where it genuinely matters is the companion to the calendar. GET .../calendar returns a deliberately slim product wrapper carrying only the fields the calendar owns — no localised title, no conditions, no age_group. This endpoint is where those live. A product page showing per-day pricing therefore fetches both, and the split is not an oversight: the two are served by different views, so the calendar can stay cheap and refresh on a five-minute cycle while metadata caches for two hours.

How to use it

curl "https://api.acc.funtrips.io/v2/merchants/8a2f4c61-9d3e-4b57-a0c8-1e5f7b2d9a30/products/d4b8f2a1-6c3e-4957-b18d-2f5a9c7e3b04" \
  -H "x-campaign-id: 3c1e5a90-7b2d-4f61-9a83-1d4e7f2b8c05" \
  -H "Accept-Language: nl-NL"

Path parameters

ParameterTypeNotes
merchant_idUUIDThe owning merchant
product_uuidUUIDThe product

Both are required: a product is addressed within its merchant. The pair must be consistent — a valid product id under the wrong merchant id will not resolve.

The response is one Product object. See list products for the field-by-field walkthrough, including the four behavioural flags (no_date, requires_timeslot, physical_product, sold_out).

Errors

StatustypeCause
400Either path parameter is not a UUID, or x-campaign-id is missing
404urn:qup:error:product-not-foundNo such product under that merchant in this campaign
500urn:qup:error:product-internal-errorUnexpected fault

A 404 is scoped by campaign and by merchant. Before assuming the product is gone, check that the merchant id is the right one and that x-campaign-id matches the call the id came from.

Path Params
uuid
required
uuid
required
Headers
uuid
required

Campaign scope for this request. Filters content to the specified campaign.

string

RFC 7231 language preference. The best match against supported locales (nl-NL, en-GB, de-DE) is selected. Defaults to nl-NL when omitted.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json