Mixcloud API
Free Mixcloud API with no key for public reads: user profiles, follower and listen counts, and the shows they have uploaded. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Mixcloud API?
Mixcloud's public data is readable without any API key. Requesting a username returns the profile — display name, biography, location, picture set — along with follower, following, upload, favourite and listen counts.
Mixcloud occupies a specific niche: long-form DJ mixes, radio shows and podcasts, licensed so that continuous mixes containing other people's records can legally exist. Its public API mirrors the site's URL structure exactly, which is unusually pleasant to work with — whatever path you see in the browser, put `api.` in front of the host and you get the JSON for it.
Reading public objects needs no credentials whatsoever; OAuth only enters the picture for actions on behalf of a user. The counters returned on a profile are the useful part for anything analytical — `listen_count`, `follower_count` and `cloudcast_count` together tell you far more about a show's reach than a follower number alone. One quirk worth noting: the response declares `text/javascript` as its content type, a leftover from the days of JSONP, although the body is plain JSON.
Quick facts
- Base URL
https://api.mixcloud.com- Authentication
- No key for reading public users, shows and tags. OAuth is required only to act on behalf of a user, such as following or favouriting.
- Rate limit
- Not published as a fixed figure. Mixcloud throttles aggressive clients — keep concurrency low and cache.
- Pricing
- Free for public reads.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Mixcloud API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch a public Mixcloud profile
GET https://api.mixcloud.com/spartacus/
curl 'https://api.mixcloud.com/spartacus/'const res = await fetch("https://api.mixcloud.com/spartacus/");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.mixcloud.com/spartacus/", timeout=20)
res.raise_for_status()
print(res.json()){
"key": "/spartacus/",
"url": "https://www.mixcloud.com/spartacus/",
"name": "Spartacus",
"username": "spartacus",
"pictures": {
"small": "https://thumbnailer.mixcloud.com/unsafe/25x25/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"thumbnail": "https://thumbnailer.mixcloud.com/unsafe/50x50/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"medium_mobile": "https://thumbnailer.mixcloud.com/unsafe/80x80/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"medium": "https://thumbnailer.mixcloud.com/unsafe/100x100/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"large": "https://thumbnailer.mixcloud.com/unsafe/300x300/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"320wx320h": "https://thumbnailer.mixcloud.com/unsafe/320x320/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"extra_large": "https://thumbnailer.mixcloud.com/unsafe/600x600/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9",
"640wx640h": "https://thumbnailer.mixcloud.com/unsafe/640x640/profile/2/7/9/e/c70a-cdba-4fb6-a57d-c16f5520fdc9"
},
"biog": "Part of the Mixcloud team - since Mixcloud was just a good idea.",
"created_time": "2009-03-10T07:32:56Z",
"updated_time": "2009-03-10T07:32:56Z",
"follower_count": 771,
"following_count": 102,
"cloudcast_count": 5,
"favorite_count": 74,
"listen_count": 2503,
"is_pro": true,
"is_premium": true,
"city": "London",
"country": "United Kingdom",
"cover_pictures": {
"835wx120h": "https://thumbnailer.mixcloud.com/unsafe/835x120/profile_cover/d/b/9/0/4328-5114-4c10-adcb-613d0c92337f.jpg",
"1Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(username) | path | Required | The account's Mixcloud username, exactly as it appears in the site URL. spartacus |
/cloudcasts/ | path | Optional | Append to a username to list that account's uploaded shows, paginated. |
metadata | query | Optional | Set to 1 to include extra relationship metadata on the object. 1 |
limit / offset | query | Optional | Standard paging controls on list endpoints. 20 |
Response fields
username / namestring- Account handle and display name.
key / urlstring- API path for the object and the human-facing web URL. `key` is what you append to the base URL to re-fetch it.
biogstring- Profile biography as free text.
city / countrystring- Self-declared location. Frequently null.
follower_count / following_countinteger- Social graph size.
cloudcast_countinteger- How many shows the account has uploaded — a cloudcast is Mixcloud's term for a mix or episode.
listen_count / favorite_countinteger- Total plays and favourites across everything the account has posted.
pictures / cover_picturesobject- Profile and cover images at several named sizes, from `small` through `extra_large`.
picture_primary_colorstring- Dominant colour of the profile picture as a hex string — handy for theming a card.
is_pro / is_premiumboolean- Account tier flags.
created_time / updated_timestring- ISO 8601 timestamps for account creation and last change.
What you can build with the Mixcloud API
- Show a DJ's latest mixes on their own website
- Track listen and follower growth for a radio show
- Build a directory of stations or selectors with live counts
- Theme a profile card automatically using the picture's primary colour
Common errors and how to fix them
Client rejects the content type
Responses are labelled `text/javascript` for historical JSONP reasons.
Fix: Parse the body as JSON regardless of the header.
404
The username does not exist or the account was renamed.
Fix: Usernames are mutable on Mixcloud. Store the `key` and re-resolve rather than caching a name forever.
Throttled or blocked
Too many concurrent requests.
Fix: Mixcloud does not publish a figure but does throttle. Serialise your requests and cache profile data for hours.
Audio is not in the response
The API returns metadata only.
Fix: Mixcloud's licensing does not permit third-party audio streaming. Use their embed player if you need playback.
Mixcloud API — frequently asked questions
Does the Mixcloud API need a key?
Not for reading public data — profiles, shows and tags all answer unauthenticated. OAuth is needed only to act on behalf of a user, such as following an account.
How do I find the API URL for something I can see on the site?
Take the web URL and put `api.` in front of the host. The API mirrors the site's path structure exactly, which makes discovery trivial.
What is a cloudcast?
Mixcloud's term for an upload — a DJ mix, a radio episode or a podcast. `cloudcast_count` on a profile is how many the account has published.
Can I stream the audio?
No. The API is metadata only; Mixcloud's licensing arrangements do not allow third-party playback. Their embeddable player is the supported route.
Tools that pair with this API
Audiobook Length Calculator
Turn a manuscript word count into finished hours, studio time, narration cost and audio file size, with a chapter-by-chapter breakdown. Free and in-browser.
Audio Converter
Convert audio online for free. Turn any file into MP3, WAV, OGG, M4A or FLAC right in your browser with one tool — nothing is ever uploaded to a server.
RSS Feed Generator
Build a valid RSS 2.0 XML feed from channel details and item rows with title, link, description and pubDate. Copy or download the ready-to-publish feed.
Mixcloud is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.