A Swift wrapper around the API, ready to use for iOS and macOS applications

What's New

Async/await support


This release adds async/await support and bumps the Swift Toolchain version to 5.9.

SetlistFMKit - A API wrapper for Swift

A simple Swift wrapper around the API. is a large internet database of detailed, community-provided live-concert setlists (lists of songs played) by any artist throughout history.

This wrapper is intended to help you integrate data from into your iOS or macOS application, without having to know the various idiosyncrasies of the API. A basic built-in networking implementation using URLSession handles RESTful GET requests to the 15 available endpoints, and the corresponding method signatures allow fully parameterized requests to those endpoints. Calling any one of the 15 wrapper methods will return asynchronously a deserialized object corresponding to the JSON returned from the associated endpoint behind-the-scenes. All wrapper methods are covered fully by Unit Tests, which utilize sample reponses from the API. These Unit Tests verify correctness of this wrapper but also serve as a reference for the API and useage of the wrapper.

Although the default networking implementation for this wrapper uses URLSession.shared, you may specify your own networking implementation that this wrapper should use, as long as your networking implementation conforms to the wrapper's URLSessionProtocol.


  • Swift 5.0 or greater
  • Xcode 13 or greater
  • A user account at (to get an API key)


To use this API wrapper, you must generate your own API key. Generating a key is free and can be done quickly here:

After generating your key, you are ready to go!

import SetlistFMKit

let wrapper = SetlistFMWrapper(apiKey: "your-api-key")
wrapper.searchSetlists(artistName: "Radiohead") { result in
    switch result {
    case .success(let setlistResponse):
        let matchingSetlists = setlistResponse.setlist
    case .failure(let error):


This API wrapper is capable of returning results in up to 8 languages, as these are the languages supported by the Setlist.FM API currently:

  • English
  • Spanish
  • French
  • German
  • Portuguese
  • Turkish
  • Italian
  • Polish

To get results in any of these languages, pass in their associated enum case in the initializer of the wrapper. For example:

let wrapper = SetlistFMWrapper(apiKey: "your-api-key", language: .portugese)


Full documentation for the API is available here:

This wrapper also features documentation comments ported from the documentation provided in the link above, so all methods and properties are annotated with helpful, descriptive sentences that describe their purpose and usage.

Additional Features

There are currently no additional features, but there are plans to add the following enhancements to this framework, to make it more of a super-wrapper:

  • If a page number is not provided, return all pages of results (TODO)
  • Add methods that report artist statistics just like the website does (TODO)
  • Update to use async/await


  • Swift Tools 5.9.0
View More Packages from this Author


  • None
Last updated: Wed Jun 26 2024 23:24:06 GMT-0900 (Hawaii-Aleutian Daylight Time)