The SeatGeek Platform

API Documentation

SeatGeek maintains a comprehensive directory of live events in the United States and Canada (and to a lesser degree, internationally). We created the SeatGeek Platform to enable others to build on top of that data. The SeatGeek Platform makes it easy to construct applications that help users find and discover events by exposing the wealth of data and powerful search behind SeatGeek.com in an easy-to-consume format.

Overview

The Platform's API follows RESTful principles as closely as possible while allowing for flexible queries.

All responses can be served in JSON, JSONP or XML. Authentication is not required for any endpoints at this time. The API makes extensive use of query strings to retrieve resources based around various search criteria.

All arguments, unless specifically noted, can be used together to create complex queries

Table of Contents

API Endpoint

http://api.seatgeek.com/2

Resource Endpoints

/events
/events/{EVENT_ID}
/performers
/performers/{PERFORMER_ID}
/venues
/venues/{VENUE_ID}
            

Responses

The API provides two basic types of response documents: (i) a single resource response document and (ii) a bulk resource response document. The former returns a single document of the requested resource. This type of document is only returned when attempting to access a document with a http://api.seatgeek.com/2/events/{EVENT_ID} style request.

A bulk resource response document will include an array of single resource documents along with some additional meta information about the response. If no resources are found, meta information will be returned with an empty resources array.

Document Formats

format: optional, default is json

Acceptable arguments are json and xml

callback: optional, default is null

If a callback is provided, the response will be forced to be json, and your response document will be wrapped with your callback argument.

Example Request

$ curl 'http://api.seatgeek.com/2/events/739515?callback=fireEvent'

Example Response

fireEvent({
    "stats": {...},
    "title": "Houston Rodeo Livestock Show and Rodeo (Zac Brown Band Performance)",
    "url": "/houston-rodeo-livestock-show-and-rodeo-zac-brown-band-performance-tickets/sports/2012-03-12/739515/",
    "datetime_local": "2012-03-12T18:45:00",
    "performers": [...],
    "venue": {...},
    "short_title": "Houston Rodeo Livestock Show and Rodeo (Zac Brown Band Performance)",
    "datetime_utc": "2012-03-12T23:45:00",
    "score": 267.608,
    "taxonomies": [...],
    "type": "sports",
    "id": 739515
})

Example Request

$ curl 'http://api.seatgeek.com/2/events/739515?format=xml'

Example Response

<event>
  <stats>
     ...
  </stats>
  <title>
      Houston Rodeo Livestock Show and Rodeo (Zac Brown Band Performance)
  </title>
  <url>
      /houston-rodeo-livestock-show-and-rodeo-zac-brown-band-performance-tickets/sports/2012-03-12/739515/
  </url>
  <datetime_local>2012-03-12T18:45:00</datetime_local>
  <performers>
      <performer>
         ...
      </performer>
  </performers>
  <venue>
    ...
  </venue>
  <short_title>
      Houston Rodeo Livestock Show and Rodeo (Zac Brown Band Performance)
  </short_title>
  <datetime_utc>2012-03-12T23:45:00</datetime_utc>
  <score>267.608</score>
  <taxonomies>
    ...
  </taxonomies>
  <type>sports</type>
  <id>739515</id>
</event>

Meta

Each bulk response is appended with meta information

took:
Response time in milliseconds
geolocation:
Details about the results of geolocation. null if geolocation not requested, or unsuccessful.
per_page:
Number of documents per page
total:
Total number of matched documents
page:
Current paginated page number

Example Response

{
    "meta": {
        "took": 3,
        "geolocation": null,
        "per_page": 1,
        "total": 63236,
        "page": 1
    },
    "events": [
        {...}
    ]
}

API Features

The SeatGeek API supports sorting, pagination, and geolocation. Geolocation is only available for resources with a location attribute (in other words, not /performers).

Geolocation

The API can geolocate requests based on a user's IP address, postal code (currently, only US and Canadian postal codes are supported), or latitude and longitude. In order to geolocate a request, either geoip or both lat and lon must be provided. Details about geolocation will be returned in the meta document.

Arguments

geoip: optional, default is false
Accepts one of: a valid IP address (useful when making a request server-side on behalf of a client); a valid US or Canadian postal code; or true, to attempt to geolocate by the requesting client's IP (useful when calling directly from a browser).
lat: optional, lon is required if used
Latitude in decimal degrees.
lon: optional, lat is required if used
Longitude in decimal degrees.
range: optional, default is 30mi
The number of miles (or kilometers, with km) to search around the location

