Granular Pricing

Ticketmaster events may use Granular Pricing, which allows clients to set a unique price for each row or seat in a venue. Granular Pricing is presently used by the following sports clients for all of their home games: Detroit Lions, Milwaukee Bucks and Sacramento Kings. If you are planning to work with any of these teams during the season, then you will need to make the following changes in your API calls:

Inventory Management:

Availability API

The Ticket Inventory and Seat Availability response will not provide a price level ID for an offer. You will only receive the face value, charges, ticket types, currency and offer name. If your application uses the price level ID to ingest inventory data, then you will need to update your application to use the face value instead.

Response

{
  "event": {
    "id": "2000527EE48A9334",
    "restrictSingle": true,
    "eventTicketLimit": 0,
    "offsale": "2019-10-19 23:00:00.0",
    "eventDateTime": "2019-10-19 23:00:00.0",
    "tickets": [
      {
        "offers": [
          {
            "ticketTypeId": "406700000007",
            "currency": "USD",
            "faceValue": 99.5,    //<--------- Only face value is present. 
                                                The pricelevelId is not returned in availability response
            "charges": [
              {
                "reason": "service",
                "type": "fee",
                "amount": 14.75
              },
              {
                "reason": "order_processing",
                "type": "fee",
                "amount": 3.1
              }
            ],
            "offerName": "Official Platinum",
            "offerDescription": "Official Platinum",
            "eventTicketMinimum": 1
          }
        ],
        "available": 9,
        "total": 9,
        "seating": "reserved",
        "currentTicketLimit": 9,
        "inventory": [
          {
            "section": "ORCH2",
            "row": "4",
            "seats": [
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13
            ],
            "places": [
              "J5JEGSBSHI2DUNI",
              "J5JEGSBSHI2DUNQ",
              "J5JEGSBSHI2DUNY",
              "J5JEGSBSHI2DUOA",
              "J5JEGSBSHI2DUOI",
              "J5JEGSBSHI2DUMJQ",
              "J5JEGSBSHI2DUMJR",
              "J5JEGSBSHI2DUMJS",
              "J5JEGSBSHI2DUMJT"
            ],
            "areas": [
              {
                "description": "CENTER",
                "name": "CENTER",
                "areaId": "2",
                "areaLabel": "location"
              },
              {
                "description": "ORCHESTRA",
                "name": "ORCH",
                "areaId": "4",
                "areaLabel": "zone"
              }
            ],
            "hasEvenOddMix": true
          }
        ],
        "eventTicketLimit": 0
      }
    ],
    "seatLocationMapRestrict": false,
    "locXnumAddescRestrict": false,
    "locRowSeatRestrict": false,
    "venueId": "100001"
  }
}

Top Picks API

The Top Picks API response will not provide a price level ID for an offer. If your application relies on the price level ID to perform any function, then you will need to update your application to use the face value instead. The granularPricing T/F flag is provided in the eventDetails object.

Response

{
  "page": {
    "number": 1,
    "size": 30,
    "totalElements": 77,
    "totalPages": 3
  },
  "picks": [
    {
      "type": "seats",
      "quality": 0.976134,
      "section": "230C",
      "selection": "standard",
      "row": "9",
      "snapshotImageUrl": "https://app.ticketmaster.com/maps/geometry/3/event/2000527EE48A9334/image?
                                    systemId=HOST&sectionNames=230C&placeId=GIZTAQZ2HE5DO&app=TOPPICKS",
      "area": {
        "id": "1",
        "name": "CLUB",
        "description": "Club Level Seating"
      },
      "offers": [
        "GJ6DIMBQGAYXYMJUHE"
      ],
      "seats": [
        "7",
        "8"
      ],
      "coordinates": [
        {
          "x": 532.67,
          "y": 111.42
        },
        {
          "x": 531.23,
          "y": 111.42
        }
      ]
    }
  ],
  "_embedded": {
    "offer": [
      {
        "offerId": "GJ6DIMBQGAYXYMJUHE",
        "name": "Standard Ticket",
        "ticketTypeId": "000000000001",
        "priceLevelId": null,  //<---------The pricelevelId is null for granular pricing events
        "description": "Standard Ticket",
        "currency": "USD",
        "faceValue": 262.0,
        "totalPrice": 262.0,
        "charges": [
          {
            "reason": "order_processing",
            "type": "fee",
            "amount": 4.25,
            "fee_type": "PER ORDER"
          }
        ],
        "limit": {
          "min": 1,
          "max": 10
        },
        "promotions": [
          
        ]
      }
    ]
  },
  "eventDetails": {
    "id": "2000527EE48A9334",
    "granularPricing": true,
    "venueMapUrl": "https://app.ticketmaster.com/maps/geometry/3/event/2000527EE48A9334/image?systemId=HOST&app=TOPPICKS&pw=0",
    "venueMapWithLabelsUrl": "https://app.ticketmaster.com/maps/geometry/3/event/2000527EE48A9334/image?systemId=HOST&app=TOPPICKS&pw=0&showLabels=true"
  }
}

Cart Management:

Reserve Request

If you wish to reserve seats within a price level, you will need to specify the minimum and maximum price amount of the seats as “seat_price_low” and “seat_price_high” in the reserve request:

https://app.ticketmaster.com/partners/v1/events/{event ID}/cart?apikey={apikey}

Request

{
  "reserve": {
    "tickets": [
      {
        "id": "000000040001",
        "quantity": 2
      }
    ],
    "seat_price_low": 35,
    "seat_price_high": 35
  }
}

Partners who are configured for variable-priced ticketing will also need to write back the price of the seats in the reserve request:

https://app.ticketmaster.com/partners/v1/events/{event ID}/cart?apikey={apikey}

Request

{
  "reserve": {
    "tickets": [
      {
        "id": "000810000007",
        "quantity": 2,
        "price": {
          "amount": 45
        }
      }
    ],
    "seat_price_low": 35,
    "seat_price_high": 35
  }
}

The seat_price_low and seat_price_high parameters are only required if you want to reserve seats within a specific price level. You can omit these values if you want to perform a best available seat search across all price levels,