Spotify for Creators API (Unofficial)¶
Unofficial API — Use at your own risk
This documentation covers unofficial, reverse-engineered internal APIs used by Spotify for Creators (formerly Anchor.fm). These APIs are undocumented and may change or break without notice. The authors are not affiliated with Spotify.
This site documents the internal HTTP and GraphQL APIs powering Spotify for Creators (formerly Anchor.fm), discovered through browser traffic analysis using JavaScript fetch/XHR interceptors.
Architecture Overview¶
Spotify for Creators runs on two distinct backend systems that are used together:
Spotify for Creators (creators.spotify.com)
│
├─ anchor.fm Internal REST API (api-v5.anchor.fm)
│ └─ Episode read/write, show settings, user state
│ ← Still active post-Anchor acquisition. Callable with Python + requests.
│
├─ GraphQL API (creators-graph.spotify.com/v2/graph-pq)
│ └─ Analytics, comments, transcripts, chapters, etc.
│ ← New features are migrating here.
│
├─ Next.js Data API (creators.spotify.com/interactivity/_next/data/)
│ └─ SSR data fetch for the comments page
│
└─ spotifyconnector / generic.wg.spotify.com/podcasters/v0
└─ Bearer token retrieval, episode list (unofficial Python library)
When to use which¶
| Goal | Use |
|---|---|
| Read/write episode title, description, or publish date | anchor.fm REST API |
| Fetch analytics, comments, or transcripts | GraphQL API |
| Obtain a Bearer token | spotifyconnector library |
Quick Start¶
from spotifyconnector import SpotifyConnector
import requests
# 1. Obtain a Bearer token
connector = SpotifyConnector(
base_url="https://generic.wg.spotify.com/podcasters/v0",
client_id="05a1371ee5194c27860b3ff3ff3979d2",
podcast_id="YOUR_SHOW_ID",
sp_dc="YOUR_SP_DC",
sp_key="YOUR_SP_KEY",
)
connector._authenticate()
bearer = connector._bearer
# 2. Fetch episode overview
anchor_id = 123456789 # see ID Conversion (1-A)
r = requests.get(
f"https://api-v5.anchor.fm/v3/episodes/{anchor_id}/overview"
"?isMumsCompatible=true&returnWebIds=true",
headers={"Authorization": f"Bearer {bearer}", "Accept": "application/json"},
)
print(r.json())
See Authentication for how to obtain sp_dc / sp_key and a Bearer token.
Pages in This Documentation¶
| Page | Contents |
|---|---|
| Authentication | Obtaining sp_dc / sp_key cookies and Bearer tokens |
| REST API | All anchor.fm REST endpoints (1-A through 1-Y) |
| GraphQL API | All GraphQL queries and mutations |
| Recipes | End-to-end Python implementation examples |
| Changelog | Research dates and update history |
Research Methodology¶
All endpoints were discovered by:
- Injecting JavaScript
fetchandXHRinterceptors via browser DevTools - Capturing live traffic while navigating the Spotify for Creators web app
- Performing real operations (episode create, update, comment approve/delete/reply, pin, block) on a test show to capture mutation payloads
Research dates: 2026-05-25 to 2026-05-26
Contact¶
Found an error or noticed an API change? Feel free to reach out on X (Twitter): @HiguchiKi