Definition

GET http://api.seatgeek.com/2/events?geoip=true

Example Request

$ curl 'http://api.seatgeek.com/2/events?geoip=98.213.245.205&range=12mi'

Example Response

{
    "meta": {
        "geolocation": {
            "lat": 42.2711,
            "lon": -89.0593,
            "range": "12mi"
        },
        "took": 5,
        "per_page": 10,
        "total": 13320,
        "page": 1
    },
    "events": [
        {...}
    ]
}

Pagination

The SeatGeek Platform API has built in pagination support.

Arguments

per_page: optional, default is 10
Number of resource documents to return per "page"
page: optional, default is 1
Page number, 1-indexed

Definition

GET http://api.seatgeek.com/2/venues?per_page=25&page=3

Example Request

$ curl 'http://api.seatgeek.com/2/venues?per_page=25&page=3'

Example Response

{
    "meta": {
        "took": 5,
        "geolocation": null,
        "per_page": 25,
        "total": 13320,
        "page": 3
    },
    "venues": [
        {...}
    ]
}

Sorting

The SeatGeek Platform API has basic support for sorting the response result set.

Arguments

sort: optional, defaults vary by resource

By default events are sorted by sort=datetime_utc.asc, venues and performers are sorted by sort=score.desc.
This argument takes two parameters, the field which to sort by and the direction of the sort separated with a .(period character). Valid sort directions are asc and desc. Valid fields are datetime_local, datetime_utc, announce_date, id and score

Definition

GET http://api.seatgeek.com/2/events?sort=score.desc

Example Request

$ curl 'http://api.seatgeek.com/2/events?sort=score.desc'

Filtering

The SeatGeek Platform API has basic support for filtering the response result set.

Filtering is only available on the events endpoint.

By default events are not filtered. You can filter the results based on listing_count, average_price, lowest_price, and highest_price. These filters work the same was at the date-based filtering. For example: you can append listing_count.gt=0 to return only events that have ticket listings, or highest_price.lte=20 to return events with a highest ticket price of $20 or less.

Definition

GET http://api.seatgeek.com/2/events?listing_count.gt=0

Example Request

$ curl 'http://api.seatgeek.com/2/events?listing_count.gt=0'

Score

Most document types include a score field. The score field is used to indicate the document's relative popularity within its type. score is a floating point value in 0 <= score <= 1.

Currently score values for events, venues and performers are based on estimated sales volume on the secondary ticket market (normalized such that the most popular document has a score of 1).

In the future, it's likely we'll introduce document types which don't have a meaningful concept of sales volume. We also reserve the right to change the method we use to calculate score. What this means for you as a developer is that your application shouldn't be overly reliant on particular score values, or the distribution of scores within (or across) document types.

Partners

The SeatGeek Platform API has built–in support for partners.

Arguments

aid: optional, default is null

Adding the aid argument will append an aid to all URLs

rid: optional, default is null

Adding the rid argument will append an rid to all URLs

Definition

GET http://api.seatgeek.com/2/events?aid=123

Example Request

$ curl 'http://api.seatgeek.com/2/events?aid=123'

$ curl 'http://api.seatgeek.com/2/events?rid=321'

$ curl 'http://api.seatgeek.com/2/events?aid=12332&rid=123'

Events

To find an events matching specific search criteria you must send a request to the /events endpoint. Sending a request to /events will return a paginated list of all events.

All arguments can be used with each other with the exception of the id argument. id can only be used with the API-wide arguments such as pagination and sorting.

Getting an event by id

To get a single event document, simply add the ID of the event to the URL

The Events Response Document

stats:
Summary information about currently available ticket listings for the event
title:
The title of the event
url:
URL of the event on seatgeek.com – you should direct users here to search for tickets
datetime_local:
Date/time of the event in the local timezone of the venue – you will generally want to display this to users

Note: When the time of an event is TBD (see time_tbd below), the API will use a sentinel time of 3:30 AM. Ensure that your code checks time_tbd and displays events appropriately.

