2021 UPDATE: This page of documentation about our RESTful JSON API, whilst not deprecated yet, is aging fast. We are currently rolling out GraphQL read and write endpoints. If you want to interact programmatically with Consonance, please email support@consonance.app to begin a conversation about the appropriate tools to use.

Website feeds from Consonance via the product API

The Consonance API gives you access to secure client product data for use in your own app. It strives to be RESTful and is organised around the main resources you’re familiar with from the Consonance interface.

Product API Basics

Before you do anything, contact us by raising a support ticket to register for an API key to make API calls. In the meantime, use the demo credentials on this page.

An example response

Paste the following into a terminal window, including the sample authorisation token provided.

  curl -g -H "Authorization: Token token=b0c15687c2c3483b9efca116db0917b9" "https://demo.consonance.app/api/v4/products.json"

The response is as follows.

         "full_title":"Consonance sample title",
         "in_house_format":"B format",
         "isbn":"No ISBN",
         "imprint":"Api Demo",

            "product_dimensions_mm":"198 × 129 × 14",
            "product_dimensions_in":"7.8125 × 5.125 × 0.5625",


               "external_text":"A heartbreaking work of staggering genius.\u0026nbsp;",
                     "text":"Conservation, restoration \u0026 care of artworks"






                  "description":"Film scripts \u0026 screenplays"
                     "description":"Theory of art"
                     "description":"Interest age: from c 14 years"
                     "description":"For undergraduate education \u0026 equivalents"
                     "description":"Stone Age: Mesolithic period"
                     "description":"Valentine’s Day"
                     "description":"Art Nouveau"


               "sample book",
               "api docs",
               "json response",









With query parameters

  curl -g -H "Authorization: Token token=b0c15687c2c3483b9efca116db0917b9" "https://demo.consonance.app/api/v4/products.json?q[id_eq]=94741"



int32. Get a product by its Consonance ID


int32. Get a set of products by their ID. Can be chained e.g. q[id_in][]=ID&q[id_in][]=ID


int32. Get products by work id


string. Get products by title


int32. Get the products that belong to a shop


int32. Get the products with a particular subject code


int32. Get the products belonging to a particular series


string. Get the products with a particular ONIX product publishing status


boolean. Return the digest if you want to check for incremental changes




int32. Page of the response


int32. Number of products per page. Defaults to 50.

Incorrect syntax in the query parameters will be silently ignored, so if you used a parameter q[publishing_status] instead of the correct q[publishing_status_eq] then the filter would not be applied. During development we suggest that you use a deliberately incorrect value that should return no products, such as q[subjectcodes_id_eq]=123456789, and if results are returned then the syntax is probably incorrect.

ONIX code lists

The API codes are generally from the ONIX 2.1 codelists. A complete set can be downloaded from the onix_code_lists.json end point, or the EDItEUR codelist browser can be used.

All docs about API