Products
Explore our content
Manage and retrieve all your products.
View your inventory.
Get tax information.
Extensive search and filter.
Retrieve availability and capacity.
Get product ratings and reviews.
In most cases, this content is periodically cached on the partner end, but these API endpoints are also optimized for direct front-end use.
Retrieve a list of all available product locations linked to your account.
Locations represent physical or virtual places where products (such as tickets or experiences) are offered. These can include cities, landmarks, or specific venues, and help in organizing and filtering products geographically.
[FILTER] on distributor_id
.
501
[FILTER] on product_id
.
PRODUCT_ID_123
[PAGING] Items Per Page - Allows user's to configure the items_per_page
value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.
This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.
Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page
response element in calculating actual page size.
10
Example: 5
[PAGING] Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?start_index=200.
1
Example: 1
[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items.
This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The page_index
and total_pages
properties are used for this style of paging.
1
Example: 1
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Location List Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/locations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"location_id": "LOCATION_ID_123",
"location_label": "Theaters",
"location_name": "Theater 1",
"location_description": "The largest theater in Amsterdam.",
"location_url": "text",
"location_type": "VENUE",
"location_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"location_contacts": [
{
"contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
"contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
"contact_version": 2,
"contact_number": "4573246",
"contact_type": "GUEST",
"contact_title": "Mr.",
"contact_name_first": "John",
"contact_name_last": "Doe",
"contact_email": "[email protected]",
"contact_phone": "+14155552671",
"contact_mobile": "+14155552671",
"contact_language": "NL",
"contact_nationality": "Dutch",
"contact_flight_number": "KL 445",
"contact_loyalty_number": "46564564564547476",
"contact_birth_place": "Amsterdam",
"contact_birth_date": "2025-08-05",
"contact_passport": "JXXXXXXX",
"contact_gender": "MALE",
"contact_age": 19,
"contact_room_number": "523",
"contact_website": "example.com",
"contact_company": {
"company_name": "Example LTD.",
"company_registration_number": "text",
"company_tax_number": "text"
},
"contact_classification": "IMPORTANT",
"contact_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"contact_notes": [
{
"note_value": "Wheelchair assistance required.",
"note_created": "2025-08-05T12:49:33.373Z",
"note_recipients": [
"SUPPLIER"
],
"note_creator_account_type": "DISTRIBUTOR",
"note_creator_user_name": "Andrew",
"note_creator_user_email": "[email protected]",
"note_creator_user_role": "Supervisor"
}
],
"contact_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"contact_created": "2025-08-05T12:49:33.373Z",
"contact_modified": "2025-08-05T12:49:33.373Z"
}
],
"location_opening_times": [
{
"opening_time_valid_from": "2025-08-05",
"opening_time_valid_till": "2025-08-05",
"opening_time_details": [
{
"opening_time_day": "THURSDAY",
"opening_time_start": "09:00:00",
"opening_time_end": "17:00:00"
}
]
}
],
"location_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"location_products": [
"PRODUCT_ID_123"
]
}
]
}
}
Retrieve a list of all available product destinations linked to your account.
Destinations are high-level geographic or thematic groupings, such as cities, regions, or popular areas, used to categorize and organize products. They help users discover experiences based on broader travel intents or well-known travel hubs.
[FILTER] on distributor_id
.
501
Destination IDs.
["4"]
[PAGING] Items Per Page - Allows user's to configure the items_per_page
value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.
This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.
Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page
response element in calculating actual page size.
10
Example: 5
[PAGING] Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?start_index=200.
1
Example: 1
[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items.
This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The page_index
and total_pages
properties are used for this style of paging.
1
Example: 1
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Destination Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/destinations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"destination_id": "3742",
"destination_parent_id": "3742",
"destination_name": "Paris",
"destination_slug": "paris-3742",
"destination_description": "City of Love",
"destination_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"destination_products": [
"PRODUCT_ID_123"
]
}
]
}
}
Retrieve a list of all available product categories associated with your account.
Categories represent thematic groupings, such as "Museums", "Tours", or "Outdoor Activities", used to classify products based on the type of experience they offer. They support intuitive browsing, filtering, and product discovery.
[FILTER] on distributor_id
.
501
Category IDs.
["4"]
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Category Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/categories HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"total_items": 10,
"items": [
{
"category_id": "3743",
"category_name": "Museums",
"category_description": "Art Museums",
"category_parent_id": "2393",
"category_type": "SYSTEM",
"category_slug": "museums-3743",
"category_icon": "https://prioticket.com/qrcodes/categoryupload/img_1438406614_museum.png",
"category_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"category_products": [
"PRODUCT_ID_123"
]
}
]
}
}
Retrieve product recommendations tailored to enhance user experience.
Recommendations help suggest related or popular products, often based on business rules, location, or user behavior.
[FILTER] on distributor_id
.
501
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Recommendation Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/recommendations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"total_items": 10,
"items": [
{
"recommendation_id": "3743",
"recommendation_title": "Christmas Special ",
"recommendation_description": "Hot selling",
"recommendation_start_date": "2025-08-05T12:49:33.373Z",
"recommendation_end_date": "2025-08-05T12:49:33.373Z",
"recommendation_products": [
"PRODUCT_ID_123"
]
}
]
}
}
Retrieve all available routes associated with your account.
Routes define the transportation or itinerary structure of a product, typically used in activities like hop-on hop-off buses, boat tours, or guided trips with fixed paths.
[FILTER] on distributor_id
.
501
[FILTER] on product_id
.
PRODUCT_ID_123
[PAGING] Items Per Page - Allows user's to configure the items_per_page
value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.
This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.
Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page
response element in calculating actual page size.
10
Example: 5
[PAGING] Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?start_index=200.
1
Example: 1
[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items.
This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The page_index
and total_pages
properties are used for this style of paging.
1
Example: 1
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Routes Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/routes HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"route_active": true,
"route_id": "ROUTEID123456",
"route_name": "Green Route",
"route_description": "text",
"route_color": "#FF0000",
"route_type": "DRIVING",
"route_start_time": "09:00:00",
"route_end_time": "20:00:00",
"route_duration": 90,
"route_frequency": 8,
"route_audio_languages": [
"en",
"jp",
"nl"
],
"route_live_languages": [
"en",
"jp",
"nl"
],
"route_products": [
"PRODUCT_ID_123"
],
"route_locations": [
{
"route_location_active": true,
"route_location_id": "LOCATIONID123456",
"route_location_name": "Paseo de Coln",
"route_location_description": "Route description.",
"route_location_url": "https://example.com",
"route_location_latitude": "37.383752",
"route_location_longitude": "-5.997302999999988",
"route_location_stopover": true
}
]
}
]
}
}
This API returns all the currency rates on a daily basis.
[FILTER] on currency_date
.
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Currency Rates Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/currency_rates HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"total_items": 10,
"items": [
{
"currency_base": "USD",
"currency_date": "2025-08-05",
"currency_rates": {
"CAD": "1.260046",
"CHF": "0.933058"
}
}
]
}
}
Retrieve tax configurations applicable to your products.
Taxes can be region-specific and vary by product type, helping ensure accurate pricing and compliance.
[FILTER] on distributor_id
.
501
[FILTER] on product_id
.
PRODUCT_ID_123
Country or State of the related tax authority.
India
[PAGING] Items Per Page - Allows user's to configure the items_per_page
value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.
This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.
Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page
response element in calculating actual page size.
10
Example: 5
[PAGING] Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?start_index=200.
1
Example: 1
[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items.
This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The page_index
and total_pages
properties are used for this style of paging.
1
Example: 1
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Tax Rates Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/taxes HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"tax_id": "TAX_ID_123",
"tax_name": "VAT Regular 20%",
"tax_type": "VAT",
"tax_rate": "20.00",
"tax_region": "Netherlands"
}
]
}
}
Retrieve a comprehensive list of all products available via your distributor account. Each product includes core metadata like title, description, availability, and configuration details. Extensive filtering is available but do note that certain filters might affect performance.
By default only the latest revision will be returned.
[FILTER] on distributor_id
.
501
[CONFIG] content language to return in the response.
Languages are defined in ISO-639-1 format. If the defined language is not available, the product will be returned in the product_default_language
.
en
[FILTER] on product content.
Searches the fields:
product_id
(Upcoming)product_title
product_short_description
product_long_description
product_supplier_name
product_highlights
product_includes
Regex used: '(?is)^(?=.\b(query1.)\b)(?=.\b(query2.)\b).*'
- Case insensitive.
- Positive lookaheads and word boundaries to make word order not matter and to recognize word spacing.
tour museum amsterdam
[FILTER] on product_start_date
.
[FILTER] on product_end_date
.
[FILTER] on product_duration
. (Minutes)
90
[FILTER] on product_booking_quantity_min
.
1
[FILTER] on product_booking_quantity_max
.
3
[FILTER] on product_id
.
["PRODUCT_ID_123"]
[FILTER] on product_supplier_id
.
["PRODUCT_SUPPLIER_ID"]
[FILTER] on product_reseller_id
.
["PRODUCT_RESELLER_ID"]
[FILTER] on categories (category_id
).
["PRODUCT_CATEGORY_ID_123"]
[FILTER] on destinations (destination_id
).
["PRODUCT_DESTINATION_ID_123"]
[FILTER] on Tag.
Combination of product_tag_id
, product_tag_description
and product_tag_group
.
["PRODUCT_TAG"]
[FILTER] on available product languages.
Languages are defined in ISO-639-1 format.
Products without a language value will not be returned.
["en"]
[FILTER] on location_id
.
["PRODUCT_LOCATION_ID"]
[FILTER] on country ( ISO-3166-1 alpha-2).
["NL"]
[FILTER] on Product Currency Code, according to ISO-4217.
["EUR"]
[FILTER] Include products with capacity (product_availability:true
).
true
Example: true
[FILTER] Return product_favorite:true
only.
true
[FILTER] on an astronomical body. (Reserved for future use)
EARTH
Possible values: [FILTER] on products modified after the given date.
- This includes newly created products.
- Deleted products are ignored and should be handled manually.
For caching purposes we recommend using the If-Modified-Since
header instead.
[SEARCH] on keywords.
This API provides full-text (wildcard) search capabilities.
Only results linked to your account will be returned and searching is only available in case cache is enabled (cache:true
)
[CONFIG] (ADVANCED) account view type.
This value defaults and is limited to the scope of your credentials.
DISTRIBUTOR
Possible values: Method of sorting.
PRODUCT_MODIFIED
Example: PRODUCT_CREATED
Possible values: Order of sorting.
DESC
Example: ASC
Possible values: [PAGING] Items Per Page - Allows user's to configure the items_per_page
value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.
This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.
Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page
response element in calculating actual page size.
10
Example: 5
[PAGING] Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?start_index=200.
1
Example: 1
[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items.
This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The page_index
and total_pages
properties are used for this style of paging.
1
Example: 1
[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.
true
Example: true
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product List Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"product_id": "PRODUCT_ID_123",
"product_external_id": "PRODUCT_EXTERNAL_ID_123",
"product_internal_reference": "PRODUCT_INTERNAL_REF",
"product_distributor_id": "501",
"product_distributor_name": "Demo Distributor",
"product_reseller_id": "1300",
"product_reseller_name": "Demo reseller",
"product_market_admin_id": "345345342",
"product_market_admin_name": "Test Market Admin",
"product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
"product_supplier_admin_name": "Supplier Admin Name",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_source_id": "34564574",
"product_source_name": "Prioticket",
"product_contract_source_id": "text",
"product_contract_source_name": "Prioticket",
"product_default_language": "en",
"product_version": 1,
"product_color": "#b9f2ff",
"product_slug": "westminster-to-greenwich-sightseeing-cruise-t71379",
"product_supplier_url": "https://example.com/",
"product_supplier_key_public": "b7064e02-37a5-9ce5-ff63-b7536b364102",
"product_from_price": "16.40",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_booking_start_date": "2025-08-05T12:49:33.373Z",
"product_booking_advance_time_min": 60,
"product_booking_advance_time_max": 1440,
"product_booking_advance_time_min_type": "TIMESLOT_START_TIME",
"product_booking_advance_time_max_type": "TIMESLOT_START_TIME",
"product_booking_quantity_min": 1,
"product_booking_quantity_max": 5,
"product_turnout_time": 15,
"product_duration": 90,
"product_show_capacity_count": 25,
"product_third_party": false,
"product_seasonal_pricing": true,
"product_quantity_pricing": true,
"product_daily_pricing": true,
"product_dynamic_pricing": true,
"product_relation_details_visible": true,
"product_timepicker_visible": true,
"product_cluster": true,
"product_combi": true,
"product_bundle": true,
"product_addon": true,
"product_availability": true,
"product_availability_assigned": true,
"product_capacity": true,
"product_traveldate_required": false,
"product_cancellation_allowed": true,
"product_overbooking_allowed": false,
"product_past_date_booking_allowed": true,
"product_capacity_id": "43525235",
"product_capacity_shared_id": "435252453",
"product_capacity_type": "OWN",
"product_admission_type": "TIME_PERIOD",
"product_catalogue_status": "ACTIVE",
"product_class": "STANDARD",
"product_pickup_point": "MANDATORY",
"product_pickup_point_details": [
{
"pickup_point_id": "PICKUP_POINT_ID_123",
"pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
"pickup_point_type": "FIXED",
"pickup_point_description": "Meet at the Wyndham Apollo hotel.",
"pickup_point_location": "LOCATION_ID_123",
"pickup_point_time": "10:00",
"pickup_point_times": [
"10:00"
],
"pickup_point_duration": 30,
"pickup_point_availability_dependency": false
}
],
"product_content": {
"product_title": "Test Product",
"product_supplier_name": "Test Museum",
"product_duration_text": "1.5 hour",
"product_short_description": "Rijksmuseum Entrance product + Multimediatour",
"product_long_description": "Experience a beautiful evening cruise during the Amsterdam Light Festival without queueing up. Besides a place on a date and time of your choice, this cruise also includes a drink and a snack.",
"product_additional_information": "Some additional information.",
"product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
"product_booking_url": "https://book.prioticket.com/productABC",
"product_landing_page_view_url": "https://book.prioticket.com",
"product_favorite": false,
"product_highlights": [
{
"highlight_description": "Audio commentary in 21 languages through our Personal Audio System."
}
],
"product_includes": [
{
"include_description": "Free non-alcoholic beverages"
}
],
"product_excludes": [
{
"exclude_description": "Alcoholic beverages"
}
],
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
]
},
"product_redemption_rules": {
"redemption_has_duration": true,
"redemption_duration_time": 86400,
"redemption_duration_type": "SCAN",
"redemption_count_type": "LIMITED",
"redemption_count_value": 5
},
"product_code_settings": {
"product_code_format": "QR_CODE",
"product_code_source": "PRIO",
"product_group_code": true,
"product_combi_code": true,
"product_city_card": false,
"product_voucher_settings": "SINGLE"
},
"product_payment_detail": {
"product_payment_currency": {
"currency_code": "EUR"
}
},
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
],
"product_options": [
{
"option_id": "PRODUCT_OPTION_ID",
"option_name": "Drinks",
"option_description": "What kind of drinks should be included?",
"option_type": "SINGLE",
"option_selection_type": "MANUAL",
"option_count_type": "FLEXIBLE",
"option_count_visible": true,
"option_list_type": "PRODUCT_TYPE",
"option_price_type": "PRODUCT_TYPE",
"option_booking_quantity_min": 1,
"option_booking_quantity_max": 5,
"option_quantity_min": 1,
"option_quantity_max": 5,
"option_discount_applicable": false,
"option_mandatory": true,
"option_values": [
{
"value_id": "4921",
"value_name": "Wine",
"value_price": "8.00",
"value_cost_price": "2",
"value_percentage": "20",
"value_price_tax_id": "TAX_ID_123",
"value_price_tax_amount": "0.65",
"value_product_type_id": "ADULT_123",
"value_quantity_min": 1,
"value_quantity_max": 5
}
]
}
],
"product_cancellation_policies": [
{
"cancellation_description": "Please cancel any booking 1 hour in advance.",
"cancellation_type": "TRAVEL_DATE",
"cancellation_fee_threshold": 3600,
"cancellation_fee_percentage": 20.5,
"cancellation_fee_amount": "5.00"
}
],
"product_opening_times": [
{
"opening_time_valid_from": "2025-08-05",
"opening_time_valid_till": "2025-08-05",
"opening_time_details": [
{
"opening_time_day": "THURSDAY",
"opening_time_start": "09:00:00",
"opening_time_end": "17:00:00"
}
]
}
],
"product_flags": [
{
"flag_id": "223425262",
"flag_name": "Stock Code",
"flag_type": "FLAG",
"flag_value_id": "123BCa1",
"flag_value": "123BCa1"
}
],
"product_locations": [
{
"location_id": "LOCATION_ID_123",
"location_label": "Theaters",
"location_name": "Theater 1",
"location_description": "The largest theater in Amsterdam.",
"location_url": "text",
"location_type": "VENUE",
"location_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"location_contacts": [
{
"contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
"contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
"contact_version": 2,
"contact_number": "4573246",
"contact_type": "GUEST",
"contact_title": "Mr.",
"contact_name_first": "John",
"contact_name_last": "Doe",
"contact_email": "[email protected]",
"contact_phone": "+14155552671",
"contact_mobile": "+14155552671",
"contact_language": "NL",
"contact_nationality": "Dutch",
"contact_flight_number": "KL 445",
"contact_loyalty_number": "46564564564547476",
"contact_birth_place": "Amsterdam",
"contact_birth_date": "2025-08-05",
"contact_passport": "JXXXXXXX",
"contact_gender": "MALE",
"contact_age": 19,
"contact_room_number": "523",
"contact_website": "example.com",
"contact_company": {
"company_name": "Example LTD.",
"company_registration_number": "text",
"company_tax_number": "text"
},
"contact_classification": "IMPORTANT",
"contact_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"contact_notes": [
{
"note_value": "Wheelchair assistance required.",
"note_created": "2025-08-05T12:49:33.373Z",
"note_recipients": [
"SUPPLIER"
],
"note_creator_account_type": "DISTRIBUTOR",
"note_creator_user_name": "Andrew",
"note_creator_user_email": "[email protected]",
"note_creator_user_role": "Supervisor"
}
],
"contact_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"contact_created": "2025-08-05T12:49:33.373Z",
"contact_modified": "2025-08-05T12:49:33.373Z"
}
],
"location_opening_times": [
{
"opening_time_valid_from": "2025-08-05",
"opening_time_valid_till": "2025-08-05",
"opening_time_details": [
{
"opening_time_day": "THURSDAY",
"opening_time_start": "09:00:00",
"opening_time_end": "17:00:00"
}
]
}
],
"location_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"location_pickup_point": true
}
],
"product_cluster_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_combi_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_bundle_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_addon_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_categories": [
"PRODUCT_CATEGORY_ID_123"
],
"product_recommendations": [
"PRODUCT_RECOMMENDATION_ID_123"
],
"product_destinations": [
"PRODUCT_DESTINATION_ID_123"
],
"product_languages": [
"en",
"es",
"jp"
],
"product_content_languages": [
"en",
"nl"
],
"product_guide_languages": [
{
"language_codes": [
"nl"
],
"language_type": "GUIDE_AUDIO"
}
],
"product_routes": [
"PRODUCT_ROUTE_ID_123"
],
"product_notes": [
{
"note_value": "Wheelchair assistance required.",
"note_created": "2025-08-05T12:49:33.373Z",
"note_recipients": [
"SUPPLIER"
],
"note_creator_account_type": "DISTRIBUTOR",
"note_creator_user_name": "Andrew",
"note_creator_user_email": "[email protected]",
"note_creator_user_role": "Supervisor"
}
],
"product_google_categories": "text",
"product_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"product_created": "2025-08-05T12:49:33.373Z",
"product_created_name": "[email protected]",
"product_created_email": "[email protected]",
"product_modified": "2025-08-05T12:49:33.373Z",
"product_modified_name": "[email protected]",
"product_modified_email": "[email protected]"
}
]
}
}
This API provides all the product information that is available in the Prio system for the requested product (product_id
).
Unique identifier for the product assigned by Prio.
PRODUCT_ID_123
[FILTER] on distributor_id
.
501
Language code to request language specific product data. If left empty or language is not available (not included in product_content_languages
), the response will be in the default language i.e. English. The actual language returned can also be found inside the Content-Language
header.
en
[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.
true
Example: true
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Detail Response
Not Modified
The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a If-None-Match
or a If-Modified-Since
header.
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/{product_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"product": {
"product_id": "PRODUCT_ID_123",
"product_external_id": "PRODUCT_EXTERNAL_ID_123",
"product_internal_reference": "PRODUCT_INTERNAL_REF",
"product_distributor_id": "501",
"product_distributor_name": "Demo Distributor",
"product_reseller_id": "1300",
"product_reseller_name": "Demo reseller",
"product_market_admin_id": "345345342",
"product_market_admin_name": "Test Market Admin",
"product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
"product_supplier_admin_name": "Supplier Admin Name",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_source_id": "34564574",
"product_source_name": "Prioticket",
"product_contract_source_id": "text",
"product_contract_source_name": "Prioticket",
"product_default_language": "en",
"product_version": 1,
"product_color": "#b9f2ff",
"product_slug": "westminster-to-greenwich-sightseeing-cruise-t71379",
"product_supplier_url": "https://example.com/",
"product_supplier_key_public": "b7064e02-37a5-9ce5-ff63-b7536b364102",
"product_from_price": "16.40",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_booking_start_date": "2025-08-05T12:49:33.373Z",
"product_booking_advance_time_min": 60,
"product_booking_advance_time_max": 1440,
"product_booking_advance_time_min_type": "TIMESLOT_START_TIME",
"product_booking_advance_time_max_type": "TIMESLOT_START_TIME",
"product_booking_quantity_min": 1,
"product_booking_quantity_max": 5,
"product_turnout_time": 15,
"product_duration": 90,
"product_show_capacity_count": 25,
"product_third_party": false,
"product_seasonal_pricing": true,
"product_quantity_pricing": true,
"product_daily_pricing": true,
"product_dynamic_pricing": true,
"product_relation_details_visible": true,
"product_timepicker_visible": true,
"product_cluster": true,
"product_combi": true,
"product_bundle": true,
"product_addon": true,
"product_availability": true,
"product_availability_assigned": true,
"product_capacity": true,
"product_traveldate_required": false,
"product_cancellation_allowed": true,
"product_overbooking_allowed": false,
"product_past_date_booking_allowed": true,
"product_capacity_id": "43525235",
"product_capacity_shared_id": "435252453",
"product_capacity_type": "OWN",
"product_admission_type": "TIME_PERIOD",
"product_catalogue_status": "ACTIVE",
"product_class": "STANDARD",
"product_pickup_point": "MANDATORY",
"product_pickup_point_details": [
{
"pickup_point_id": "PICKUP_POINT_ID_123",
"pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
"pickup_point_type": "FIXED",
"pickup_point_description": "Meet at the Wyndham Apollo hotel.",
"pickup_point_location": "LOCATION_ID_123",
"pickup_point_time": "10:00",
"pickup_point_times": [
"10:00"
],
"pickup_point_duration": 30,
"pickup_point_availability_dependency": false
}
],
"product_content": {
"product_title": "Test Product",
"product_supplier_name": "Test Museum",
"product_duration_text": "1.5 hour",
"product_short_description": "Rijksmuseum Entrance product + Multimediatour",
"product_long_description": "Experience a beautiful evening cruise during the Amsterdam Light Festival without queueing up. Besides a place on a date and time of your choice, this cruise also includes a drink and a snack.",
"product_additional_information": "Some additional information.",
"product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
"product_booking_url": "https://book.prioticket.com/productABC",
"product_landing_page_view_url": "https://book.prioticket.com",
"product_favorite": false,
"product_highlights": [
{
"highlight_description": "Audio commentary in 21 languages through our Personal Audio System."
}
],
"product_includes": [
{
"include_description": "Free non-alcoholic beverages"
}
],
"product_excludes": [
{
"exclude_description": "Alcoholic beverages"
}
],
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
]
},
"product_redemption_rules": {
"redemption_has_duration": true,
"redemption_duration_time": 86400,
"redemption_duration_type": "SCAN",
"redemption_count_type": "LIMITED",
"redemption_count_value": 5
},
"product_code_settings": {
"product_code_format": "QR_CODE",
"product_code_source": "PRIO",
"product_group_code": true,
"product_combi_code": true,
"product_city_card": false,
"product_voucher_settings": "SINGLE"
},
"product_payment_detail": {
"product_payment_currency": {
"currency_code": "EUR"
}
},
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
],
"product_options": [
{
"option_id": "PRODUCT_OPTION_ID",
"option_name": "Drinks",
"option_description": "What kind of drinks should be included?",
"option_type": "SINGLE",
"option_selection_type": "MANUAL",
"option_count_type": "FLEXIBLE",
"option_count_visible": true,
"option_list_type": "PRODUCT_TYPE",
"option_price_type": "PRODUCT_TYPE",
"option_booking_quantity_min": 1,
"option_booking_quantity_max": 5,
"option_quantity_min": 1,
"option_quantity_max": 5,
"option_discount_applicable": false,
"option_mandatory": true,
"option_values": [
{
"value_id": "4921",
"value_name": "Wine",
"value_price": "8.00",
"value_cost_price": "2",
"value_percentage": "20",
"value_price_tax_id": "TAX_ID_123",
"value_price_tax_amount": "0.65",
"value_product_type_id": "ADULT_123",
"value_quantity_min": 1,
"value_quantity_max": 5
}
]
}
],
"product_cancellation_policies": [
{
"cancellation_description": "Please cancel any booking 1 hour in advance.",
"cancellation_type": "TRAVEL_DATE",
"cancellation_fee_threshold": 3600,
"cancellation_fee_percentage": 20.5,
"cancellation_fee_amount": "5.00"
}
],
"product_opening_times": [
{
"opening_time_valid_from": "2025-08-05",
"opening_time_valid_till": "2025-08-05",
"opening_time_details": [
{
"opening_time_day": "THURSDAY",
"opening_time_start": "09:00:00",
"opening_time_end": "17:00:00"
}
]
}
],
"product_flags": [
{
"flag_id": "223425262",
"flag_name": "Stock Code",
"flag_type": "FLAG",
"flag_value_id": "123BCa1",
"flag_value": "123BCa1"
}
],
"product_locations": [
{
"location_id": "LOCATION_ID_123",
"location_label": "Theaters",
"location_name": "Theater 1",
"location_description": "The largest theater in Amsterdam.",
"location_url": "text",
"location_type": "VENUE",
"location_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"location_contacts": [
{
"contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
"contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
"contact_version": 2,
"contact_number": "4573246",
"contact_type": "GUEST",
"contact_title": "Mr.",
"contact_name_first": "John",
"contact_name_last": "Doe",
"contact_email": "[email protected]",
"contact_phone": "+14155552671",
"contact_mobile": "+14155552671",
"contact_language": "NL",
"contact_nationality": "Dutch",
"contact_flight_number": "KL 445",
"contact_loyalty_number": "46564564564547476",
"contact_birth_place": "Amsterdam",
"contact_birth_date": "2025-08-05",
"contact_passport": "JXXXXXXX",
"contact_gender": "MALE",
"contact_age": 19,
"contact_room_number": "523",
"contact_website": "example.com",
"contact_company": {
"company_name": "Example LTD.",
"company_registration_number": "text",
"company_tax_number": "text"
},
"contact_classification": "IMPORTANT",
"contact_address": {
"name": "Start of the Tour / My house / Office / John Doe",
"street": "Amstel 1",
"addition": "Apt B1",
"city": "Amsterdam",
"postal_code": "1011 PN",
"region": "Noord-Holland",
"country": "The Netherlands",
"country_code": "NL",
"place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"latitude": "52.3785323",
"longitude": "4.893942",
"notes": "It's on the fourth floor"
},
"contact_notes": [
{
"note_value": "Wheelchair assistance required.",
"note_created": "2025-08-05T12:49:33.373Z",
"note_recipients": [
"SUPPLIER"
],
"note_creator_account_type": "DISTRIBUTOR",
"note_creator_user_name": "Andrew",
"note_creator_user_email": "[email protected]",
"note_creator_user_role": "Supervisor"
}
],
"contact_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"contact_created": "2025-08-05T12:49:33.373Z",
"contact_modified": "2025-08-05T12:49:33.373Z"
}
],
"location_opening_times": [
{
"opening_time_valid_from": "2025-08-05",
"opening_time_valid_till": "2025-08-05",
"opening_time_details": [
{
"opening_time_day": "THURSDAY",
"opening_time_start": "09:00:00",
"opening_time_end": "17:00:00"
}
]
}
],
"location_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"location_pickup_point": true
}
],
"product_cluster_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_combi_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_bundle_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_addon_details": [
{
"product_id": "PRODUCT_RELATION_123",
"product_parent_id": "PRODUCT_PARENT_ID_123",
"product_supplier_id": "PRODUCT_SUPPLIER_ID",
"product_supplier_name": "Test Museum",
"product_title": "Test Product",
"product_from_price": "16.40",
"product_currency_code": "USD",
"product_start_date": "2025-08-05T12:49:33.373Z",
"product_end_date": "2025-08-05T12:49:33.373Z",
"product_timepicker_visible": true,
"product_traveldate_dependency": true,
"product_recommended": true,
"product_booking_window_product_id": "PRODUCT_ID_123",
"product_booking_window_start_time": 1440,
"product_booking_window_end_time": 2160,
"product_class": "STANDARD",
"product_admission_type": "TIME_PERIOD",
"product_images": [
{
"image_type": "BANNER",
"image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
}
],
"product_type_seasons": [
{
"product_type_season_label": "Summer Season",
"product_type_season_start_date": "2025-08-05T12:49:33.373Z",
"product_type_season_end_date": "2025-08-05T12:49:33.373Z",
"product_type_season_details": [
{
"product_type": "ADULT",
"product_type_class": "STANDARD",
"product_type_id": "PRODUCT_TYPE_ID_123",
"product_parent_type_id": "text",
"product_type_label": "Adult",
"product_type_description": "Standard Entry Fee",
"product_type_age_from": 18,
"product_type_age_to": 65,
"product_type_pax": 1,
"product_type_capacity": 1,
"product_type_quantity_min": 1,
"product_type_quantity_max": 10,
"product_type_price_tax_id": "TAX_ID_123",
"product_type_price_type": "INDIVIDUAL",
"product_type_pricing": {
"product_type_list_price": "20.50",
"product_type_discount": "2.00",
"product_type_discount_percentage": "20.00",
"product_type_sales_price": "18.50",
"product_type_distributor_price": "16.40",
"product_type_reseller_price": "14.00",
"product_type_market_price": "12.00",
"product_type_supplier_price": "10.00",
"product_type_display_price": true
},
"product_type_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
],
"product_type_quantity_variations": [
{
"product_type_quantity_variation_min": 1,
"product_type_quantity_variation_max": 5,
"product_type_quantity_variation_discount": "-1.50",
"product_type_quantity_variation_amount": "-2.50",
"product_type_quantity_variation_price_type": "SALES_PRICE",
"product_type_quantity_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
],
"product_type_daily_variations": [
{
"product_type_daily_variation_label": "Peak Hour",
"product_type_daily_variation_start_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_end_date": "2025-08-05T12:49:33.373Z",
"product_type_daily_variation_start_time": "09:00",
"product_type_daily_variation_end_time": "13:00",
"product_type_daily_variation_price_type": "SALES_PRICE",
"product_type_daily_variation_details": [
{
"product_type_daily_variation_amount": "-1.00",
"product_type_daily_variation_day": "THURSDAY",
"product_type_daily_variation_fees": [
{
"fee_type": "SERVICE",
"fee_amount": "0.50",
"fee_percentage": "25.00",
"fee_tax_amount": "0.65",
"fee_included": true
}
]
}
]
}
]
}
]
}
]
}
],
"product_categories": [
"PRODUCT_CATEGORY_ID_123"
],
"product_recommendations": [
"PRODUCT_RECOMMENDATION_ID_123"
],
"product_destinations": [
"PRODUCT_DESTINATION_ID_123"
],
"product_languages": [
"en",
"es",
"jp"
],
"product_content_languages": [
"en",
"nl"
],
"product_guide_languages": [
{
"language_codes": [
"nl"
],
"language_type": "GUIDE_AUDIO"
}
],
"product_routes": [
"PRODUCT_ROUTE_ID_123"
],
"product_notes": [
{
"note_value": "Wheelchair assistance required.",
"note_created": "2025-08-05T12:49:33.373Z",
"note_recipients": [
"SUPPLIER"
],
"note_creator_account_type": "DISTRIBUTOR",
"note_creator_user_name": "Andrew",
"note_creator_user_email": "[email protected]",
"note_creator_user_role": "Supervisor"
}
],
"product_google_categories": "text",
"product_custom_fields": [
{
"custom_field_name": "Custom Field Name",
"custom_field_value": "Custom Field Value"
}
],
"product_created": "2025-08-05T12:49:33.373Z",
"product_created_name": "[email protected]",
"product_created_email": "[email protected]",
"product_modified": "2025-08-05T12:49:33.373Z",
"product_modified_name": "[email protected]",
"product_modified_email": "[email protected]"
}
}
}
The availability API is used to make sure that the product or service is available on the desired date and time slot.
Depending on the product_availability
parameter given in the product feed, the availability needs to be requested using this endpoint prior to making a booking.
This endpoint should be called in order to get up-to-date availability information for a product with managed capacity. The response will contain the availability for each time slot of the requested product that lies within the specified date range. Availability Logic* Please consult our dedicated "Availability" section for more information on how to use this endpoint.
Caching Recommendations
Please consult our dedicated "Caching" section for more information on how to use this endpoint.
Notes
Dates and times are always relative to the supplier timezone and all offsets are automatically adjusted based on daylight saving time (DST).
A maximum of 90 days is allowed. If you would like to batch availability for a longer period, please make multiple calls.
Unique identifier for the product assigned by Prio.
[FILTER] on distributor_id
.
501
[FILTER] From which date availability is requested.
If supplied with to_date
, then availability request is for a date range.
If supplied without to_date
, then for a single date availability is requested.
[FILTER] Till which date availability is requested.
If this is empty, availability will be searched for the given from_date
only.
[FILTER] Include disabled / closed (availability_active:false
) entries.
false
Example: true
[FILTER] on availability_capacity_id
.
[FILTER] The minimum remaining availability_spots_open
.
[FILTER] The iteration depth of the included entries of the sub-products in the response. This will not apply to sub-products which have shared capacity linked to the main product.
Example Setup:
Product 101 (Main)
Product 201 (Sub)
Product 301 (Nested)
Product 302 (Nested)
Product 202 (Sub)
Product 401 (Nested)
Product 402 (Nested)
sub_products_depth:0
will return Product 101.sub_products_depth:1
will return Product 101, 201 and 202.sub_products_depth:2
will return Product 101, 201, 202, 301, 302, 401 and 402.
0
Example: 1
[FILTER] Only show entries modified after the given date.
Fetch incremental updates through this endpoint.
[CACHE] The If-Modified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.
If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified
response header of a previous request will contain the date of last modification.
Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.
Wed, 21 Jan 2022 07:28:00 GMT
Product Availability Response
Invalid Request
The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Authentication Failed
The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
Forbidden
The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the scope
attribute with the scope necessary to access the protected resource.
Method Not Allowed
The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource.
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
Not Acceptable
The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Unprocessable Entity
The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
Too Many Requests
The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
Internal Server Error
The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request.
The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
Bad Gateway
The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
Service Unavailable
The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.
The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
Gateway Timeout
The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request.
The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
GET /v3.8/distributor/products/{product_id}/availability HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"api_version": "3.8.0",
"data": {
"kind": "location",
"current_item_count": 10,
"items_per_page": 10,
"start_index": 1,
"total_items": 200,
"page_index": 1,
"total_pages": 20,
"items": [
{
"availability_id": "20191026090010006526",
"availability_capacity_id": "43525235",
"availability_capacity_shared_id": "435252453",
"availability_label": "Morning",
"availability_product_id": "3532",
"availability_admission_type": "TIME_PERIOD",
"availability_active": true,
"availability_duration": 3600,
"availability_from_date_time": "2025-08-05T12:49:33.373Z",
"availability_to_date_time": "2025-08-05T12:49:33.373Z",
"availability_booking_window_start": "2025-08-05T12:49:33.373Z",
"availability_booking_window_end": "2025-08-05T12:49:33.373Z",
"availability_spots": {
"availability_spots_total": 100,
"availability_spots_reserved": 15,
"availability_spots_booked": 10,
"availability_spots_open": 75
},
"availability_created": "2025-08-05T12:49:33.373Z",
"availability_modified": "2025-08-05T12:49:33.373Z"
}
]
}
}
Was this helpful?