Skip to main content

API Docs for the enterprise endpoint

We have a separate endpoint with enterprise features and the ability to handle large files. You can send hours- or even days-long audio to this endpoint and receive highly detailed metadata in response.

How the requests are counted

We count requests to the enterprise endpoint as 1 request per 12 seconds of audio.

When you upload a file, our servers consider it to be a group of 12-second-long audio chunks. If you don't want every one of these chunks to be recognized and counted as the requests, there are two parameters that you can use: skip and every.

  • skip - the number of 12-second-long audio chunks to skip after the ones that are scanned;
  • every - the number of chunks to scan in a row.

So if you want to identify music playing in the first 12 seconds, then skip 48 seconds, then scan 12 seconds again, skip 48 seconds again, etc., these parameters should be skip=4 and every=1. If you want to skip 108 seconds, to have 1 request per 120 seconds of audio, send skip=9 and every=1.

Where to get a token

You can get a token from our API Dashboard.

The first 300 requests are free; our subscription options start at $2 per 1000 requests. We use Stripe for secure payments; we can also accept US domestic and international bank transfers from enterprise customers.

How to send files

There are two ways to send files to the API:

  • Provide a URL of the file. Our server will download and recognize music from the file. Send the URL in the url parameter. (You can also send a URL of a web page that contains audio or video instead of the URL of the actual audio file)
  • Post the file using multipart/form-data in the usual way the files are uploaded via the browser. Send the file in the file parameter, by POST. This method is useful if the file is not available by a URL.

You can try to send a file from a browser here (or here for csv results instead of json).

Send a file
Form Data Parameters
The token received from the Dashboard
The URL of the file for the recognition
The file for the recognition
Set to "true" to get accurate start and end offsets of the recognized tracks
How many 12 seconds chunks are skipped after the ones that are recognized
How many chunks should be recognized in a row
The upper bound for the number of chunks the server will recognize
How many seconds of the file the server should skip at the beginning before starting the music recognition (e.g., the start time of the first chunk). Should not be used together with use_timecode
Set to "true" if you want the server to use the time represented in "t", "time_continue", or "start" parameters of the URL, if one exists, as the skip_first_seconds. Should not be used together with skip_first_seconds
Fields referring to time

timecode is the position in the original song where the matched fragment is playing (e.g., that can be 00:45 of Imagine Dragons - Warriors).

offset is the position, in the audio file you submitted, of the start of the 12-second-long fragment that contains matches.

start_offset and end_offset are the positions (in milliseconds) in the 12-second-long fragment of the start and end of the fragment we matched to a song.

How to get additional metadata, e.g., ISRCs and UPCs

You don't have to have an enterprise account in order to use the enterprise endpoint. But you need an enterprise account to get ISRCs and UPCs with the results. Let us know if you want access to these features: send an email to