datetime_utc:
Date and time of the event in UTC
announce_date:
Date this event was announced publicly
visible_until:
Event is valid for diplay until this datetime (UTC). Properly accounts for expiration policies for sports/music and events which are time_tbd
time_tbd:
A boolean flag to signify that an event has a "to be determined" time. If this is True, datetime_local will contain the sentinel value of 3:30am as well as the correct date
date_tbd:
A boolean flag to signify that an event has a "to be determined" date. If this is True, datetime_utc and datetime_local should be treated as estimates
datetime_tbd:
DEPRECATED. Will be removed
performers:
An list of performers – primary, home_team, away_team fields indicate the performer's role at the event
venue:
A venue response document
short_title:
A shortened title for the event
score:
A numerical representation of popularity based on ticket sales
taxonomies:
An array of taxonomies referencing the event
type:
Type of event
id:
A unique integer identifier for the event

Definition

GET http://api.seatgeek.com/2/events/801255

Example Request

$ curl 'http://api.seatgeek.com/2/events/801255'

Example Response Document

{
    "stats": {
        "listing_count": 161,
        "average_price": 97,
        "lowest_price": 62,
        "highest_price": 296
    },
    "title": "Young The Giant with Grouplove",
    "url": "http://seatgeek.com/young-the-giant-with-grouplove-tickets/new-york-new-york-terminal-5-2012-03-09/concert/721901/",
    "datetime_local": "2012-03-09T19:00:00",
    "performers": [
        {
            "name": "Young The Giant",
            "short_name": "Young The Giant",
            "url": "http://seatgeek.com/young-the-giant-tickets/",
            "image": "http://cdn.seatgeek.com/images/bandshuge/band_8741.jpg",
            "images": {
                "large": "http://cdn.seatgeek.com/images/performers/8741/eec61caec82950448b257c5e539147bc/large.jpg",
                "huge": "http://cdn.seatgeek.com/images/performers/8741/555bce1815140ad65ab0b1066467ae7d/huge.jpg",
                "small": "http://cdn.seatgeek.com/images/performers/8741/af7a8925e50bb74315337a9450206a39/small.jpg",
                "medium": "http://cdn.seatgeek.com/images/performers/8741/686f925886504610936135abd240235c/medium.jpg"
            },
            "primary": true,
            "id": 8741,
            "score": 6404,
            "type": "band",
            "slug": "young-the-giant"
        },
        {
            "name": "Grouplove",
            "short_name": "Grouplove",
            "url": "http://seatgeek.com/grouplove-tickets/",
            "image": null,
            "images": null,
            "id": 8987,
            "score": 4486,
            "type": "band",
            "slug": "grouplove"
        }
    ],
    "venue": {
        "city": "New York",
        "name": "Terminal 5",
        "extended_address": null,
        "url": "http://seatgeek.com/terminal-5-tickets/",
        "country": "US",
        "state": "NY",
        "score": 149.259,
        "postal_code": "10019",
        "location": {
            "lat": 40.77167,
            "lon": -73.99277
        },
        "address": null,
        "id": 814
    },
    "short_title": "Young The Giant with Grouplove",
    "datetime_utc": "2012-03-10T00:00:00",
    "score": 116.977,
    "taxonomies": [
        {
            "parent_id": null,
            "id": 2000000,
            "name": "concert"
        }
    ],
    "type": "concert",
    "id": 721901
}
}

performers Argument

The performers argument is used to scope the result set to specific performers. The performers argument may be used several times in the same query.

There are currently two fields available to specify how to look up performers. These are id and slug. These fields can be used interchangeably in the same query. See examples.

performers.{FIELD}: optional, default is null

The simplest query to the performers argument looks like this: /events?performers.slug=new-york-mets. This will return all events where the New York Mets are participating.

performers[{SPECIFICITY}].{FIELD}: optional, default is 'any' if the performers argument is present

Specificity can be any of the following: home_team, away_team, primary, or any

Primary could be useful when searching concerts for a headlining performer.

Example Requests

New York Mets Games
$ curl 'http://api.seatgeek.com/2/events?performers.slug=new-york-mets'

Mets vs. Yankees Games
$ curl 'http://api.seatgeek.com/2/events?performers.slug=new-york-mets&performers=new-york-yankees'

Yankees at. Mets Games
$ curl 'http://api.seatgeek.com/2/events?performers[home_team].id=3&performers.id=8'

