Official AudD SDKs
We maintain official client libraries for 11 languages — pick the one for your stack. Each SDK is feature-complete and idiomatic to its ecosystem; they all wrap the same HTTP API.
You can also call the HTTP API directly without an SDK — it's intentionally simple. See the main docs for the raw endpoints.
Sign up for an API token and drop the snippet for your language into your project. Replace "your-api-token" in the snippets with the token from your dashboard. For a quick try without signing up, the public "test" token works (capped at 10 requests).
- Python
- Node
- Go
- Rust
- PHP
- Swift
- Kotlin
- C#
- Java
- C
- C++
Python 3.9+ · sync and async clients.
pip install audd
from audd import AudD
audd = AudD("your-api-token")
result = audd.recognize("https://audd.tech/example.mp3")
print(f"{result.artist} — {result.title}")
Node 18+ · TypeScript-first · longpoll usable from the browser.
npm install @audd/sdk
import { AudD } from "@audd/sdk";
const audd = new AudD("your-api-token");
const song = await audd.recognize("https://audd.tech/example.mp3");
console.log(`${song.artist} — ${song.title}`);
Go 1.21+.
go get github.com/AudDMusic/audd-go
client := audd.NewClient("your-api-token")
defer client.Close()
result, _ := client.Recognize("https://audd.tech/example.mp3", nil)
fmt.Printf("%s — %s\n", result.Artist, result.Title)
Rust 1.88+.
cargo add audd
use audd::AudD;
let audd = AudD::new("your-api-token");
let r = audd.recognize("https://audd.tech/example.mp3").await?;
if let Some(song) = r {
println!("{} — {}",
song.artist.as_deref().unwrap_or(""),
song.title.as_deref().unwrap_or(""));
}
PHP 8.1+.
composer require audd/audd
use AudD\AudD;
$audd = new AudD('your-api-token');
$r = $audd->recognize('https://audd.tech/example.mp3');
echo $r->artist . ' — ' . $r->title;
Swift 5.9+ · iOS 15+, macOS 12+, watchOS 8+, tvOS 15+, visionOS 1+, Linux.
.package(url: "https://github.com/AudDMusic/audd-swift", from: "1.5.6"),
import AudD
let audd = try AudD(apiToken: "your-api-token")
let r = try await audd.recognize("https://audd.tech/example.mp3")
print("\(r?.artist ?? "") — \(r?.title ?? "")")
Kotlin 1.9+.
implementation("io.audd:audd-kotlin:1.5.5")
AudD("your-api-token").use { audd ->
val r = audd.recognize("https://audd.tech/example.mp3")
println("${r?.artist} — ${r?.title}")
}
.NET 6 / 8 · AOT-friendly.
dotnet add package AudD
using AudD;
var audd = new AudD("your-api-token");
var r = await audd.RecognizeAsync("https://audd.tech/example.mp3");
Console.WriteLine($"{r?.Artist} — {r?.Title}");
Java 11+.
<dependency>
<groupId>io.audd</groupId>
<artifactId>audd</artifactId>
<version>1.5.5</version>
</dependency>
try (AudD audd = new AudD("your-api-token")) {
var r = audd.recognize("https://audd.tech/example.mp3");
System.out.println(r.artist() + " — " + r.title());
}
C99 · requires system libcurl.
FetchContent_Declare(audd
GIT_REPOSITORY https://github.com/AudDMusic/audd-c.git
GIT_TAG v1.5.5)
FetchContent_MakeAvailable(audd)
target_link_libraries(your_app PRIVATE audd)
audd_client_t *c = audd_client_new("your-api-token", NULL);
audd_recognition_t *r = NULL;
audd_recognize(c, "https://audd.tech/example.mp3", NULL, &r);
printf("%s — %s\n", audd_recognition_get_artist(r),
audd_recognition_get_title(r));
C++17 (C++20 opt-in) · requires system libcurl.
find_package(audd CONFIG REQUIRED)
target_link_libraries(your_app PRIVATE audd::audd)
#include <audd/audd.hpp>
audd::AudD client("your-api-token");
auto r = client.recognize("https://audd.tech/example.mp3");
std::cout << r->artist << " - " << r->title << "\n";