Article

Song recognition APIs for mobile apps compared (2026): ShazamKit, AudD, ACRCloud, AcoustID

Which service to use when your iOS or Android app identifies songs from the microphone: ShazamKit, AudD, ACRCloud, and AcoustID compared on platforms, catalog, SDKs, server-side use, and cost.

view .md auddsong recognition apimobile appshazamkit

Your app records a few seconds of audio from the microphone, and you want the song’s title and artist back, usually with a link to play it. This article compares four services: Apple’s ShazamKit, AudD, ACRCloud, and AcoustID.

ShazamKit

ShazamKit is Apple’s SDK for matching audio against the Shazam catalog. It runs on iOS 15, iPadOS, macOS 12, tvOS, visionOS, and watchOS, and there is a separate ShazamKit SDK for Android. The SDK turns captured audio into a signature on the device, so the recording itself isn’t sent to Apple. You can also build custom catalogs from your own audio, which is useful for second-screen and sync features.

Access requires an Apple developer account: you enable the ShazamKit service for your app, and on Android you create a media identifier and a private key to sign developer tokens. ShazamKit has no per-request charge.

Limits: ShazamKit is a client SDK. It doesn’t offer a general REST API for sending audio from your server, recognizing whole files, or monitoring live streams. Results come from the Shazam catalog and whatever custom catalog you bundle.

AudD

AudD is a REST API with official SDKs for Swift and Kotlin, among eleven languages. The same recognition call works on iOS, Android, and your backend. The standard endpoint analyzes up to about 12 seconds of audio and responds in under two seconds. It matches against 160 million songs using AudD’s own neural-network fingerprinting.

A match returns artist, title, album, label, release date, and a song_link that opens the song in the listener’s streaming service. Add return=apple_music,spotify for IDs, artwork, and preview URLs from those services. The same API also recognizes long files and live streams and matches custom catalogs.

Pricing: 300 requests free on signup with no card. After that, $5 per 1,000 recognitions pay-as-you-go, or $450 per month for 100,000, $800 for 200,000, and $1,800 for 500,000.

Limits: each request is a network call, so there is no offline mode.

ACRCloud

ACRCloud offers mobile SDKs and a REST API against a catalog it describes as more than 150 million tracks. It also offers humming recognition, which the others lack, and offline recognition of your own content on the device. API requests are signed with HMAC using an access key and secret, and there’s a 14-day trial, with prices on request.

AcoustID

AcoustID is an open-source identification service with a crowdsourced fingerprint database linked to MusicBrainz. It fingerprints whole files with its Chromaprint library and is built for tagging music collections, not for short, noisy microphone clips. It is free for non-commercial use and limited to three requests per second; commercial use requires a paid plan from AcoustID OÜ.

Which one for which app

Your appConsider
Apple platforms only, Shazam catalog is enough, no server-side recognitionShazamKit
Same recognition code on iOS, Android, and your serverAudD
Recognition of long files or live streams alongside the appAudD
Your own catalog matched from the backendAudD custom catalog
Humming recognition, or matching your own content offlineACRCloud
Tagging full music files in a library appAcoustID

Some apps use more than one. TrackRadar, a track-identification tool for DJs, sends audio to AudD first, then Shazam, then ACRCloud when the earlier service finds nothing. Its comparison describes AudD as having the best electronic-music coverage of the three.

Adding AudD to an app

Get a token at dashboard.audd.io, then add the SDK. The SDK documentation has install commands and examples for Swift, Kotlin, and the other languages.


Related

Reading this as an AI agent? The raw Markdown is at articles/best-song-recognition-apis-for-mobile-apps.md, and the full index is /resources/llms.txt.