Availability

Room for one more?

Get realtime availability & pricing.

Prioticket provides two distinct endpoints to support accurate availability and pricing:

  • Availability & Pricing Variations API – Returns detailed pricing rules and logic, ideal for advanced UI behavior or transparency in pricing explanations.

  • Availability & Calculated Pricing API – Returns real-time availability and final calculated pricing, optimized for booking flows and calendar rendering.

Each serves a different purpose in the booking journey. To implement them correctly and avoid common pitfalls (e.g. mismatched prices, missing availability, performance issues), please refer to the full documentation on GitBook.

Get Availability & Pricing Variations

get

Returns detailed pricing rules, variations, and conditions for the selected product.

Use this endpoint to understand why and how prices change, based on rules such as date-based pricing, quantity discounts, time-of-day rules, and other dynamic configurations.

Ideal for building advanced UIs that explain pricing logic to end users or trigger specific behaviors based on rule conditions.

📘 View full documentation on GitBook

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_idstring[]Optional

[FILTER] on product_id.

Example: ["PRODUCT_ID_123"]
from_datestring · dateRequired

[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.

to_datestring · dateOptional

[FILTER] Till which date availability is requested. If this is empty, availability will be searched for the given from_date only.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (availability_active:false) entries.

Default: falseExample: true
availability_capacity_idstringOptional

[FILTER] on availability_capacity_id.

spots_open_minintegerOptional

[FILTER] The minimum remaining availability_spots_open.

sub_products_depthintegerOptional

[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.
Default: 0Example: 1
Header parameters
If-Modified-SincestringOptional

[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.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200

Product Availability Response

application/json
get
GET /v3.8/distributor/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-05T13:08:09.706Z",
        "availability_to_date_time": "2025-08-05T13:08:09.706Z",
        "availability_booking_window_start": "2025-08-05T13:08:09.706Z",
        "availability_booking_window_end": "2025-08-05T13:08:09.706Z",
        "availability_spots": {
          "availability_spots_total": 100,
          "availability_spots_reserved": 15,
          "availability_spots_booked": 10,
          "availability_spots_open": 75
        },
        "availability_created": "2025-08-05T13:08:09.706Z",
        "availability_modified": "2025-08-05T13:08:09.706Z"
      }
    ]
  }
}
Beta

Get Availability & Calculated Pricing

post

Returns up-to-date availability and pre-calculated pricing based on the selected configuration and party size.

This endpoint provides simplified access to final pricing, ideal for rendering calendars and booking flows. For advanced use cases and detailed logic (e.g. price variations, rule-based conditions), refer to our extended documentation.

📘 View full documentation on GitBook

Authorizations
Path parameters
product_idstringRequired

Unique identifier for the product assigned by Prio.

Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
from_datestring · dateRequired

[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.

to_datestring · dateOptional

[FILTER] Till which date availability is requested. If this is empty, availability will be searched for the given from_date only.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (availability_active:false) entries.

Default: falseExample: true
availability_capacity_idstringOptional

[FILTER] on availability_capacity_id.

spots_open_minintegerOptional

[FILTER] The minimum remaining availability_spots_open.

sub_products_depthintegerOptional

[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.
Default: 0Example: 1
availability_modifiedstring · date-timeOptional

[FILTER] Only show entries modified after the given date.

Fetch incremental updates through this endpoint.

items_per_pageinteger · min: 1 · max: 200Optional

[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.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[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.

Default: 1Example: 1
pageinteger · min: 1Optional

[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.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[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.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Body

Request for availability & pricing.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
200

Product Availability Response

application/json
post
POST /v3.8/distributor/availability/{product_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "data": {
    "pricing": []
  }
}
{
  "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-05T13:08:09.706Z",
        "availability_to_date_time": "2025-08-05T13:08:09.706Z",
        "availability_booking_window_start": "2025-08-05T13:08:09.706Z",
        "availability_booking_window_end": "2025-08-05T13:08:09.706Z",
        "availability_spots": {
          "availability_spots_total": 100,
          "availability_spots_reserved": 15,
          "availability_spots_booked": 10,
          "availability_spots_open": 75
        },
        "availability_created": "2025-08-05T13:08:09.706Z",
        "availability_modified": "2025-08-05T13:08:09.706Z",
        "availability_pricing": [
          {
            "pricing_total": {
              "total_sales_price": "18.50",
              "total_distributor_price": "16.40",
              "total_reseller_price": "15.40",
              "total_market_price": "14.40",
              "total_supplier_price": "12.00",
              "total_fees": [
                {
                  "fee_type": "SERVICE",
                  "fee_amount": "0.50",
                  "fee_percentage": "25.00",
                  "fee_tax_amount": "0.65",
                  "fee_included": true
                }
              ]
            },
            "product_type_pricing": [
              {
                "product_type": "ADULT",
                "product_type_id": "PRODUCT_TYPE_ID_123",
                "product_type_price_type": "INDIVIDUAL",
                "product_type_sales_price": "18.50",
                "product_type_distributor_price": "16.40",
                "product_type_reseller_price": "15.40",
                "product_type_market_price": "14.40",
                "product_type_supplier_price": "10.00",
                "product_type_quantity_min": 1,
                "product_type_quantity_max": 10,
                "product_type_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

Was this helpful?