Find an API

Search public APIs with auth details & Postman guides

← All APIs

Discovery API

ticketmaster · Commerce

Commerce No Auth Free & Open ecommerce

The Ticketmaster Discovery API allows you to search for events, attractions, or venues.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Attraction Search

Find attractions (artists, sports, packages, plays and so on) and filter your search by name, and much more.

https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions?id=&page=0&size=20&sort=relevance,desc&locale=en&source=&keyword=&includeTest=no&classificationId=&includeSpellcheck=no&classificationName=&includeLicensedContent=no

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions?id=&page=0&size=20&sort=relevance%2Cdesc&locale=en&source=&keyword=&includeTest=no&classificationId=&includeSpellcheck=no&classificationName=&includeLicensedContent=no"
import requests
params = {
    "id": "",
    "page": "0",
    "size": "20",
    "sort": "relevance,desc",
    "locale": "en",
    "source": "",
    "keyword": "",
    "includeTest": "no",
    "classificationId": "",
    "includeSpellcheck": "no",
    "classificationName": "",
    "includeLicensedContent": "no"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions');
url.searchParams.set('id', '');
url.searchParams.set('page', '0');
url.searchParams.set('size', '20');
url.searchParams.set('sort', 'relevance,desc');
url.searchParams.set('locale', 'en');
url.searchParams.set('source', '');
url.searchParams.set('keyword', '');
url.searchParams.set('includeTest', 'no');
url.searchParams.set('classificationId', '');
url.searchParams.set('includeSpellcheck', 'no');
url.searchParams.set('classificationName', '');
url.searchParams.set('includeLicensedContent', 'no');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions")
	q := baseURL.Query()
	q.Set("id", "")
	q.Set("page", "0")
	q.Set("size", "20")
	q.Set("sort", "relevance,desc")
	q.Set("locale", "en")
	q.Set("source", "")
	q.Set("keyword", "")
	q.Set("includeTest", "no")
	q.Set("classificationId", "")
	q.Set("includeSpellcheck", "no")
	q.Set("classificationName", "")
	q.Set("includeLicensedContent", "no")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions")
uri.query = URI.encode_www_form({
  "id" => "",
  "page" => "0",
  "size" => "20",
  "sort" => "relevance,desc",
  "locale" => "en",
  "source" => "",
  "keyword" => "",
  "includeTest" => "no",
  "classificationId" => "",
  "includeSpellcheck" => "no",
  "classificationName" => "",
  "includeLicensedContent" => "no"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/attractions?" . http_build_query([
    "id" => "",
    "page" => "0",
    "size" => "20",
    "sort" => "relevance,desc",
    "locale" => "en",
    "source" => "",
    "keyword" => "",
    "includeTest" => "no",
    "classificationId" => "",
    "includeSpellcheck" => "no",
    "classificationName" => "",
    "includeLicensedContent" => "no"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Classification Search

Find classifications and filter your search by name, and much more. Classifications help define the nature of attractions and events.

https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications?id=&page=0&size=20&sort=name,asc&locale=en&source=&keyword=&includeTest=no&includeSpellcheck=no&includeLicensedContent=no

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications?id=&page=0&size=20&sort=name%2Casc&locale=en&source=&keyword=&includeTest=no&includeSpellcheck=no&includeLicensedContent=no"
import requests
params = {
    "id": "",
    "page": "0",
    "size": "20",
    "sort": "name,asc",
    "locale": "en",
    "source": "",
    "keyword": "",
    "includeTest": "no",
    "includeSpellcheck": "no",
    "includeLicensedContent": "no"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications');
url.searchParams.set('id', '');
url.searchParams.set('page', '0');
url.searchParams.set('size', '20');
url.searchParams.set('sort', 'name,asc');
url.searchParams.set('locale', 'en');
url.searchParams.set('source', '');
url.searchParams.set('keyword', '');
url.searchParams.set('includeTest', 'no');
url.searchParams.set('includeSpellcheck', 'no');
url.searchParams.set('includeLicensedContent', 'no');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications")
	q := baseURL.Query()
	q.Set("id", "")
	q.Set("page", "0")
	q.Set("size", "20")
	q.Set("sort", "name,asc")
	q.Set("locale", "en")
	q.Set("source", "")
	q.Set("keyword", "")
	q.Set("includeTest", "no")
	q.Set("includeSpellcheck", "no")
	q.Set("includeLicensedContent", "no")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications")
uri.query = URI.encode_www_form({
  "id" => "",
  "page" => "0",
  "size" => "20",
  "sort" => "name,asc",
  "locale" => "en",
  "source" => "",
  "keyword" => "",
  "includeTest" => "no",
  "includeSpellcheck" => "no",
  "includeLicensedContent" => "no"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/classifications?" . http_build_query([
    "id" => "",
    "page" => "0",
    "size" => "20",
    "sort" => "name,asc",
    "locale" => "en",
    "source" => "",
    "keyword" => "",
    "includeTest" => "no",
    "includeSpellcheck" => "no",
    "includeLicensedContent" => "no"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Event Search

Find events and filter your search by location, date, availability, and much more.

https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events?id=&city=&page=0&size=20&sort=relevance,desc&unit=miles&dmaId=&locale=en&radius=50&source=&keyword=&latlong=&venueId=&geoPoint=&marketId=&segmentId=&stateCode=&includeTBA=no if date parameter sent, yes otherwise&includeTBD=no if date parameter sent, yes otherwise&postalCode=&promoterId=&countryCode=&endDateTime=&includeTest=no&segmentName=&attractionId=&startDateTime=&classificationId=&clientVisibility=&includeSpellcheck=no&onsaleEndDateTime=&onsaleOnStartDate=&classificationName=&onsaleStartDateTime=&includeLicensedContent=no&onsaleOnAfterStartDate=

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events?id=&city=&page=0&size=20&sort=relevance%2Cdesc&unit=miles&dmaId=&locale=en&radius=50&source=&keyword=&latlong=&venueId=&geoPoint=&marketId=&segmentId=&stateCode=&includeTBA=no%20if%20date%20parameter%20sent%2C%20yes%20otherwise&includeTBD=no%20if%20date%20parameter%20sent%2C%20yes%20otherwise&postalCode=&promoterId=&countryCode=&endDateTime=&includeTest=no&segmentName=&attractionId=&startDateTime=&classificationId=&clientVisibility=&includeSpellcheck=no&onsaleEndDateTime=&onsaleOnStartDate=&classificationName=&onsaleStartDateTime=&includeLicensedContent=no&onsaleOnAfterStartDate="
import requests
params = {
    "id": "",
    "city": "",
    "page": "0",
    "size": "20",
    "sort": "relevance,desc",
    "unit": "miles",
    "dmaId": "",
    "locale": "en",
    "radius": "50",
    "source": "",
    "keyword": "",
    "latlong": "",
    "venueId": "",
    "geoPoint": "",
    "marketId": "",
    "segmentId": "",
    "stateCode": "",
    "includeTBA": "no if date parameter sent, yes otherwise",
    "includeTBD": "no if date parameter sent, yes otherwise",
    "postalCode": "",
    "promoterId": "",
    "countryCode": "",
    "endDateTime": "",
    "includeTest": "no",
    "segmentName": "",
    "attractionId": "",
    "startDateTime": "",
    "classificationId": "",
    "clientVisibility": "",
    "includeSpellcheck": "no",
    "onsaleEndDateTime": "",
    "onsaleOnStartDate": "",
    "classificationName": "",
    "onsaleStartDateTime": "",
    "includeLicensedContent": "no",
    "onsaleOnAfterStartDate": ""
}
response = requests.get(
    "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events');
url.searchParams.set('id', '');
url.searchParams.set('city', '');
url.searchParams.set('page', '0');
url.searchParams.set('size', '20');
url.searchParams.set('sort', 'relevance,desc');
url.searchParams.set('unit', 'miles');
url.searchParams.set('dmaId', '');
url.searchParams.set('locale', 'en');
url.searchParams.set('radius', '50');
url.searchParams.set('source', '');
url.searchParams.set('keyword', '');
url.searchParams.set('latlong', '');
url.searchParams.set('venueId', '');
url.searchParams.set('geoPoint', '');
url.searchParams.set('marketId', '');
url.searchParams.set('segmentId', '');
url.searchParams.set('stateCode', '');
url.searchParams.set('includeTBA', 'no if date parameter sent, yes otherwise');
url.searchParams.set('includeTBD', 'no if date parameter sent, yes otherwise');
url.searchParams.set('postalCode', '');
url.searchParams.set('promoterId', '');
url.searchParams.set('countryCode', '');
url.searchParams.set('endDateTime', '');
url.searchParams.set('includeTest', 'no');
url.searchParams.set('segmentName', '');
url.searchParams.set('attractionId', '');
url.searchParams.set('startDateTime', '');
url.searchParams.set('classificationId', '');
url.searchParams.set('clientVisibility', '');
url.searchParams.set('includeSpellcheck', 'no');
url.searchParams.set('onsaleEndDateTime', '');
url.searchParams.set('onsaleOnStartDate', '');
url.searchParams.set('classificationName', '');
url.searchParams.set('onsaleStartDateTime', '');
url.searchParams.set('includeLicensedContent', 'no');
url.searchParams.set('onsaleOnAfterStartDate', '');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events")
	q := baseURL.Query()
	q.Set("id", "")
	q.Set("city", "")
	q.Set("page", "0")
	q.Set("size", "20")
	q.Set("sort", "relevance,desc")
	q.Set("unit", "miles")
	q.Set("dmaId", "")
	q.Set("locale", "en")
	q.Set("radius", "50")
	q.Set("source", "")
	q.Set("keyword", "")
	q.Set("latlong", "")
	q.Set("venueId", "")
	q.Set("geoPoint", "")
	q.Set("marketId", "")
	q.Set("segmentId", "")
	q.Set("stateCode", "")
	q.Set("includeTBA", "no if date parameter sent, yes otherwise")
	q.Set("includeTBD", "no if date parameter sent, yes otherwise")
	q.Set("postalCode", "")
	q.Set("promoterId", "")
	q.Set("countryCode", "")
	q.Set("endDateTime", "")
	q.Set("includeTest", "no")
	q.Set("segmentName", "")
	q.Set("attractionId", "")
	q.Set("startDateTime", "")
	q.Set("classificationId", "")
	q.Set("clientVisibility", "")
	q.Set("includeSpellcheck", "no")
	q.Set("onsaleEndDateTime", "")
	q.Set("onsaleOnStartDate", "")
	q.Set("classificationName", "")
	q.Set("onsaleStartDateTime", "")
	q.Set("includeLicensedContent", "no")
	q.Set("onsaleOnAfterStartDate", "")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events")
uri.query = URI.encode_www_form({
  "id" => "",
  "city" => "",
  "page" => "0",
  "size" => "20",
  "sort" => "relevance,desc",
  "unit" => "miles",
  "dmaId" => "",
  "locale" => "en",
  "radius" => "50",
  "source" => "",
  "keyword" => "",
  "latlong" => "",
  "venueId" => "",
  "geoPoint" => "",
  "marketId" => "",
  "segmentId" => "",
  "stateCode" => "",
  "includeTBA" => "no if date parameter sent, yes otherwise",
  "includeTBD" => "no if date parameter sent, yes otherwise",
  "postalCode" => "",
  "promoterId" => "",
  "countryCode" => "",
  "endDateTime" => "",
  "includeTest" => "no",
  "segmentName" => "",
  "attractionId" => "",
  "startDateTime" => "",
  "classificationId" => "",
  "clientVisibility" => "",
  "includeSpellcheck" => "no",
  "onsaleEndDateTime" => "",
  "onsaleOnStartDate" => "",
  "classificationName" => "",
  "onsaleStartDateTime" => "",
  "includeLicensedContent" => "no",
  "onsaleOnAfterStartDate" => ""
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/ticketmaster.com/discovery/v2/discovery/v2/events?" . http_build_query([
    "id" => "",
    "city" => "",
    "page" => "0",
    "size" => "20",
    "sort" => "relevance,desc",
    "unit" => "miles",
    "dmaId" => "",
    "locale" => "en",
    "radius" => "50",
    "source" => "",
    "keyword" => "",
    "latlong" => "",
    "venueId" => "",
    "geoPoint" => "",
    "marketId" => "",
    "segmentId" => "",
    "stateCode" => "",
    "includeTBA" => "no if date parameter sent, yes otherwise",
    "includeTBD" => "no if date parameter sent, yes otherwise",
    "postalCode" => "",
    "promoterId" => "",
    "countryCode" => "",
    "endDateTime" => "",
    "includeTest" => "no",
    "segmentName" => "",
    "attractionId" => "",
    "startDateTime" => "",
    "classificationId" => "",
    "clientVisibility" => "",
    "includeSpellcheck" => "no",
    "onsaleEndDateTime" => "",
    "onsaleOnStartDate" => "",
    "classificationName" => "",
    "onsaleStartDateTime" => "",
    "includeLicensedContent" => "no",
    "onsaleOnAfterStartDate" => ""
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Discovery API?

Discovery API is a Commerce API. Developers commonly use commerce APIs for:

  • syncing product catalogues and inventory levels
  • building price comparison and deal-finder tools
  • processing orders and tracking shipments
  • managing customer wishlists and reviews
  • automating abandoned-cart and promotional emails

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Discovery API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide

Open documentation ↗