Mets vs. Yankees Games (mixed fields)
$ curl 'http://api.seatgeek.com/2/events?performers.id=3&performers.slug=new-york-yankees'

venue Argument

The venue argument is used to scope the result set to a specific venue or to venues with specific properties. Any of the fields for searching for venues may be used with the venue argument (e.g. venue.city, venue.id, or venue.state).

Example Requests

Events in NY state
$ curl 'http://api.seatgeek.com/2/events?venue.state=NY'

datetime Argument

The datetime argument is used to scope the result set to events occurring within a certain date and time range. The datetime argument may be used zero, one, or two times in a query. You can scope the date to a range using operators.

There are two distinct datetime arguments that both offer identical options. You can scope the search to datetime_local or datetime_utc. All of the examples will use datetime_utc, however datetime_local can be replaced in all instances.

There are currently two allowed date/time formats. The first is a full ISO 8601 string (YYYY-MM-DDTHH:MM:SS), the other is a simple date string of the format of YYYY-MM-DD.

datetime_utc: optional, default is null

Accepts only the short date/time string. Returns all the matching events for a given date.

datetime_utc.{OPERATOR}: optional, default is null

Valid operators are gt, gte, lt, and lte

Example Requests

Events for June 12, 2012
$ curl 'http://api.seatgeek.com/2/events?datetime_utc=2012-06-12'

Events after Sept 7, 2012
$ curl 'http://api.seatgeek.com/2/events?datetime_utc.gt=2012-09-07'

Events in April 2012
$ curl 'http://api.seatgeek.com/2/events?datetime_utc.gte=2012-04-01&datetime_utc.lte=2012-04-30'

query Argument

The q argument is used to search across all possible parts of a response document.

q: optional, default is null

This is a very broad search, and will possibly return unexpected results. For example, a query for 'madison', will return all events at any venue in Madison, WI, venues with Madison in their name (Madison Square Garden), and any performer with 'Madison' in their title.

The q argument also allows for some natural language queries such as yankees march, or skrillex on june 4th

Example Requests

Matches 'boston celtics'
$ curl 'http://api.seatgeek.com/2/events?q=boston+celtics'

Matches 'Coachella'
$ curl 'http://api.seatgeek.com/2/events?q=coachella'

id Argument

The id argument is used to match events with specified unique ids. It can be used multiple times in the same request.

Note: Using this argument will override all other query arguments.

id: optional, default is null

This argument has two purposes. You can use it to force a single response document into the bulk response document. Alternatively you can use it to bulk retrieve events with known unique ids.

This argument also has an alternate syntax. You can pass a comma separated list of unique ids.

Example Requests

Bulk Document Response for 785673
$ curl 'http://api.seatgeek.com/2/events?id=785673'

Events 785673, 771261, and 760304
$ curl 'http://api.seatgeek.com/2/events?id=760304&id=771261&id=785673'

Alternate of above
$ curl 'http://api.seatgeek.com/2/events?id=760304,771261,785673'

taxonomies Argument

The taxonomies argument is used to scope the result set to events matching a specific type. You can find the list of currently available taxonomies at the taxonomies endpoint. You can search across multiple taxonomies by adding multiple taxonomies arguments to your query

taxononmies.{FIELD}: optional, default is null

{FIELD} can be name, id, and parent_id

Accepts one of several types.

Example Requests

Sporting Events
$ curl 'http://api.seatgeek.com/2/events?taxonomies.name=sports'

Monster Truck Events
$ curl 'http://api.seatgeek.com/2/events?taxonomies.name=monster_truck'

Sports or Concerts
$ curl 'http://api.seatgeek.com/2/events?taxonomies.name=sports&taxonomies.name=concert

Monster Truck Events (by taxonomy id)
$ curl 'http://api.seatgeek.com/2/events?taxonomies.id=1060400'

Performers

To find a performer matching your search criteria you will send a request to the /performers endpoint. Sending a request to /performers will return a paginated list of all performers.

All arguments can be used with each other with the exception of the id argument. id can only be used with API-wide arguments, such as those for pagination and sorting.

Getting a performer by id

To get a single performer document, simply add the ID of the performer to the URL.

The Performers Response Document

