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

Create and Update Listings

To create a listing, submit a request like this: The full list of params is available in the swagger documentation.

curl -XPOST -H "Authorization: Bearer [oauth_token]" -H "Accept-Version: 3.0" -H "Content-Type: application/hal+json" https://api.reverb.com/api/listings --data '
{
  "make": "Fender",
  "model": "Stratocaster",
  "categories": [{
    "uuid": "get these values from /api/categories/flat"
  }],
  "condition": {
    "uuid": "get these from /api/listing_conditions
  },
  "photos": [
    "http://i.stack.imgur.com/Sv4BC.png",
    "http://i.stack.imgur.com/foo.png"
  ],
  "description": "Awesome guitar",
  "finish": "Sunburst",
  "price": {
    "amount": "5000.00",
    "currency": "USD
  },
  "title": "my favorite fender stratocaster",
  "year": "1960s",
  "sku": "12345",
  "has_inventory": true,
  "inventory": 5,
  "handmade": true,
  "location": { // will default to shop address if not passed in
    "country_code": "USA",
    "region": "IL",
    "locality": "Chicago"
  },
  "exclusive_channel": "none" // for Reverb Sites customers only. Set to "seller_site", "reverb", or "none" or leave blank
  "shipping_profile_id": 123, // instead of shipping rates
  "shipping": { // only use this if not using shipping profiles
    "rates": [
      {
        "rate": {
          "amount":"10.00"
          "currency": "USD"
        }, 
        "region_code": "US_CON" // Continental US
      },
      {
        "rate": {
          "amount":"20.00"
          "currency": "USD"
        }", //USD
        "region_code": "XX" // Everywhere Else
      },
    ]
    "local": true
  }  
}
'

Make, model, finish, year, etc...

  • Reverb requires Make and Model to save a product draft
  • Reverb provides a Make and Model guesser - if you do not specify these fields, we will try to extract the fields from the title.
  • You are strongly encouraged to send structured make/model fields when they are available.
  • During sync, if Reverb cannot guess make & model, it will set the make/model to "Unknown" and the listing cannot be published
  • The year field takes fuzzy language incuding ranges, like "1980s" or "1979-1981", "mid 80s" or exact years like "1959"

Shipping Profiles and Shipping Rates

Reverb provides two options to set shipping rates.

  1. Seller can set up Shipping Profiles on Reverb - specifying a default matrix of Rates
    on a per-category basis, or reference the shipping profile on a per listing basis using shipping_profile_id
  2. Seller can send individual rates with each listing (strongly discouraged) by using the shipping_rates field. You may obtain a full list of regions from the regions api (https://reverb.com/api/shipping/regions).

You are strongly encouraged to set up Shipping Profiles on Reverb and reference those by id shipping_profile_id instead of specifying rates for every listing. This is more manageable, and you can even set up Reverb to automatically assign your shipping profiles to listings based on their category.

You can get a list of shipping profiles from the /api/shop endpoint (example below)

You can set up shipping profiles here.

curl -X GET https://api.reverb.com/api/shop -H 'Accept-Version: 3.0' -H 'Authorization: Bearer [oauth_token]' -H 'Content-Type: application/hal+json'
{
    "description": "This shop is amazing",
    "name": "The Gear Barn",
    "id": "123",
    "shipping_profiles": [
        {
            "name": "Test Profile",
            "id": "456"
        }
    ],
}

Categories

Reverb categories should be retrieved at (https://api.reverb.com/api/categories/flat).

You may submit up to two subcategories or one root category and two subcategories by submitting data to the category_uuids field as an array of uuids retrieved from the API above.

curl -X GET https://api.reverb.com/api/categories/flat -H 'Accept-Version: 3.0' -H 'Content-Type: application/hal+json'

Condition

Name
UUID

Non functioning

fbf35668-96a0-4baa-bcde-ab18d6b1b329

Poor

6a9dfcad-600b-46c8-9e08-ce6e5057921e

Fair

98777886-76d0-44c8-865e-bb40e669e934

Good

f7a3f48c-972a-44c6-b01a-0cd27488d3f6

Very Good

ae4d9114-1bd7-4ec5-a4ba-6653af5ac84d

Excellent

df268ad1-c462-4ba6-b6db-e007e23922ea

Mint

ac5b9c1e-dc78-466d-b0b3-7cf712967a48

Like New

9225283f-60c2-4413-ad18-1f5eba7a856f

Brand New

7c3f45de-2ae0-4c81-8400-fdb6b1d74890

Location

The location object can be used to set the address for your shop. Note that this only works for your first listing and cannot be used to update your shop address. See the shop API if you want to update your shop address.

Inventory

There are two flags that must be set:

  • has_inventory = true
  • inventory = [n]

For most cases, we should be using has_inventory=true for sellers who are selling retail items that have inventory. If you are selling a unique item, you can set has_inventory=false and the inventory field will be ignored. If you specify inventory=0 for any item, regardless of whether it supports inventory, this will end the listing.

Finding your listings

In order to get the link to update one of your listings, first find it by SKU:

curl -H "Authorization: Bearer [oauth_token]" -H "Accept-Version: 3.0" -H "Content-Type: application/hal+json" https://api.reverb.com/api/my/listings?sku=[sku]&state=all

Please note the use of the state=all filter, which enables you to find drafts. By default, the search will only find live listings.

To update a listing

Updating a listing takes the same parameters as the create, but uses a PUT request.

curl -XPUT -H "Authorization: Bearer [oauth_token]" -H "Accept-Version: 3.0" -H "Content-Type: application/hal+json" https://api.reverb.com/api/listings/[id] --data "..."

Create and Update Listings