---
title: "Get plans"
method: GET
path: "/plans/search/{search_id}"
tags: ["Plans"]
---

# Get plans

`GET /plans/search/{search_id}`

## Request

- Base URL: `https://data-reporting-api.prod.feverup.com/v1`
- URL: `https://data-reporting-api.prod.feverup.com/v1/plans/search/{search_id}`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/auth/token`
- TypeScript: <https://skmtc.dev/feverup/apis/fever-reporting-api/docs/plans/search/:search_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Get plans from a search_id.

## Path parameters

- `search_id` string, uuid, required

## Query parameters

- `page` integer

## Headers

- `user-id-to-impersonate` integer: User id from the user that you want to impersonate

## Response `200`

Search was obtained successfully

- SearchPlanDimensionPlansParams
  - `partition_info` PartitionInfo[]: Partition information
    - `partition_num` integer, required: Partition number
    - `endpoint` string, required: Endpoint to fetch data for partition
    - `size` integer, required: Partition size in bytes
    - `rows` integer, required: Number of rows contained in partition. One row represents a single transaction result (e.g. order, plan etc.).
  - `params` PlansParams
    - `plan_ids` integer[]: List of ids of the plans to filter by.
    - `updated_date_utc_from` string: 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
    - `updated_date_utc_to` string: 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
  - `data` PlanDimension[], required: Data rows
    - `id` integer, required: Plan ID
    - `gallery` GalleryResource[]: List of gallery resources attached to the plan
      - `url` string: Gallery resource URL
      - `type` 'image' | 'video', required
    - `name` string: Plan name
    - `taxonomies` Taxonomy[]: List of taxonomies attached to the plan
      - `id` integer, required: Taxonomy ID
      - `name` string: Taxonomy name
      - `hierarchy_id` integer: ID of the taxonomy hierarchy (family of terms) the term belongs to, e.g. 199 'Category', 200 'Hotel tag', 201 'Subscription', 36 'price_sensitivity'.
      - `hierarchy` string: Name of the taxonomy hierarchy the term belongs to, as configured in the backoffice. Hierarchies can mix term kinds: e.g. 'Category' holds category terms (Sports and activities) alongside venue and sponsor terms (Accor Arena, Paris Saint-Germain).
    - `partner_id` integer, required: Partner ID
    - `partner_name` string, required: Partner name
    - `currency` 'AED' | 'ARS' | 'AUD' | 'AZN' | 'BGN' | 'BHD' | 'BMD' | 'BRL' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CZK' | 'DKK' | 'DOP' | 'EGP' | 'EUR' | 'GBP' | 'HKD' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'JPY' | 'KRW' | 'MAD' | 'MXN' | 'MYR' | 'NOK' | 'NZD' | 'PEN' | 'PHP' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'SAR' | 'SEK' | 'SGD' | 'THB' | 'TRY' | 'USD' | 'UYU' | 'ZAR'
    - `sessions` SessionDimension[]: List of sessions attached to the plan
      - `id` integer, required: Session ID
      - `name` string: Session name
      - `available_tickets` integer: Session available tickets. This field is always null if the session is a wait list.
      - `capacity` integer: Session capacity. This field is always null if the session is a wait list.
      - `end_date_utc` string: Session end date
      - `first_purchasable_date_utc` string: Session first purchasable date
      - `is_addon` boolean: Is the session an addon
      - `is_shop_product` boolean: Is the session a shop product
      - `is_wait_list` boolean: Is the session a wait list. Deprecated, since now the waitlist flag is configured at plan level
      - `start_date_utc` string: Session start date
      - `venue` Venue
        - `city` string: Venue city
        - `country` string: Venue country
        - `name` string: Venue name
        - `timezone` string: Venue timezone
      - `timeslot_capacity` integer: Total timeslot capacity. Null for waitlist plans or anytime plans.
      - `plan_id` integer: Plan ID
      - `tags` string[]: Session tags
      - `ticket_price` number: Session ticket price
      - `ticket_price_tax_base` number: Session ticket price tax base
      - `surcharge_per_ticket` number: Session surcharge per ticket
      - `surcharge_per_ticket_tax_base` number: Session surcharge per ticket tax base
      - `session_type_id` integer, required: Fever session-type identifier. Join key for /reports/entitlements.
      - `product_type` string: Session product type. Null when the session has no associated session type.
      - `customer_profile` string: Target customer profile of the session. Null when the session has no associated session type.
      - `group_name` string: Name of the session type group. Null when the session type has no associated group.
    - `is_wait_list` boolean: Indicates if the plan is a wait list
    - `is_showcase` boolean: True when this plan is a showcase (a marketing surface that borrows session types from a catalog plan). False when it is a catalog plan that owns sessions and capacity. Never null.
    - `catalog_plan_id` integer: The catalog plan this showcase borrows from. Null on catalog plans (is_showcase=false). Non-null on showcase plans (is_showcase=true).
    - `city` string: City name
    - `state` string: State name
    - `venue` string: Venue name
    - `slug` string: Plan slug, used to build the URL
    - `external_provider` ExternalProvider
      - `name` string: External provider name
      - `plan_id` integer: External provider plan ID
      - `session_id` integer: External provider session ID
    - `plan_type` string: Plan type discriminator. `standard` is the default; `auction`, `prize_draw` and `redeem_now` are the loyalty plan types. Other types may appear (e.g. `link_out`, `waitlist`, `gift_card`, `giveaway`, `growth`, `showcase`, `movie`), so treat unknown values as non-loyalty plans.
    - `mechanism` 'AUCTION' | 'PRIZE DRAWS' | 'REDEMPTION'
    - `loyalty_status` 'draft' | 'active' | 'closed' | 'cancelled' | 'resolved'
    - `is_link_out` boolean: True when the plan is a link-out plan (plan_type `link_out`): it is not sold on Fever and redirects the buyer to an external booking site. Never null.
    - `is_free` boolean: True when the plan is free in cash. Loyalty plans priced only in points (e.g. Accor auctions, prize draws and redeem-now plans) are free. Never null.
    - `updated_date_utc` string: UTC timestamp of the last modification of the plan record in the warehouse. This is the value the `updated_date_utc_from` / `updated_date_utc_to` request filters match against, so a search by that window and the returned value are always consistent. It tracks changes to the plan itself (name, status, slug, configuration...), not to the related entities the response denormalises (partner name, city, venue, taxonomies, gallery).

## Other responses

- `202`: Request is still running asynchronously.
- `400`: Bad Request
- `404`: Not Found
- `408`: Request Timeout
- `410`: Search expired
- `422`: Validation Error
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/feverup/apis/fever-reporting-api.md) - [All operations](https://skmtc.dev/feverup/apis/fever-reporting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/feverup/apis/fever-reporting-api/revisions/a2e1afe5c12d?raw)