name:
Name of the performer
short_name:
A short name for the performer
url:
URL to the performer
image:
URL to an image of the performer
images:
A dict of performer images varying by size. Only available key
score:
A numerical representation of popularity
slug:
Short URL-friendly name for the performer
taxonomies:
An array of taxonomies referencing the performer
id:
Unique identifier of the performer
has_upcoming_events:
Does the performer have any upcoming events in the SeatGeek API?
links:
A list of link documents which allow you to easily map performers on SeatGeek to their profiles on other services across the web. Link documents contain a field indicating the provider and will generally contain a url and/or an ID. The currently supported providers are Spotify and Last.fm.

Definition

GET http://api.seatgeek.com/2/performers/266

Example Request

$ curl 'http://api.seatgeek.com/2/performers/266'

Example Response Document

{
    "name": "Beastie Boys",
    "short_name": "Beastie Boys",
    "url": "http://www.seatgeek.com/beastie-boys-tickets/",
    "image": "http://cdn.seatgeek.com/images/bandshuge/band_266.jpg",
    "images": {
        "large": "http://cdn.seatgeek.com/images/performers/266/7023f05926fc27d4efa299f5b1564884/large.jpg",
        "huge": "http://cdn.seatgeek.com/images/performers/266/3a6cd0ee3882e11d7b8ee6e10a2d7d6c/huge.jpg",
        "small": "http://cdn.seatgeek.com/images/performers/266/74d55c7072eb150a2546c66fe6acb19c/small.jpg",
        "medium": "http://cdn.seatgeek.com/images/performers/266/5ffae09b8d3bec74f78cc20c22b94ace/medium.jpg"
    },
    "id": 266,
    "score": 0,
    "taxonomies": [
        {
            "parent_id": null,
            "id": 2000000,
            "name": "concert"
        }
    ],
    "links": [
        {
            "id": "spotify:artist:03r4iKL2g2442PT9n2UKsx",
            "provider": "spotify",
            "url": "http://open.spotify.com/artist/03r4iKL2g2442PT9n2UKsx"
        }
        {
            "provider": "lastfm",
            "url": "http://www.last.fm/music/Beastie+Boys"
        }
    ],
    "type": "band",
    "slug": "beastie-boys"
}

slug Argument

The slug argument is used to scope the result to a performer matching a slug.

slug: optional, default is null

A query to the slug argument looks like this: /performers?slug=new-york-mets. This will return a performer document matching the New York Mets

Example Requests

New York Mets
$ curl 'http://api.seatgeek.com/2/performers?slug=new-york-mets'

query Argument

The q argument is used to search across all possible parts of a response document.

q: optional, default is null

This is a very broad search, and, like events and venues, will possibly return unexpected results.

Example Requests

Matches 'red hot'
$ curl 'http://api.seatgeek.com/2/performers?q=red+hot'

Matches 'skrillex'
$ curl 'http://api.seatgeek.com/2/performers?q=skrillex'

id Argument

The id argument is used to match performers with specified unique ids. It can be used multiple times in the same request.

Note: Using this argument will override all other query arguments.

id: optional, default is null

This argument has two purposes. You can use it to force a single response document into the bulk response document. Alternatively, you can use it to bulk retrieve events with known unique ids.

This argument also has an alternate syntax. You can pass a comma separated list of unique ids.

Example Requests

Bulk Document Response for 1169
$ curl 'http://api.seatgeek.com/2/performers?id=1169'

Venues 2090, 9525, and 6393
$ curl 'http://api.seatgeek.com/2/performers?id=2090&id=9525&id=6393'

Alternate of above
$ curl 'http://api.seatgeek.com/2/performers?id=2090,9525,6393'

taxonomies Argument

The taxonomies argument is used to scope the result set to performers matching a specific type. You can find the list of currently available taxonomies at the taxonomies endpoint.

taxonomies.{FIELD}: optional, default is null

{FIELD} can be name, id, and parent_id

Accepts one of several types.

Example Requests

Sporting Events
$ curl 'http://api.seatgeek.com/2/performers?taxonomies.name=sports'

Monster Truck Events
$ curl 'http://api.seatgeek.com/2/performers?taxonomies.name=monster_truck'

Monster Truck Events (by taxonomy id)
$ curl 'http://api.seatgeek.com/2/performers?taxonomies.id=1060400'

Venues

To find a venue matching your search criteria you will send a request to the /venues endpoint. Sending a request to /venues will return a paginated list of all performers.

