Skip to main content
GET
/
api
/
public
/
v1
/
product
/
get
/
{productId}
cURL
curl --location 'https://www.headout.com/api/public/v1/product/get/3336?currencyCode=EUR&language=PT&fetch-variants=true' \
--header 'Headout-Auth: <YOUR_API_KEY>'
{
  "id": 19513,
  "name": "Edge Observation Deck Tickets: Timed Entry",
  "url": "/edge-observation-deck-tickets/tickets-to-edge-observation-deck-e-19513/",
  "canonicalUrl": "https://www.headout.com/edge-observation-deck-tickets/tickets-to-edge-observation-deck-e-19513/",
  "neighbourhood": "",
  "city": {
    "name": "New York",
    "code": "NEW_YORK"
  },
  "currency": {
    "code": "USD",
    "name": "United States Dollar",
    "symbol": "US$",
    "localSymbol": "$",
    "precision": 2
  },
  "displayTags": [],
  "images": [
    {
      "url": "https://cdn-imgix.headout.com/media/images/7dff2143faf0c49109d1aeca8a7dcd9f-19513-new-york-edge-observation-deck-adimssion-tickets--09.jpg",
      "altText": "Visitors on Edge Observation Deck with New York City skyline at sunset.",
      "description": "Visitors on Edge Observation Deck with New York City skyline at sunset.",
      "credit": "Edge"
    }
  ],
  "contentListHtml": [
    {
      "title": "Summary",
      "type": "SUMMARY_HTML",
      "html": "<h2>Your experience</h2><p>Take in New York City from 1,100 feet above Hudson Yards...</p>"
    },
    {
      "title": "Highlights",
      "type": "HIGHLIGHTS_HTML",
      "html": "<ul><li>Start your experience with a spectacular multimedia journey...</li></ul>"
    },
    {
      "title": "Inclusions",
      "type": "INCLUSIONS_HTML",
      "html": "<ul><li>Timed entry to Edge Observation Deck</li></ul>"
    }
  ],
  "content": [
    {
      "title": "Summary",
      "type": "SUMMARY_HTML",
      "html": "<h2>Your experience</h2><p>Take in New York City from 1,100 feet above Hudson Yards...</p>"
    }
  ],
  "startLocation": {
    "geolocation": {
      "latitude": 40.753395080566406,
      "longitude": -74.00105285644531
    },
    "address": {
      "addressLine1": "Edge",
      "addressLine2": "30 Hudson Yards, New York, NY 10001, USA",
      "cityName": "NEW_YORK",
      "postalCode": "10001",
      "state": "",
      "countryName": "United States"
    }
  },
  "endLocation": {
    "geolocation": {
      "latitude": 40.753395080566406,
      "longitude": -74.00105285644531
    },
    "address": {
      "addressLine1": "Edge",
      "addressLine2": "30 Hudson Yards, New York, NY 10001, USA",
      "cityName": "NEW_YORK",
      "postalCode": "10001",
      "state": "",
      "countryName": "United States"
    }
  },
  "productType": "ATTRACTION",
  "ratingCumulative": {
    "avg": 4.5,
    "count": 6252
  },
  "hasInstantConfirmation": false,
  "hasMobileTicket": true,
  "variants": [
    {
      "id": 38164,
      "name": "General Admission: Timed Entry",
      "description": "- Entry to Edge Observatory Deck at the time slot selected",
      "duration": 60000,
      "inventoryType": "FIXED_START_FLEXIBLE_DURATION",
      "pax": {
        "min": 1,
        "max": 10
      },
      "cashback": {
        "value": 0,
        "type": "ABSOLUTE"
      },
      "ticketDeliveryInfoHtml": null,
      "cancellationPolicy": {
        "cancellable": true,
        "cancellableUpTo": 1440
      },
      "meetingPointInfo": {
        "latitude": null,
        "longitude": null,
        "address": ""
      },
      "inputFields": [
        {
          "oldId": 119867,
          "id": "NAME",
          "name": "Full Name",
          "dataType": "STRING",
          "validation": {
            "regex": "\\s*[^\\s]+\\s+[^\\s]+.*",
            "minLength": 3,
            "maxLength": 80,
            "minValue": null,
            "maxValue": null,
            "required": true,
            "values": null
          },
          "level": "PRIMARY_CUSTOMER"
        },
        {
          "oldId": 119868,
          "id": "EMAIL",
          "name": "Email",
          "dataType": "STRING",
          "validation": {
            "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
            "minLength": 5,
            "maxLength": null,
            "minValue": null,
            "maxValue": null,
            "required": true,
            "values": null
          },
          "level": "PRIMARY_CUSTOMER"
        },
        {
          "oldId": 119869,
          "id": "PHONE",
          "name": "Phone",
          "dataType": "STRING",
          "validation": {
            "regex": null,
            "minLength": null,
            "maxLength": 40,
            "minValue": null,
            "maxValue": null,
            "required": true,
            "values": null
          },
          "level": "PRIMARY_CUSTOMER"
        }
      ],
      "tags": [
        "OFFERS",
        "RECOMMENDED",
        "SCHEDULE-300-DAYS"
      ],
      "properties": {},
      "propertiesV2": {}
    }
  ],
  "pricing": {
    "type": "PER_PERSON",
    "currencyCode": "USD",
    "minimumPrice": {
      "originalPrice": 45.73,
      "finalPrice": 45.73
    },
    "bestDiscount": 0
  },
  "inventorySelectionType": "NORMAL",
  "topReviews": [
    {
      "title": null,
      "customerName": "Ellen Marie Pierce",
      "reviewerImgUrl": null,
      "rating": 5,
      "content": "We saw this from our Hotel room and decided to visit. Oh my goodness! The views were just outstanding!",
      "reviewTime": 1773699952000,
      "translatedContent": null,
      "language": "EN"
    }
  ]
}

