On-request concert markets are not live yet. They will be released soon, and this page describes how they will work at launch.
Flow
- Check what can be created with Get Concert Cancellation Market Availability.
- Find the show with Get Concerts or Search Concerts.
- Call Create Concert Cancellation Market with the show, its scheduled date and a cover. It returns the
market_ticker, creating the market if it doesn’t exist yet. - Send an RFQ for that ticker with
POST /communications/rfqs. - Makers quote, you accept one side, and the maker confirms. This part is the same as for any other RFQ.
- The market closes when the show is scheduled to start. Settlement is expected about 12 hours after the scheduled date ends at the venue.
rfq_created on the communications WebSocket channel with the market’s ticker, and the ticker says which show and cover it is for (see Tickers).
What you can request
A market is defined by three things: the show, the date it is scheduled for, and the cover.
A show can have one market per cover. Not every cover is offered everywhere, and the set can differ between production and demo. The availability endpoint is the source of truth: a cover missing from its
covers list can’t be created, and enabled: false means creation is off entirely. It needs no authentication.
Show. A concert listed by JamBase, named by its jambase_event_id (jambase:<id>). The show must still be listed as scheduled: one that has already been canceled or postponed is refused.
Date. scheduled_date is the date the show is scheduled for, local to the venue, as YYYY-MM-DD. It must match the show’s listing at the moment the market is created. If the show has moved since you read the listing, the request returns 409 with the new date in details.
Timing. A new market’s show must start more than an hour from now, and no more than max_days_ahead days out (from the availability endpoint). While the listing gives only a date and no start time, the start of that day at the venue is used.
Find a show
Availability lists the metros whose concerts you can browse, with the number of upcoming shows in each:date_from and date_to (YYYY-MM-DD, both inclusive) to count only the shows in those dates.
List a metro’s concerts, soonest first, 50 to a page:
scheduled_dateandstart_timeare local to the venue, intimezone.start_timehas no UTC offset and is left out while only the date is announced.marketshas one entry per offered cover, with the tickers the show has or would get. A ticker listed here names a market that may not exist yet, so create it before sending an RFQ.- Read further pages with
page, up tototal_pages. A listing holds at most 20 pages (1,000 shows), so narrow the dates to reach later shows in a busy metro.
GET /concert_cancellation_markets/concerts/search?q=<name> returns up to 50 concerts in the same shape, across metros. q is matched against the acts on the bill and may also match venues and cities. Both endpoints need authentication and return only shows a market can still be created for.
Create a market
jambase_event_id and scheduled_date from a listing or search result.
The same request returns the same market, with created: false once it exists, until it closes. You can call it before each RFQ. An existing market is returned even when new markets are no longer offered. A market created a moment ago may not be readable yet: if GET /markets/{ticker} returns 404 right after creation, retry.
Then request quotes on it with POST /communications/rfqs:
Tickers
A ticker fully defines its market, so a maker can tell what an RFQ is for from the ticker alone.KXRFQCONCERTP-JB16543035-26NOV20-PPD
The first three segments are the event ticker. Each event holds one market, so a show with all three covers has three events, one in each series.
The market’s
title names the act, venue and date, and rules_primary states the show and what resolves it to Yes in words.
Finding these markets
Series starting withKXRFQ are left out of unscoped listings, so that markets created for one request don’t crowd out everything else:
GET /marketsandGET /historical/marketsskip them unless the request setsseries_ticker,event_tickerortickersto one of them. OnGET /markets,mve_filter=excludeskips them even then.GET /historical/marketstakes only one of those four filters at a time.GET /markets/tradesandGET /historical/tradesskip their trades unless the request setsticker.GET /eventsleaves them out, including when the request setsseries_tickerto one of their series.GET /seriesleaves their series out.- The WebSocket
tradeandtickerchannels deliver them only to subscriptions that list the market.market_lifecycle_v2leaves them out.
GET /markets/{ticker}, GET /events/{event_ticker} and GET /series/{series_ticker}.
Settlement
- The market closes when the show is scheduled to start (
close_time), or at the start of the scheduled day at the venue when the listing gave only a date. - It settles on the show’s JamBase listing, read once the scheduled date has ended in the venue’s time zone plus 12 hours (
expected_expiration_time). The wait lets late cancellations and corrections to the listing land first. Changes to the listing after it is read don’t change the outcome. - Only the listing’s status and date decide the outcome:
- A show that is both moved and canceled counts as canceled.
- If the listing has been removed or merged into another, or its status can’t be read, the exchange determines the market.
latest_expiration_timeis seven days afterexpected_expiration_time.
rules_primary and rules_secondary carry the full terms.
Limits and errors
The create endpoint is charged against your write rate limit, and the listing and search against your read limit. Creation and search limits are separate from request-rate limits.
The specific reason is in the error’s
details when there is one; a rate-limit error can come without it. A missing or malformed query parameter on the listing, search or availability endpoints returns 400 before the request is looked at further.