All arguments can be used with each other, with the exception of the id argument. id can only be used with the API-wide arguments, such as those for pagination and sorting.

Getting a venue by id

To get a single venue document, simply add the ID of the performer to the URL

The Venue Response Document

name:
Name of the venue
address:
"Line 1" of the venue's address
extended_address:
"Line 2" of the venue's address
city:
City of the venue
postal_code:
Postal code of the venue
state:
State of the venue
country:
Country of the venue
location:

An dictionary of geolocation information for the venue that contains lat and lon

url:
URL to the venue on seatgeek.com
score:
A numerical representation of popularity
id:
A unique integer identifier of the venue

Definition

GET http://api.seatgeek.com/2/venues/632

Example Request

$ curl 'http://api.seatgeek.com/2/venues/632'

Example Response Document

{
    "city": "Rockford",
    "name": "Rockford MetroCentre",
    "extended_address": null,
    "url": "http://www.seatgeek.com/rockford-metrocentre-tickets/",
    "country": "US",
    "state": "IL",
    "score": 33.0208,
    "postal_code": "61101",
    "location": {
        "lat": 42.2714,
        "lon": -89.09612
    },
    "address": "300 Elm St.",
    "id": 632
}

city Argument

The city argument is used to scope the result to a specified city.

city: optional, default is null

A query to the city argument looks like this: /venues?city=rockford. This will return documents for venues located in "Rockford."

Example Requests

Rockford
$ curl 'http://api.seatgeek.com/2/venues?city=rockford'

state Argument

The state argument is used to scope the result to a specified state.

state: optional, default is null

A query to the state argument looks like this: /venues?state=IL. This will return documents for venues located in Illinois.

The two letter state abbreviation should be used for this query.

Example Requests

Venues in Illinois
$ curl 'http://api.seatgeek.com/2/venues?state=il'

country Argument

The country argument is used to scope the result to a specified country.

country: optional, default is null

A query to the country argument looks like this: /venues?country=US. This will return documents for venues located in the United States.

The two letter country code should be used for this query.

Example Requests

Venues in the US
$ curl 'http://api.seatgeek.com/2/venues?country=US'

postal_code Argument

The postal_code argument is used to scope the result to a specified postal/zip code.

postal_code: optional, default is null

A query to the postal_code argument looks like this: /venues?postal_code=90210. This will return documents for venues located in 90210.

Example Requests

Rockford
$ curl 'http://api.seatgeek.com/2/venues?postal_code=90210'

query Argument

The q argument is used to search across all possible parts of a response document.

q: optional, default is null

This is a very broad search, and, like events and performers, will possibly return unexpected results.

Example Requests

Matches 'madison'
$ curl 'http://api.seatgeek.com/2/venues?q=madison'

id Argument

The id argument is used to match venues with specified unique ids. It can be used multiple times in the same request.

Note: Using this argument will override all of your other query arguments

id: optional, default is null

This argument has two purposes. You can use it to force a single response document into the bulk response document. Alternatively you can use it to bulk retrieve events with known unique ids.

This argument also has an alternate syntax. You can pass a comma separated list of unique ids.

Example Requests

Bulk Document Response for 1130
$ curl 'http://api.seatgeek.com/2/venues?id=1130'

Venues 1130, 128, and 93
$ curl 'http://api.seatgeek.com/2/venues?id=1130&id=128&id=93'

Alternate of above
$ curl 'http://api.seatgeek.com/2/venues?id=1130,128,93'

Taxonomies

To retrieve a list off all available taxonomies available for taxonomy filtering simply call the taxonomies endpoint.

The Taxonomies Response Document

parent_id:
Identifier of a parent taxonomy
name:
The name of the taxonomy
id:
A unique integer identifier for the taxonomy

Definition

GET http://api.seatgeek.com/2/taxonomies

Example Request

$ curl 'http://api.seatgeek.com/2/taxonomies'

Example Response Document

{
  "taxonomies": [
      {
        "parent_id": null,
        "id": 1000000,
        "name": "sports"
      },
      { ... }
  ]
}

Recommendations

Note: The recommendations endpoint requires a valid SeatGeek api key. You can request one here.

The SeatGeek API supports retrieval of recommended events based on one of several different 'seed' types. A seed can be thought of as "X in the request, "give me events similar to X".

