Skip to main content

API Docs for the enterprise endpoint

We have a separate endpoint that handles large files. You can send hours-long or even days-long audio to this endpoint

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 think of it as a bunch of 12 seconds 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 - how many 12 seconds long audio chunks are skipped after the ones that are recognized.
  • every - how many chunks should be recognized in a row.

So if you want to identify music in 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 instead so it counts as 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.

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. 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
Various 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 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