canonical: https://jentic.com/apis/jamendo.com/jamendo

# Jamendo API

Jentic publishes the only available OpenAPI specification for Jamendo API, keeping it validated and agent-ready. The Jamendo API provides access to a catalogue of free, Creative Commons-licensed music covering tracks, albums, artists, playlists, reviews, and curated radio stations. The 3.0 spec exposes 17 endpoints for music search, autocomplete, feeds of trending content, user-specific artist and album lists, and the tracks streaming on a given radio station. Authentication is by client_id query parameter for catalogue reads and OAuth 2.0 for user-scoped operations.

## For AI agents

Search a catalogue of Creative Commons music - tracks, albums, artists, playlists, and radio streams - for app integrations, podcasts, and creator tools.

## Scope

Does not handle music distribution, royalty payouts, or label rights administration - use for Creative Commons music search and playback only.

## Capabilities

- Search the Creative Commons music catalogue by track, album, or artist with rich filters
- Find tracks similar to a reference track for related-music recommendations
- List curated radio stations and retrieve the tracks streaming on them for playback in apps and creator tools
- Retrieve user-specific artist and album lists for OAuth-authenticated accounts
- Surface autocomplete suggestions for search-as-you-type music UIs
- Read content feeds of trending tracks, new releases, and editorial selections

## Use cases

### Royalty-Free Music for Creator Tools

Video editors, podcast platforms, and game engines integrate Jamendo to give creators a built-in library of Creative Commons music. The /tracks search endpoint returns licence-cleared tracks with download URLs, so a creator can drop background music into their project from inside the host app without leaving for a music site.

Example prompt: GET /tracks with tags=acoustic, include=licenses and limit=20, and return the results plus their audiodownload URLs

### Background Radio for Apps

Lifestyle, fitness, and wellness apps stream curated radio in the background. The /radios and `/radios/stream` endpoints expose Jamendo's curated stations and the tracks streaming on a chosen station, each track carrying an audio field holding its streaming audio URL, so an app can launch playback without negotiating per-label licensing or hosting its own stream infrastructure.

Example prompt: GET /radios with type=www to list stations, then GET `/radios/stream` with the chosen station id and play the audio URL of the first track returned

### Music Discovery and Similar-Track Recommendations

Music discovery surfaces show 'tracks like this' alongside a reference track. The `/tracks/similar` endpoint returns tracks acoustically and stylistically related to a seed Jamendo track id, so the host app can build a recommendation rail without training its own model.

Example prompt: GET `/tracks/similar`?id={track_id} and render the 10 nearest tracks as a 'You might like' rail

### AI Agent Music Selection

An AI agent picking background music for a generated video chooses a track that matches the brief. Through Jentic the agent searches for 'find creative commons track', loads the GET /tracks schema, and executes with the tag, tempo and instrumentation filters the spec declares, using the client_id stored in your Jentic One instance.