To find recommended events, send a request to the /recommendations endpoint with a seed and any of the supported parameters from the events endpoint. This will return a paginated list of recommendation documents, each of which contains a single event and a affinity score. Recommendations are returned sorted by score, highest to lowest.

Authentication

Unlike all other endpoints in the SeatGeek API, the recommendations endpoint requires an API key. You can request an API key here (Note: You will need to create a SeatGeek account to proceed)

Only your public key is required, and should be added to your API request using the client_id query parameter. See example.

Supported Seed Types

performers.id
one or more performer ids
events.id
one event id

Geolocation

Geolocation is required on the /recommendations endpoint. Location is used both to filter the resulting set of recommendations and to score those recommendations (i.e. a closer event will have a higher affinity score than an identical event which is further away). The following geolocation parameters are available

geoip: optional, default is false
Accepts one of: a valid IP address (useful when making a request server-side on behalf of a client); a valid US or Canadian postal code; or true, to attempt to geolocate by the requesting client's IP (useful when calling directly from a browser).
lat: optional, lon is required if used
Latitude in decimal degrees.
lon: optional, lat is required if used
Longitude in decimal degrees.
postal_code optional
Valid US or Canadian Postal (zip) code
range: optional, default is 200mi
Only return events within a given radius of the geolocation point

Additional Arguments

To restrict the set of events returned, most of the query parameters valid on the events endpoint are also valid on the recommendations endpoint

datetime_utc and datetime_local
Restricts recommendations by date. Valid operators are lt, gt, lte, gte
venue.id and venue.slug
Restricts recommendations to a specific venue
taxonomies.id and taxonomies.name
Restricts recommendations to a specific taxonomy

Definition

GET http://api.seatgeek.com/2/recommendations

Events Similar To Taylor Swift In New York

$ curl 'http://api.seatgeek.com/2/recommendations?performers.id=35&postal_code=10014&client_id=YOUR_KEY'

Events Similar To The New York Knicks In Los Angeles

$ curl 'http://api.seatgeek.com/2/recommendations?performers.id=2090&postal_code=90001&client_id=YOUR_KEY'

Music Festivals Similar To Franz Ferdinand In Indio, CA In April

$ curl 'http://api.seatgeek.com/2/recommendations?performers.id=93&postal_code=92201&datetime_local.gte=2013-04-01&datetime_local.lt=2013-05-01&taxonomies.id=2010000&client_id=YOUR_KEY'

Events Similar To Bruce Springsteen + The Zac Brown Band in Chicago

$ curl 'http://api.seatgeek.com/2/recommendations?performers.id=2047&performers.id=4275&postal_code=60651&client_id=YOUR_KEY'

Events Similar To An Event In New York

$ curl 'http://api.seatgeek.com/2/recommendations?events.id=1162104&postal_code=10014&client_id=YOUR_KEY'

Example Response Document

{
  "recommendations" : [
    {
      score: 0.24,
      event: {
        id: 1327132,
        title: "Galactic",
        ...
      }
    },
    {
      score: 0.07,
      event: {
        id: 1333644,
        title: "Talib Kweli",
        ...
      }
    }
  ]
}

Mobile Hooks

Opening seatgeek:// (or sending the Intent on Android), followed by one of the following parameters, will open our app and perform the related action.

app
Opens the home view
about
Opens the about view
events/ID
Opens the event with the given ID
performers/ID
Opens the performer with the given ID
venues/ID
Opens the venue with the given ID
search?q=SEARCH_QUERY
Opens the search view with the given SEARCH_QUERY

Support

If you need any additional help with the SeatGeek Platform, you can send us an email to hi@seatgeek.com or post a message on our support forum.

Frequently Asked Questions

Where can I get the ticket listings for an event/performer/venue?

SeatGeek has no plans to expose individual ticket listings via the API. For ticket listings you should redirect your users to the corresponding event, performer, or venue pages exposed in the url attribute of each resource.

Where can I get documentation for API V1?

API V1 is officially deprecated. Please update your code to use API V2

Are you integrated with The EchoNest Rosetta Stone project?

We sure are. Seatgeek performer ids for most bands in the 2000000 taxonomy can be used to access the EchoNest API. See this for more details.

Announcements

We recommend that all developers building on top of this API subscribe to our announcement-only Google Group. We use that channel to alert developers of major new features, breaking changes, etc.