The UK Gig Archive

API & data

Every record on this site, as plain JSON you can fetch with anything. Free to use, public domain, and please be kind to the server.

The short version

There is no query server. The records are published as static JSON files, one per year, and those files are the API: the browse page is a client of exactly the same URLs. No sign-up, no key for ordinary use.

Endpoints

URLWhat it returns
/api/meta.json Counts, the list of years with their record counts and URLs, papers, top towns, acts and venues, and when it was built. Start here.
/api/gigs/YYYY.json Every gig dated in that year, as an array of records.
/api/gigs/undated.json Gigs the paper printed without a usable date (mostly reviews and tour notices).
/api/bands.json Every named act, A to Z: gigs recorded, first and last year. The list behind the Bands page.
/api/venues.json Every reviewed venue: town, name, locality, gigs, first and last year. The list behind the Venues page.
/api/papers.json Per paper: gigs, listings, issues read and its span, with issues and listings year by year. The data behind the Papers page.

Examples

# what's in the archive
curl -s https://ukgigarchive.co.uk/api/meta.json | jq '.counts'

# every gig from one year
curl -s https://ukgigarchive.co.uk/api/gigs/1979.json | jq 'length'

# every gig at one venue in a year, by its resolved name
curl -s https://ukgigarchive.co.uk/api/gigs/1986.json \
  | jq '.[] | select(.vn == "Dingwalls")'

# one row per GIG rather than per listing: group by the gig id
curl -s https://ukgigarchive.co.uk/api/gigs/1986.json \
  | jq 'map(select(.g)) | group_by(.g) | map({g: .[0].g, d: .[0].d, b: .[0].b, listings: length})'

# every date one act played, across all years
for y in $(curl -s https://ukgigarchive.co.uk/api/meta.json | jq -r '.years[].year'); do
  curl -s https://ukgigarchive.co.uk/api/gigs/$y.json \
    | jq -r --arg b "The Fall" '.[] | select(.b[]? == $b) | [.d, .t, .vn // .v] | @tsv'
done

Fields

Keys are short because at full size the key names alone would run to megabytes. A key is simply absent when it has no value.

ddate, YYYY-MM-DD
dwday of week, three letters
dchow the date was known: absent means printed in full; otherwise how it was inferred
ttown, uppercase
tpthe town as the paper printed it, when the resolved venue puts the gig elsewhere
vvenue, cleaned
vrvenue exactly as printed, when it differs from v
vnresolved venue name: the one identity behind all its printed spellings
vlthe resolved venue's locality, where a name alone is ambiguous (Red Lion, Kings Head)
vsthe resolved venue's stable slug, safe to link or join on
vchow many gigs in the archive are at that venue
pthe venue's phone number as printed
bthe bill, an array, headliner first
brthe bill as printed, when it differs
nbpresent when the bill includes a billing that isn't an artist (a disco, a DJ)
nnote: benefit gigs, support billing, how a garbled line was read, anything odd
evevidence grade: c corroborated, k consistent, v venue known, s single sighting (see About)
cthe reader's own confidence in the line: a note on how garbled it looked, not comparable between records
sthow it was printed: gig-guide, advert, tour-announcement, festival, live-review
pubthe paper: record-mirror, sounds, nme
ggig id. Each record is one listing (one printed sighting); listings that share a g are the same gig: the same act, town and night. Absent when there's no date or no act to group on. Stable across rebuilds
gxpresent when the same act is listed in another town that night: one of the dates is wrong
gvpresent when the listings of one gig name different venues
sithe issue it was printed in, by cover date
spthe page it was printed on

Everything at once

If you want the whole archive, please take the bulk download rather than walking every year: it's one request instead of dozens, and it's always current.

The bulk download (one compressed file of every record) arrives when the site goes live.

Fair use

The data is public domain, so this is about sharing the server, not about rights:

Building something bigger (an app, a research project, a site that uses the data heavily)? Get in touch and we'll sort out access that suits both sides.

Contact details and any API keys for heavy use arrive when the site goes live.

The fine print

The records are released under CC0. They describe what the music papers printed, which isn't always what happened; see About for how far to trust them. The scanned pages themselves remain their publishers' copyright and are not served here; each record's pub, si and sp tell you where to find the original.