Example prompt: Search Jentic for 'find creative commons track', execute GET /tracks with fuzzytags=upbeat, speed=high and vocalinstrumental=instrumental, and return the top match

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/tracks` | Search the Creative Commons track catalogue |
| GET | `/tracks/similar` | Find tracks similar to a reference track |
| GET | `/albums` | Search albums with filters |
| GET | `/artists` | Search artist profiles |
| GET | `/playlists` | Retrieve playlists by user or editorial selection |
| GET | `/autocomplete` | Search-as-you-type suggestions |
| GET | `/radios` | List curated radio stations |
| GET | `/radios/stream` | Retrieve streaming tracks for a specific radio station |

## Key resources

- **Tracks** — Creative Commons music tracks with rich search and similar-track lookup
- **Albums** — Album metadata and track listings
- **Artists** — Artist profiles with biography and discography
- **Playlists** — User and editorial playlists
- **Radios** — Curated radio stations and the tracks streaming on them
- **Reviews** — Editorial and user reviews

## Why Jentic

- **Setup:** Wiring the Jamendo API by hand means appending your client_id to the query string, handling the OAuth flow for user actions, and paging music results yourself. Through Jentic you install once, import Jamendo from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Jamendo search takes its filters in the query string, so scope by operation: allow the agent only the read operations it needs, such as searching tracks or fetching similar tracks. You pick the allowed set, so it stays within Creative Commons music search and playback.
- **Credential handling:** Your Jamendo client_id and OAuth token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find Creative Commons music' or 'get similar tracks', and Jentic returns the matching Jamendo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **SoundCloud API** — User-generated music platform with broader catalogue and social features
- **Spotify Web API** — Major-label music catalogue with rich audio features but no Creative Commons licences
- **Freesound API** — Creative Commons sound effects and field recordings that pair with Jamendo music
- **Musixmatch API** — Lyrics database that pairs with track metadata for richer music apps

## FAQ

### What authentication does the Jamendo API use?

Catalogue reads use a client_id query parameter issued in the Jamendo developer console. Seven operations additionally require an OAuth 2.0 token passed as an access_token query parameter: GET `/users/artists`, `/users/albums` and `/users/tracks` under the read scope, and POST `/setuser/fan`, `/setuser/favorite`, `/setuser/like` and `/setuser/dislike` under the write scope. GET /playlists accepts an access_token optionally for user-specific data. Through Jentic the client_id is stored in the credential vault and appended to every request automatically.

### Is the music returned by the Jamendo API free to use?

All tracks are released under Creative Commons licences, which permit free use under the licence terms (typically attribution and sometimes non-commercial or share-alike). For broader commercial use Jamendo offers a separate licensing service; check the licence field on each track before redistribution.

### What are the rate limits for the Jamendo API?

The specification declares no rate limit, quota or throttling response, so no numerical figure is stated here. What it does declare is paging: the limit parameter on the catalogue endpoints defaults to 10 results and caps at 200, with offset to walk the rest, so plan bulk catalogue reads as paged requests and cache what you keep.

### Can I find tracks similar to a given track with the Jamendo API?

Yes. GET `/tracks/similar` accepts a track id and returns acoustically related tracks. Use it to build a 'You might like' rail or to seed an automated playlist generator.

### How do I search for music through Jentic?

Search Jentic for 'find creative commons track', load the GET /tracks schema, and execute with the search filters the spec declares, such as tags, fuzzytags, acousticelectric, vocalinstrumental and speed. Jentic appends the client_id query parameter so the agent only supplies the search criteria.

### How do I play a Jamendo radio station?

Call GET /radios to list stations, then GET `/radios/stream` with a station id. That returns a track list rather than a single stream URL, and each track carries an audio field described in the spec as the streaming audio URL, which is what you hand to a media player for background playback.

### Why is there no official OpenAPI spec for the Jamendo API?

Jamendo documents its v3.0 API as HTML reference pages on its developer site and publishes no machine-readable description: that docs page carries no OpenAPI, Swagger or YAML link, and every path probed on api.jamendo.com answers with a catch-all JSON error rather than a spec document. Jentic wrote the OpenAPI description from those docs and keeps it validated, so your agent gets typed input schemas for all 17 endpoints instead of scraping prose.

### Is there a Jamendo MCP server?

You do not need an MCP server to give your agent Jamendo. Jentic connects it directly from the API Directory: import Jamendo, store your client_id once, and your agent calls the 17 endpoints in the spec. Because Jentic One is self-hosted, the credential stays in your own instance and is injected at call time instead of sitting in an agent client's config file, and no extra server's tool definitions are loaded into the agent's context.

### Can I limit what my agent is allowed to do with the Jamendo API?

Yes. Because Jentic One is self-hosted, you decide which Jamendo operations your agent may call, and your own rules define the allowed set. You can grant only the read operations a task needs, such as GET /tracks to search the Creative Commons catalogue or GET `/tracks/similar` for recommendations, while withholding others like /radios or /playlists. Your stored client_id and OAuth token are injected at execution time, so the agent stays scoped to the music search and playback operations you permit.
