Reverb

Welcome to the Reverb API

Welcome to the Reverb developer hub. You'll find comprehensive guides and documentation to help you start working with Reverb as quickly as possible, as well as support if you get stuck.

Get Started

Getting Started

Before you start with the API, please register your application for sandbox access.

Them's the rules

If you want to jam out with the Reverb API, it's probably best you follow these tips and guidelines:

The Rule
The Why

Content Types

Please set your Accept and Content-Type header to "application/hal+json"

HAL is a JSON linking and embedding standard that makes our API easier for you to consume by following links much like you might on a webpage.

Use Links

You should never construct your own URLs or assume anything about the URL structure of the application.

Our resources link to the actions you can take on them. If you follow the links your app is less likely to break if we decide to change how the links are structured.

Links are sometimes verbs like "add_to_wishlist" and sometimes resource nouns like "lists". We are primarily focusing on resource nouns like "lists" unless there is ambiguity, in which case we use verbs.

Most resource endpoints behave similarly (accepting GET/PUT/POST/DELETE requests that do what you would think). Some endpoints only do a subset of those actions. To find out what's possible, just try to do what you're doing and watch the error response.

Content Types - a common pitfall

Requests are sensitive to the Content-Type header. If you use application/hal+json your body must be a json encoded string. If you use application/x-www-form-urlencoded or leave off the content type, your body must be a urlencoded parameter string.

Use application/hal+json Content Type and send JSON

Some of the endpoints of the API take nested objects. You'll have a much easier time implementing clients if you submit your POST bodies as JSON rather than form encoded params.

Here's an example using a JSON encoded body.

curl -X POST -H "Content-Type: application/hal+json" --data '{"email": "foo@bar.com", "password": "asdf"}' https://api.reverb.com/api/auth/email.json

Here is an example using the form encoded params, similar to a url query string. This is not recommended as it makes it hard to send nested structures.

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" --data 'email=foo@bar.com&password=asdf' https://api.reverb.com/api/auth/email.json

Pagination

All collection-based api calls will return _links that include next and prev keys. These hrefs should be followed. If they are not present, there is no next or previous page.

{
  "_links": {
    "next": {"href":"https://api.reverb.com/api/listings/?page=2"}, 
    "prev": {"href":"https://api.reverb.com/api/listings/?page=1"}
  },
  "listings":[
    {
      "some": "data"
    }
  ]
}

Questions?

Please email integrations@reverb.com with any questions or comments.