1. Products
This endpoint returns the list of ticketing products (admissions) that are released for sale through third-party integrations for the API key's merchant.
Only admissions that have the Third party integrations sales channel enabled and that list the API key's user in their allow-list are returned.
Not every product an e-guma merchant configures can be sold through this API: some setups (e.g. reserved-seating, products requiring a mandatory customer note, mandatory ticket questions or per-ticket contact details, non-QR ticket media) cannot be completed end-to-end without UI input we can't collect through the API. Products with such a configuration are silently omitted from the response — there is no error or placeholder entry. If a product you expect is missing, ask the merchant to review its setup against the third-party-integration requirements.
GET https://api.e-guma.ch/v1/ticketing/products.json?apikey={api-key}Parameters
api-key required | API key of a user that is approved for third-party integrations. |
Return
| company_name | Name of the merchant (company) the API key belongs to. |
| currency | Currency of every *_in_cents amount in this response, as ISO 4217 code (e.g. CHF, EUR). Lifted to the response root because every product is priced in the merchant's main currency, so the value is constant for the whole payload. |
| products | List of products, see product object below for details. |
Product object
id | ID of the product. Use this value as the product_id in the List of Availabilities API, Reserve Tickets API and Book Tickets API. |
name | Product name in the default language of the merchant. Convenience copy of the corresponding entry in name_translations. |
name_translations | Product name keyed by ISO 639-1 language code (e.g. |
description | Product description in the default language of the merchant. It can contain HTML. Convenience copy of the corresponding entry in description_translations. |
description_translations | Product description keyed by ISO 639-1 language code. Same shape and language coverage as name_translations; can contain HTML. |
description_on_ticket_template | Raw template the merchant has configured for the text that gets printed on the actual ticket, in the default language of the merchant. May be empty. Convenience copy of the corresponding entry in description_on_ticket_template_translations.
|
description_on_ticket_template_translations | Description-on-ticket template keyed by ISO 639-1 language code. Same shape and language coverage as name_translations. Individual entries may be empty when the merchant has not configured a value for that language. Same placeholder caveat as description_on_ticket_template applies to every entry. |
image_url | Absolute HTTPS URL of the product's primary image hosted on the e-guma image CDN, or an empty string if the product has no image. |
is_active |
|
slot_type | Indicates the granularity of the availabilities returned by the List of Availabilities API:
|
updated_at | Moment at which the product was last modified in e-guma, in ISO 8601 format. You can use this value to keep your local cache in sync. |
categories | List of person categories (e.g. Adult, Child) that can be purchased for this product. See person category object below for details. A product may be returned with an empty list of categories. In that case, no booking is currently possible through the API, but the product is still listed so you can keep it referenced in your system. |
Person category object
| id | ID of the person category. Use this value as the category_id in the Reserve Tickets API and Book Tickets API. |
| name | Name of the person category (e.g. Adult, Child) in the default language of the merchant. Convenience copy of the corresponding entry in name_translations. |
| name_translations | Person-category name keyed by ISO 639-1 language code. Contains an entry for every language the merchant has activated for the parent product. |
| age_from | Minimum age (in years) for this category, or null if there is no lower bound. |
| age_to | Maximum age (in years) for this category, or null if there is no upper bound. |
| price_from_in_cents | Lowest sale price across the ticket types that belong to this category, expressed in cents of the response's currency. Use it to display a "from" price in product listings before the customer has picked a specific date. 0 for free-of-charge categories. |
Example
GET https://api.e-guma.ch/v1/ticketing/products.json?apikey=510e32c594d84816a4af9df1{
"company_name": "Demo",
"currency": "CHF",
"products": [
{
"id": "64ad1bb1973b861c040c99bc",
"name": "Museum admission",
"name_translations": {
"de": "Museumseintritt",
"en": "Museum admission"
},
"description": "Admission ticket for the permanent exhibition.",
"description_translations": {
"de": "Eintrittsticket für die Dauerausstellung.",
"en": "Admission ticket for the permanent exhibition."
},
"description_on_ticket_template": "Hello {{first_name}}, please present this ticket at the main entrance. Valid for one entry on {{start_date_and_time}}.",
"description_on_ticket_template_translations": {
"de": "Hallo {{first_name}}, bitte weisen Sie dieses Ticket beim Haupteingang vor. Gültig für einen Eintritt am {{start_date_and_time}}.",
"en": "Hello {{first_name}}, please present this ticket at the main entrance. Valid for one entry on {{start_date_and_time}}."
},
"image_url": "https://images.e-guma.ch/mandant/events/64ad1bb1973b861c040c99bc.jpg",
"is_active": true,
"slot_type": "day",
"updated_at": "2026-03-15T14:22:05.0000000",
"categories": [
{
"id": "64ad1bb1973b861c040c99c1",
"name": "Adult",
"name_translations": {
"de": "Erwachsene",
"en": "Adult"
},
"age_from": 16,
"age_to": null,
"price_from_in_cents": 2500
},
{
"id": "64ad1bb1973b861c040c99c2",
"name": "Child",
"name_translations": {
"de": "Kind",
"en": "Child"
},
"age_from": 6,
"age_to": 15,
"price_from_in_cents": 1000
}
]
},
{
"id": "64ad1bb1973b861c040c99bd",
"name": "Guided tour",
"name_translations": {
"de": "Führung",
"en": "Guided tour"
},
"description": "Guided tour of the museum (90 min).",
"description_translations": {
"de": "Geführter Rundgang durch das Museum (90 Min.).",
"en": "Guided tour of the museum (90 min)."
},
"description_on_ticket_template": "",
"description_on_ticket_template_translations": {
"de": "",
"en": ""
},
"image_url": "",
"is_active": true,
"slot_type": "time",
"updated_at": "2026-03-10T09:00:00.0000000",
"categories": [
{
"id": "64ad1bb1973b861c040c99c1",
"name": "Adult",
"name_translations": {
"de": "Erwachsene",
"en": "Adult"
},
"age_from": null,
"age_to": null,
"price_from_in_cents": 3500
}
]
}
]
}Updated 5 days ago