Authorizations

Headout-Auth
string
header
required

Path Parameters

productId
string
required

ID of the product to fetch.

Query Parameters

currencyCode
string

Currency code for product pricing.

fetch-variants
boolean

Flag to fetch product variants.

language
enum<string>
default:EN

Language code for localization. Content falls back to English when a translation is unavailable.

Available options:
EN,
ES,
FR,
IT,
DE,
PT,
NL,
PL,
KO,
JA,
ZH_HANS,
ZH_HANT,
AR,
DA,
NO,
RO,
RU,
SV,
TR
Example:

"EN"

Response

200 - application/json

Successful response

id
integer
required

Headout's unique product identifier. Use this to fetch full product details via the getProductById endpoint.

name
string
required

Display name of the experience (e.g., "Skip-the-Line Tickets to the Eiffel Tower").

url
string
required

Relative URL path for this product page on Headout.

canonicalUrl
string
required

The canonical Headout URL for this product page. Use for linking and affiliate tracking.

content
object
required

Editorial content for the product including highlights, summary, inclusions, and exclusions.

city
object
required

The city where this experience takes place.

images
object[]
required

Product images and videos for display in listings and product detail pages.

startLocation
object
required

Meeting or departure point for this experience, including GPS coordinates and optional address.

productType
enum<string>
required

Experience category. Useful for filtering and display logic.

Available options:
TOUR,
ACTIVITY,
EVENT,
ATTRACTION,
TRANSFER,
AIRPORT_TRANSFER,
ADD_ON
hasInstantConfirmation
boolean
required

Whether bookings for this product are confirmed immediately without manual review.

hasMobileTicket
boolean
required

Whether this product supports mobile/digital tickets (no print required).

inventorySelectionType
enum<string>
required

Inventory selection flow for this product. Determines how date/time selection should be presented to users.

Available options:
NORMAL,
SEATMAP
variants
object[]
required
neighbourhood
string | null

Neighbourhood or locality where the experience takes place (e.g., "Times Square", "Old Town").

displayTags
string[]

Display tags associated with the product (e.g., "Best Seller", "Top Rated").

endLocation
object

Drop-off or end point for this experience. Same structure as startLocation. Null if the experience ends at the start location.

ratingCumulative
object

Aggregated rating and review count from verified Headout customers.

pricing
object

Starting price for display on product cards. Reflects the cheapest available variant.

currency
object

Currency in which all prices in this response are denominated.

primaryCategory
object

The main experience category this product belongs to (e.g., Tickets, Tours).

contentListHtml
object[] | null

Structured content sections for this product in HTML format. Complements the content field with pre-rendered HTML for rich display.

topReviews
object[] | null

Top customer reviews for this product. Useful for displaying social proof on product pages.