K-pop API · Pop API · Birthday API · AI / MCP connector
The fandom data API
REST, JSON and a common envelope. Build calendars, birthday tools and artist directories from one source-backed graph.
New here? Follow the step-by-step getting started guide → · Already have an account? Sign in →
Your first request
curl -H 'x-api-key: YOUR_API_KEY' 'https://fangraphapi.com/api/v1/groups?limit=2'
All endpoints are GET under /api/v1. A valid personal API key is required. Create a free account to manage keys and usage. Keys are shown once and stored as hashes. Pagination uses limit (1–100) and offset; q searches returned records; vertical defaults to kpop. Use ?vertical=pop for Pop artists and birthdays.
Create a free account →| Endpoint | Purpose |
|---|---|
/groups | Group directory |
/groups/{id} | Group details + provenance |
/groups/{id}/members | Group membership connections |
/members | Artist directory |
/members/{id} | Artist details + provenance |
/releases | Historical and announced releases |
/releases/upcoming | Upcoming announced releases |
/birthdays/today | Birthdays today in Seoul |
/birthdays/{MM-DD} | Birthdays on a specific day |
/comebacks | Upcoming announcements |
/events | Event records |
/calendar/{YYYY-MM} | Monthly releases, events and birthdays |
/changes | Approved change feed |
/random/member | Random artist |
/sources | Official announcement source health and check times |
Beta request limits
60 requests per IP per minute. API keys also have limits of 120 per minute and 10,000 per account per UTC day, shared across keys; all limits apply together. The public playground permits 20 fixed-example requests per IP per day (up to 5 per minute). Aggregate usage counts contain no submitted birthdays.
Response format (illustrative example)
{
"data": [
{
"id": "bts",
"name": "BTS",
"kind": "group",
"vertical_id": "kpop"
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0,
"vertical": "kpop",
"timezone": "Asia/Seoul",
"data_mode": "d1"
}
}400: invalid parameters. 401: invalid key. 404: missing record or endpoint. 429: request limit reached (see Retry-After). 503: unavailable database. Dates are ISO strings; birthdays recur by month/day. /changes exposes approved changes only. No live coverage guarantee.