openapi: 3.0.0
info:
title: Fever - Reporting Authentication Sessions API
description: "Access detailed event sales data through a reliable REST API.\n\n# Introduction\n\nThe Fever Reporting API is a RESTful service that gives our partners access to in-depth insights into their event sales\non Fever. With this API, partners can retrieve comprehensive order data, including ticket information, financial details\n(revenue, surcharges, discounts), plan details, and basic customer data.\n\n## Primary Use Cases\n\nThis API is intended for partners who want to integrate Fever sales data into their internal systems—such as CRMs,\nBusiness Intelligence (BI) platforms, data warehouses, or ERP systems.\n\n## What It’s Not For\n\n**This API is not designed for real-time operational use cases like access control or live inventory tracking.**\nFor those needs, please refer to other Fever APIs specifically built for operational workflows.\n\n## Getting Access\n\nAccess to the Fever Reporting API is granted individually. To request access, reach out to your Fever sales\nrepresentative. They’ll walk you through the process. Once approved, you'll receive credentials to authenticate and\nbegin using the API.\n\n## Extended Documentation (for Authorized Partners)\n\nOnce your access is approved and credentials are issued, you’ll be able to view the full technical documentation here:\n[\U0001F512 Extended Documentation](https://data-reporting-api.prod.feverup.com/v1/documentation).\nIf you haven’t received your credentials yet, you can still access the public section of our documentation, which covers\nmost of the key technical information.\n\n## Playground (for Authorized Partners)\n\nAfter receiving your API credentials, you can access the [▶️ Fever - Reporting API Playground](https://data-reporting-api.prod.feverup.com/v1/playground) to explore\nand test available endpoints. The Playground is a Swagger UI interface that allows you to:\n- Browse detailed documentation for each endpoint\n- Execute live API requests directly from your browser\n- Authentication is required, so be sure to log in with your credentials before using the interface.\n\n## Status Page\n\nWe are committed to providing a reliable service for our users. To ensure transparency, you can subscribe to\nour [\U0001F4E3 Status Page](https://status.data-reporting-api.prod.feverup.com/) to stay informed about:\n\n- Scheduled maintenance that may temporarily affect the availability of the Reporting API\n- Ongoing incidents and issues impacting the performance or functionality of the API\n- Resolutions and updates on incidents in real-time\n\nBy subscribing, you will receive timely notifications via email, Slack, etc., keeping you updated on any events that\nmight impact your integration with the Reporting API.\n\n
\n# Quickstart\n\n### Code samples\n\n\n\U0001F40D Python code sample to extract data from /example-endpoint endpoint
\n\n```python\nimport json\nimport time\nfrom typing import Any\n\nimport requests\n\n\nclass RAPIConnector:\n def __init__(self, hostname: str, username: str, password: str) -> None:\n self.hostname = hostname\n self.__username = username\n self.__password = password\n self.__access_token = self.__get_access_token()\n\n def __get_access_token(self) -> str:\n response = requests.post(\n f\"https://{self.hostname}/v1/auth/token\", data={\"username\": self.__username, \"password\": self.__password}\n )\n response.raise_for_status()\n return response.json()[\"access_token\"]\n\n def __get_request_headers(self) -> dict[str, str]:\n return {\"Authorization\": f\"Bearer {self.__access_token}\"}\n\n def post_example_endpoint(self, search_params: dict[str, Any]) -> requests.Response:\n response = requests.post(\n f\"https://{self.hostname}/v1/example-endpoint/search\",\n headers=self.__get_request_headers(),\n json=search_params,\n )\n response.raise_for_status()\n return response\n\n def get_example_endpoint(\n self, search_id: str, page: int = 0) -> requests.Response:\n return requests.get(\n f\"https://{self.hostname}/v1/example-endpoint/search/{search_id}\",\n headers=self.__get_request_headers(),\n params={\"page\": page},\n )\n\n def fetch_all_order_items(self, search_params: dict[str, Any]) -> dict[str, Any]:\n search = self.post_example_endpoint(search_params=search_params)\n search_id = search.json()[\"search_id\"]\n is_ready = False\n n_attempts = 0\n while not is_ready and n_attempts < 10:\n search = self.get_example_endpoint(search_id=search_id)\n is_ready = True if search.status_code == 200 else False\n if not is_ready:\n print(f\"{search.status_code} - Waiting search result to be ready...\")\n n_attempts += 1\n time.sleep(1)\n if n_attempts == 10:\n raise Exception(\"Search result is not ready after 10 attempts\")\n\n # Fetch all pages\n data = search.json()[\"data\"]\n partition_info = search.json()[\"partition_info\"]\n total_rows = 0\n print(f\"Found a total of {len(partition_info)} partitions\")\n for partition in partition_info:\n page = partition[\"partition_num\"]\n total_rows += int(partition[\"rows\"])\n if page == 0:\n continue\n print(f\"Fetching partition {page}...\")\n search = self.get_example_endpoint(search_id=search_id, page=page)\n data += search.json()[\"data\"]\n assert len(data) == total_rows\n return data\n\n\ndef main() -> None:\n hostname = \"data-reporting-api.prod.feverup.com\"\n username = \"\"\n password = \"\"\n rapi_connector = RAPIConnector(hostname=hostname, username=username, password=password)\n search_params = {\n \"date_field\": \"CREATED_DATE_UTC\",\n \"date_from\": \"2024-01-01\",\n \"date_to\": \"2024-02-01\",\n }\n raw_path = \"example_endpoint_raw.json\"\n\n print(\"### Extracting data from Reporting API ###\")\n data = rapi_connector.fetch_all_order_items(search_params=search_params)\n\n # Save the raw data to a JSON file\n with open(raw_path, \"w\") as f:\n f.write(json.dumps(data, indent=4))\n print(f\"Data extracted and saved to {raw_path}\")\n\n\nif __name__ == \"__main__\":\n main()\n```\n\n \n\n## Authentication\n\nThe first step is to authenticate with the API. The API uses the OAuth 2.0 protocol to authenticate users.\nIn order to fetch a valid token, you must use the following endpoint:\n\n- `POST /oauth/token` -> It will return a valid `token` to be used in the following requests from your `username`\n and `password` credentials.\n\n\n➡️ Example curl request
\n\n```shell\ncurl -X 'POST' 'https://data-reporting-api.prod.feverup.com/v1/auth/token'\n -H 'Accept: application/json'\n -H 'Content-Type: application/x-www-form-urlencoded'\n -d 'username=&password='\n```\n\nRemember to replace `` and `` with the correct values.\n \n\n\n➡️ Example response
\n\n```json\n{\n \"access_token\": \"\",\n \"token_type\": \"bearer\"\n}\n```\n\n \n\n## How to request data for any endpoint in the Reporting API?\n\nThe approach is analogous for all the endpoints in the API. The API works with asynchronous requests that return\npaginated results. This means that for every request, you will need to follow these steps:\n\n1. Create a request asynchronously, in order to obtain a **search ID**. When creating this request, certain parameters\n might be requested in order to filter the expected data, like entity IDs, dates, etc.\n2. Fetch the paginated results for the requested data. This step will require the **search ID** obtained in the previous\n step, and it will return the paginated data for the requested report.\n\n\n➡️ Example requesting data for /reports/order-items endpoint
\n\n### 1. Create the request asynchronously to get order items data\n\nThe first step is to create a new search asynchronously in order to fetch the order items. You can do this by sending\na `POST` request to the endpoint.\n\n- `POST /xxx/search`: It will create a new search. The request body must contain the search criteria, allowing to search\n by creation or update date among other parameters, depending on the endpoint itself. The response will contain the *\n *search ID** that you can later use to fetch the paginated result.\n\n\n➡️ Example curl request
\n\n ```shell\n curl -X 'POST' 'https://data-reporting-api.prod.feverup.com/v1/xxx/search'\n -H 'accept: application/json'\n -H 'Authorization: Bearer '\n -H 'Content-Type: application/json'\n -d '{ \"param_a\": \"\" }'\n ```\n\nRemember to replace `` with the correct value. You can check all the accepted parameters in the\nendpoints documentation (available in private docs).\n \n\n\n➡️ Example response
\n\n```json\n{\n \"message\": \"Asynchronous execution in progress. Use provided query id to perform query monitoring and management.\",\n \"search_id\": \"\"\n}\n```\n\nThe response will contain the **search ID** that you can use to fetch the paginated result afterwards.\n\n \n\n### 2. Fetch the paginated results for the requested data\n\nThe last step is to fetch the search result data. You can do this by sending a `GET` request to\nthe `/xxx/{search_id}` endpoint.\n\n- `GET /xxx/?page=`: It will return the search data for\n the given ID and page number. By default, the page number is `0`, and only mandatory columns are returned.\n\n\n➡️ Example curl request
\n\n```shell\ncurl -X 'GET' 'https://data-reporting-api.prod.feverup.com/v1/xxx/search/\n -H 'accept: application/json'\n -H 'Authorization: Bearer '\n```\n\nFor instance, this request will retrieve all mandatory fields plus `aaa` and `bbb` fields. Remember to\nreplace ``, and `` with the correct values.\n\nOnce the output is ready to be consumed, it will return a JSON object containing the orders data for the given search ID\nand page number. Otherwise, it will return a `202` status code with a message indicating that the data is still being\nprocessed.\n\n \n\n\n➡️ Example response
\n\n```json\n{\n \"partition_info\": [\n {\n \"partition_num\": 0,\n \"endpoint\": \"/?page=0\",\n \"size\": 1234,\n \"rows\": 100\n },\n {\n \"partition_num\": 1,\n \"endpoint\": \"/?page=1\",\n \"size\": 5678,\n \"rows\": 100\n }\n ],\n \"data\": [\n \"your data records\"\n ]\n}\n```\n\n \n\n \n\n
\n# Rate limits\n\nThe Fever Reporting API has rate limits on its endpoints.\n\n- **Authentication**: 20 requests/minute.\n- **Other endpoints**: 200 requests/minute.\n\nIf you exceed these limits, you will receive a `429 Too Many Requests` response. In this case, you should wait for one minute before making additional requests.\n\n
\n# FAQ\n\n\n> \n> \U0001F4AC How are cancellations handled in the API?
\n>
\n>\n> In the `/reports/order-items` endpoint, cancellations are handled at the individual order item level. Each order item represents a single unit (ticket, add-on, etc.) within an order.\n>\n> When an order item is canceled, its `status` field will change to `CANCELED`.\n>\n> \n> \U0001F4A1 Example
\n>\n> #### Before cancellation\n> ```json lines\n> {\n> \"id\": 12345, // order id\n> ...\n> \"order_items\": [\n> {\n> \"id\": 1910920,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"ABC123\",\n> \"owner\": {\n> \"name\": \"Alice\"\n> }\n> ...\n> },\n> {\n> \"id\": 1910921,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"DEF456\",\n> \"owner\": {\n> \"name\": \"Bob\"\n> }\n> ...\n> }\n> ]\n> }\n> ```\n>\n> #### After cancellation of one order item\n> ```json lines\n> {\n> \"id\": 12345, // order id\n> ...\n> \"order_items\": [\n> {\n> \"id\": 1910920,\n> \"status\": \"CANCELED\",\n> \"barcode\": \"ABC123\",\n> \"owner\": {\n> \"name\": \"Alice\"\n> }\n> ...\n> },\n> {\n> \"id\": 1910921,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"DEF456\",\n> \"owner\": {\n> \"name\": \"Bob\"\n> }\n> ...\n> }\n> ]\n> }\n> ```\n> \n> \n\n
\n\n> \n> \U0001F4AC How are transfers handled in the API?
\n>
\n>\n> In the `/reports/order-items` endpoint, transfers are handled at the individual order item level. Each order item represents a single unit, so when an order item is transferred, the owner information is updated to reflect the new owner.\n>\n> When an order item is transferred, the `owner` field will be updated with the new owner's information. The order item maintains its `PURCHASED` status but now belongs to the new owner.\n>\n> \n> \U0001F4A1 Example
\n>\n> #### Before transfer\n> ```json lines\n> {\n> \"id\": 12345, // order id\n> // ... order fields\n> \"order_items\": [\n> {\n> \"id\": 1910920,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"ABC123\",\n> \"owner\": {\n> \"name\": \"Alice\",\n> \"email\": \"alice@example.com\"\n> }\n> ...\n> },\n> {\n> \"id\": 1910921,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"DEF456\",\n> \"owner\": {\n> \"name\": \"Bob\",\n> \"email\": \"bob@example.com\"\n> }\n> ...\n> }\n> ]\n> }\n> ```\n>\n> #### After transfer of one order item\n> ```json lines\n> {\n> \"id\": 12345, // order id\n> ...\n> \"order_items\": [\n> {\n> \"id\": 1910920,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"ABC123\",\n> \"owner\": {\n> \"name\": \"Charlie\",\n> \"email\": \"charlie@example.com\"\n> }\n> ...\n> },\n> {\n> \"id\": 1910921,\n> \"status\": \"PURCHASED\",\n> \"barcode\": \"DEF456\",\n> \"owner\": {\n> \"name\": \"Bob\",\n> \"email\": \"bob@example.com\"\n> }\n> ...\n> }\n> ]\n> }\n> ```\n> \n> \n\n
\n\n> \n> \U0001F4AC How is the param UPDATED_DATE_UTC updated in the `/reports/order-items` endpoint?
\n>
\n> Please note that not all fields in the returned JSON are eligible to update the value of UPDATED_DATE_UTC. Only fields directly related to the purchase and order items themselves will trigger a change in this value.\n> \n"
contact:
name: Support
email: data-support@feverup.com
version: 1.5.0
x-logo:
url: https://res.cloudinary.com/fever/image/upload/ar_16:9,c_mpad,w_425/web/fever-logo-dark.jpg
servers:
- url: /v1
tags:
- name: Sessions
description: "The goal of the Session Endpoint is to provide all information about the session (or ticket types) of a plan.\nThe delay of the data is less than 10 minutes from reality.\n\n## Request filters\n\n`POST /v1/sessions/search` accepts the following optional request body fields. Filters compose with the existing `plan_ids` / `session_ids` OR-union behaviour: the warehouse update window is applied as an extra `AND` constraint on top of that union.\n\n| Field | Type | Required | Description |\n|--------------------------|--------------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `plan_ids` | `list[int]` | no | Restrict sessions to the given plans. Unchanged. |\n| `session_ids` | `list[int]` | no | Restrict to the given sessions. Unchanged. |\n| `updated_date_utc_from` | `string` (UTC datetime) | no | **Inclusive** lower bound on the session warehouse row's last-updated timestamp (`DT_LAST_UPDATED`). Format `YYYY-MM-DD HH:MM`; if only the date is sent, `00:00` is appended. Must be sent together with `updated_date_utc_to`. |\n| `updated_date_utc_to` | `string` (UTC datetime) | no | **Exclusive** upper bound on `DT_LAST_UPDATED`. Same format and pairing rules as `updated_date_utc_from`. |\n\nThe applied predicate is the half-open interval `DT_LAST_UPDATED >= updated_date_utc_from AND DT_LAST_UPDATED < updated_date_utc_to`, consistent with the cart-creation window on `/v1/carts`.\n\n### Validation errors (`422 Unprocessable Entity`)\n\n- Only one of `updated_date_utc_from` / `updated_date_utc_to` is provided.\n- `updated_date_utc_from >= updated_date_utc_to`.\n- Either bound is not a valid `YYYY-MM-DD HH:MM` (or `YYYY-MM-DD`) string.\n\n### Example request\n\n```json\nPOST /v1/sessions/search\n{\n \"plan_ids\": [12345],\n \"session_ids\": [],\n \"updated_date_utc_from\": \"2026-05-24 00:00\",\n \"updated_date_utc_to\": \"2026-05-25 00:00\"\n}\n```\n\nThe response shape is unchanged — these filters only narrow which sessions are returned.\n\n## Model documentation\n\n\n\U0001F4C4 /sessions response entity model
\n\n| Column Name | Description | Example value |\n|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|\n| `id` | ID of the session | 12345 |\n| `name` | Name of the session, providing a short description of the product the client purchased. | Adult Ticket |\n| `available_tickets` | Current number of available tickets for sale in the session. | 103 |\n| `capacity` | Current maximum number of tickets that can afford the session (sold + available). | 400 |\n| `end_date_utc` | UTC end date of the session. | 2025-03-21 22:59:00.000 Z |\n| `first_purchasable_date_utc` | UTC date of the first purchasable date of the session. | 2025-03-21 |\n| `is_addon` | Indicates whether the session is an addon. | FALSE |\n| `is_wait_list` | ⚠️ (_deprecated_) Indicates whether the session is actually a waitlist. This field is deprecated, it is now configured at plan level, not at session level | FALSE |\n| `plan_id` | ID of the plan associated with the session. | 12345 |\n| `start_date_utc` | UTC Start date of the session. | 2025-03-21 22:59:00.000 Z |\n| `venue.city` | City of the venue where the session takes place. | Madrid |\n| `venue.country` | Country of the venue where the session takes place in ISO3. | Spain |\n| `venue.name` | Name of the venue where the session takes place. | Retiro |\n| `venue.timezone` | Timezone of the venue where the session takes place. | Europe/Madrid |\n| `ticket_price` | Price of the ticket in the session. | 10 |\n| `ticket_price_tax_base` | Base price of the ticket in the session. | 8 |\n| `surcharge_per_ticket` | Surcharge applied to the ticket in the session. | 1 |\n| `surcharge_per_ticket_tax_base` | Base price of the surcharge per ticket | 1 |\n| `session_type_id` | Fever session-type identifier. Join key for `/reports/entitlements`. | 88123 |\n| `product_type` | Product type of the session (e.g. `TIMED_ENTRY`). Nullable — returns `null` when the session has no associated session type. | TIMED_ENTRY |\n| `customer_profile` | Target customer profile of the session (e.g. `ADULT`, `CHILD`). Nullable — returns `null` when the session has no associated session type. | ADULT |\n| `group_name` | Name of the session type group. Nullable — returns `null` when the session type has no associated group. | General Admission |\n\n \n"
paths:
/sessions/search:
post:
tags:
- Sessions
summary: Request sessions
description: Create a request to get sessions that belong to plans that are set as ready.The field session_ids can be used to filter the sessions in the report by id.The field plan_ids can be used to include only sessions from certain plans in the report.The union of the two sets will be used to filter the sessions.That is, if a session is in session_ids but its plan is not in plan_ids, it will be included, and viceversa.Optionally, the fields updated_date_utc_from and updated_date_utc_to can be used to restrict results to sessions whose warehouse row was last updated within the given half-open UTC window (>= from, < to). Both bounds must be sent together; sending only one returns 422.The search will be processed asynchronously, being able to fetch the result from the provided search ID.
operationId: search_sessions_sessions_search_post
security:
- OAuth2PasswordBearer: []
parameters:
- name: user-id-to-impersonate
in: header
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: User id from the user that you want to impersonate
title: User-Id-To-Impersonate
description: User id from the user that you want to impersonate
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/SessionsParams'
- type: 'null'
title: Config
responses:
'202':
description: Request was created successfully but is still running asynchronously.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchStatus'
'408':
description: Request Timeout
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: The request timed out. Please try again later
example: The request timed out. Please try again later
title: Detail
type: string
title: RequestTimeoutError
type: object
'429':
description: Too Many Requests
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: Server is busy. Please retry your query later
example: Server is busy. Please retry your query later
title: Detail
type: string
title: ServerBusyError
type: object
'500':
description: Internal Server Error
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: An internal server error occurred. Please try again later
example: An internal server error occurred. Please try again later
title: Detail
type: string
title: InternalServerError
type: object
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: bash
source: "\ncurl -X POST \"https:///v1/sessions/search\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n \"session_ids\": [\n 123,\n 456\n ],\n \"plan_ids\": [\n 123,\n 456\n ],\n \"updated_date_utc_from\": \"2026-05-24 00:00\",\n \"updated_date_utc_to\": \"2026-05-25 00:00\"\n}' \\\n-H \"Authorization: Bearer \"\n "
label: curl
- lang: python
source: "\nimport requests\n\nhostname = \"\"\nusername = \"\"\npassword = \"\"\n\naccess_token = requests.post(f\"https://{hostname}/v1/auth/token\", data={\"username\": username, \"password\": password}).json()[\"access_token\"]\n\nrequests.post(f\"https://{hostname}/v1/sessions/search\",\n json={\n \"session_ids\": [\n 123,\n 456\n ],\n \"plan_ids\": [\n 123,\n 456\n ],\n \"updated_date_utc_from\": \"2026-05-24 00:00\",\n \"updated_date_utc_to\": \"2026-05-25 00:00\"\n},\n headers={\"Authorization\": f\"Bearer {access_token}\"}\n)\n"
label: Python
/sessions/search/{search_id}:
get:
tags:
- Sessions
summary: Get sessions
description: Get sessions from a search_id.
operationId: get_sessions_search_page_sessions_search__search_id__get
security:
- OAuth2PasswordBearer: []
parameters:
- name: search_id
in: path
required: true
schema:
type: string
format: uuid
title: Search Id
- name: page
in: query
required: false
schema:
type: integer
default: 0
title: Page
- name: user-id-to-impersonate
in: header
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: User id from the user that you want to impersonate
title: User-Id-To-Impersonate
description: User id from the user that you want to impersonate
responses:
'200':
description: Search was obtained successfully
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Search_SessionDimension_SessionsParams_-Output'
- $ref: '#/components/schemas/SearchStatus'
title: Response Get Sessions Search Page Sessions Search Search Id Get
$ref: '#/components/schemas/Search_SessionDimension_SessionsParams_-Input'
'202':
description: Request is still running asynchronously.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchStatus'
'404':
description: Not Found
content:
application/json:
schema:
oneOf:
- properties:
detail:
example: Search 01b571aa-0203-e36d-0000-0d3758abb35d not found.
title: Detail
type: string
required:
- detail
title: SearchIdNotFoundError
type: object
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- properties:
detail:
example: Search ID 1234 is not valid
title: Detail
type: string
required:
- detail
title: InvalidSearchIdError
type: object
- properties:
detail:
example: Invalid partition parameter. The partition must be long type parsable and between 0 and 1, but 2 is specified.
title: Detail
type: string
required:
- detail
title: InvalidPageIdError
type: object
- properties:
detail:
example: Response is too large. Please apply filters to reduce its size.
title: Detail
type: string
required:
- detail
title: ResponseTooLargeError
type: object
'408':
description: Request Timeout
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: The request timed out. Please try again later
example: The request timed out. Please try again later
title: Detail
type: string
title: RequestTimeoutError
type: object
'410':
description: Search expired
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: Search expired. Please create a new one
example: Search expired. Please create a new one
title: Detail
type: string
title: SearchExpiredError
type: object
'429':
description: Too Many Requests
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: Server is busy. Please retry your query later
example: Server is busy. Please retry your query later
title: Detail
type: string
title: ServerBusyError
type: object
'500':
description: Internal Server Error
content:
application/json:
schema:
oneOf:
- properties:
detail:
default: An internal server error occurred. Please try again later
example: An internal server error occurred. Please try again later
title: Detail
type: string
title: InternalServerError
type: object
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: bash
source: '
curl -X GET "https:///v1/sessions/search/?page=0" \
-H "Authorization: Bearer "
'
label: curl
- lang: python
source: "\nimport requests\n\nhostname = \"\"\nusername = \"\"\npassword = \"\"\n\naccess_token = requests.post(f\"https://{hostname}/v1/auth/token\", data={\"username\": username, \"password\": password}).json()[\"access_token\"]\n\nrequests.get(f\"https://{hostname}/v1/sessions/search/\",\n params={'page': 0},\n headers={\"Authorization\": f\"Bearer {access_token}\"}\n)\n"
label: Python
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Venue:
properties:
city:
anyOf:
- type: string
- type: 'null'
title: City
description: Venue city
example: New York
country:
anyOf:
- type: string
- type: 'null'
title: Country
description: Venue country
example: USA
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: Venue name
example: Madison Square Garden
timezone:
anyOf:
- type: string
- type: 'null'
title: Timezone
description: Venue timezone
example: America/New_York
type: object
title: Venue
SessionsParams:
properties:
session_ids:
anyOf:
- items:
type: integer
type: array
maxItems: 1000
- type: 'null'
title: Session Ids
description: List of ids of the sessions to filter by.
default: []
examples:
- []
- - 123
- - 123
- 456
plan_ids:
anyOf:
- items:
type: integer
type: array
maxItems: 1000
- type: 'null'
title: Plan Ids
description: List of ids of the plans to filter by.
default: []
examples:
- []
- - 123
- - 123
- 456
updated_date_utc_from:
anyOf:
- type: string
- type: 'null'
title: Updated Date Utc From
description: UTC start date for the warehouse last-updated filter (inclusive). Filters rows whose underlying warehouse record changed at or after this instant. If hour and minute are not specified, 00:00 is added by default
example: 2026-05-24 00:00
updated_date_utc_to:
anyOf:
- type: string
- type: 'null'
title: Updated Date Utc To
description: UTC end date for the warehouse last-updated filter (exclusive). Filters rows whose underlying warehouse record changed strictly before this instant. If hour and minute are not specified, 00:00 is added by default
example: 2026-05-25 00:00
additionalProperties: false
type: object
title: SessionsParams
SearchStatus:
properties:
message:
type: string
title: Message
description: Message about the search status
example: Asynchronous execution in progress. Use provided query id to perform query monitoring and management.
search_id:
type: string
format: uuid
title: Search Id
description: The search ID
example: b59d4093-cbfc-4a1d-be5c-ba78d4ffbc64
type: object
required:
- message
- search_id
title: SearchStatus
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
Search_SessionDimension_SessionsParams_-Input:
properties:
partition_info:
anyOf:
- items:
$ref: '#/components/schemas/PartitionInfo'
type: array
- type: 'null'
title: Partition Info
description: Partition information
params:
anyOf:
- $ref: '#/components/schemas/SessionsParams'
- type: 'null'
description: Parameters used in the search
data:
items:
$ref: '#/components/schemas/SessionDimension'
type: array
title: Data
description: Data rows
type: object
required:
- data
title: Search[SessionDimension, SessionsParams]
Search_SessionDimension_SessionsParams_-Output:
properties:
partition_info:
anyOf:
- items:
$ref: '#/components/schemas/PartitionInfo'
type: array
- type: 'null'
title: Partition Info
description: Partition information
params:
anyOf:
- $ref: '#/components/schemas/SessionsParams'
- type: 'null'
description: Parameters used in the search
data:
items:
$ref: '#/components/schemas/SessionDimension'
type: array
title: Data
description: Data rows
type: object
required:
- data
title: Search[SessionDimension, SessionsParams]
PartitionInfo:
properties:
partition_num:
type: integer
minimum: 0.0
title: Partition Num
description: Partition number
example: 0
endpoint:
type: string
title: Endpoint
description: Endpoint to fetch data for partition
example: /01b26479-0203-63c9-0000-d37572ae91ea?page=0
size:
type: integer
minimum: 0.0
title: Size
description: Partition size in bytes
example: 15058
rows:
type: integer
minimum: 0.0
title: Rows
description: Number of rows contained in partition. One row represents a single transaction result (e.g. order, plan etc.).
example: 4099
type: object
required:
- partition_num
- endpoint
- size
- rows
title: PartitionInfo
examples:
- endpoint: /01b26479-0203-63c9-0000-d37572ae91ea?page=0
partition_num: 0
rows: 4099
size: 15058
- endpoint: /01b26479-0203-63c9-0000-d37572ae91ea?page=1
partition_num: 1
rows: 3145
size: 11260
SessionDimension:
properties:
id:
anyOf:
- type: integer
- type: 'null'
title: Id
description: Session ID
example: 12345
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: Session name
example: Session name
available_tickets:
anyOf:
- type: integer
- type: 'null'
title: Available Tickets
description: Session available tickets. This field is always null if the session is a wait list.
example: 10
capacity:
anyOf:
- type: integer
- type: 'null'
title: Capacity
description: Session capacity. This field is always null if the session is a wait list.
example: 100
end_date_utc:
anyOf:
- type: string
- type: 'null'
title: End Date Utc
description: Session end date
example: '2023-12-18 08:30:27.789 Z'
first_purchasable_date_utc:
anyOf:
- type: string
- type: 'null'
title: First Purchasable Date Utc
description: Session first purchasable date
example: '2023-12-18'
is_addon:
anyOf:
- type: boolean
- type: 'null'
title: Is Addon
description: Is the session an addon
example: false
is_shop_product:
anyOf:
- type: boolean
- type: 'null'
title: Is Shop Product
description: Is the session a shop product
example: false
is_wait_list:
anyOf:
- type: boolean
- type: 'null'
title: Is Wait List
description: Is the session a wait list. Deprecated, since now the waitlist flag is configured at plan level
deprecated: true
example: false
start_date_utc:
anyOf:
- type: string
- type: 'null'
title: Start Date Utc
description: Session start date
example: '2023-12-18 08:30:27.789 Z'
venue:
anyOf:
- $ref: '#/components/schemas/Venue'
- type: 'null'
description: Session venue
timeslot_capacity:
anyOf:
- type: integer
- type: 'null'
title: Timeslot Capacity
description: Total timeslot capacity. Null for waitlist plans or anytime plans.
example: 578
plan_id:
anyOf:
- type: integer
- type: 'null'
title: Plan Id
description: Plan ID
example: 12345
tags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Tags
description: Session tags
example: []
ticket_price:
anyOf:
- type: number
- type: 'null'
title: Ticket Price
description: Session ticket price
example: 10.0
ticket_price_tax_base:
anyOf:
- type: number
- type: 'null'
title: Ticket Price Tax Base
description: Session ticket price tax base
example: 8.0
surcharge_per_ticket:
anyOf:
- type: number
- type: 'null'
title: Surcharge Per Ticket
description: Session surcharge per ticket
example: 2.0
surcharge_per_ticket_tax_base:
anyOf:
- type: number
- type: 'null'
title: Surcharge Per Ticket Tax Base
description: Session surcharge per ticket tax base
example: 0.5
session_type_id:
type: integer
title: Session Type Id
description: Fever session-type identifier. Join key for /reports/entitlements.
example: 88123
product_type:
anyOf:
- type: string
- type: 'null'
title: Product Type
description: Session product type. Null when the session has no associated session type.
example: TIMED_ENTRY
customer_profile:
anyOf:
- type: string
- type: 'null'
title: Customer Profile
description: Target customer profile of the session. Null when the session has no associated session type.
example: ADULT
group_name:
anyOf:
- type: string
- type: 'null'
title: Group Name
description: Name of the session type group. Null when the session type has no associated group.
example: General Admission
type: object
required:
- id
- session_type_id
title: SessionDimension
securitySchemes:
OAuth2PasswordBearer:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: /v1/auth/token
x-tagGroups:
- name: Endpoints
tags:
- Authentication
- Billing L1
- Billing L2
- Carts
- Channels
- Customers
- Customers Mapping
- Deposits
- Entitlement Configurations
- Exchange Rates
- FeverZone
- Last Tour
- Magnati
- Neon
- Order Items
- Order Items Test
- Order Sales
- Plan Code Scans
- Plans
- Real Time
- Reservations
- SailGP
- Sessions
- Square
- Webhooks