sporcle.com APIsporcle.com ↗
Access Sporcle quiz data via API. Retrieve questions, answers, hints, ratings, play counts, and category listings by slug, keyword, or category.
curl -X GET 'https://api.parse.bot/scraper/819e1105-1224-4f8e-839a-0fe9f4053942/get_quiz?slug=world' \ -H 'X-API-Key: $PARSE_API_KEY'
Extract full details for a given quiz slug including title, description, questions with answers and hints, rating, and average score. The slug can be a simple name like 'world' or a user-prefixed path like 'Matt/find_the_states'.
| Param | Type | Description |
|---|---|---|
| slugrequired | string | The quiz slug or path part after /games/ (e.g. 'world', 'states', 'Matt/find_the_states') |
{
"type": "object",
"fields": {
"slug": "string, the quiz slug as provided",
"title": "string, quiz title",
"author": "string or null, quiz author name",
"rating": "string or null, average user rating out of 5",
"game_id": "string, internal game identifier",
"category": "string or null, category name",
"questions": "array of objects with slot (integer), hint (string), and answers (array of strings)",
"play_count": "string or null, total number of plays",
"category_id": "string, category identifier",
"description": "string, quiz description",
"average_score": "float or null, average completion score as a decimal",
"timer_seconds": "integer or null, time limit in seconds"
},
"sample": {
"data": {
"slug": "world",
"title": "Countries of the World Quiz",
"author": null,
"rating": "4.8",
"game_id": "453",
"category": null,
"questions": [
{
"hint": "",
"slot": 0,
"answers": [
"Afghanistan",
"afghanistan"
]
},
{
"hint": "",
"slot": 1,
"answers": [
"Albania",
"albania"
]
}
],
"play_count": null,
"category_id": "1",
"description": "Can you name the countries of the world?",
"average_score": 0.6763659898477158,
"timer_seconds": null
},
"status": "success"
}
}About the sporcle.com API
The Sporcle API provides 3 endpoints to fetch structured quiz data from Sporcle.com, including full question-and-answer sets, user ratings, and play counts. The get_quiz endpoint returns a complete quiz by slug — including every question's hint and accepted answer strings, the author name, category, and average score. The search_quizzes and get_category_quizzes endpoints let you browse quizzes by keyword or topic.
Fetching a Single Quiz
The get_quiz endpoint accepts a slug parameter, which can be a simple name like world or a user-prefixed path like Matt/find_the_states — matching the path after /games/ on the site. The response includes the quiz title, author, description, category, category_id, game_id, rating (out of 5), and play_count. The questions array contains one object per question slot, each with a slot integer, a hint string, and an answers array of accepted answer strings.
Searching and Browsing Quizzes
The search_quizzes endpoint accepts a required query string and an optional page integer for pagination. Results come back as an array of objects with title, slug, description, and a stats array of strings. Once you have a slug from search results, you can pass it directly to get_quiz to retrieve full question data.
The get_category_quizzes endpoint accepts a category slug — such as geography, science, entertainment, history, or sports — and an optional page number. It returns a list of quizzes with title and slug fields, suitable for browsing a topic and then fetching individual quizzes. Pagination is available on both listing endpoints to step through larger result sets.
- Build a trivia app seeded with real quiz questions, hints, and accepted answers from Sporcle.
- Index quizzes by category using
get_category_quizzesto populate a topic-based quiz browser. - Rank quizzes by
ratingandplay_countto surface the most-played content in a given category. - Search for quizzes on a specific topic with
search_quizzesand present matching titles and descriptions to users. - Extract
questionsarrays from multiple quizzes to build a dataset for NLP or educational research. - Retrieve quiz metadata — author, category, description — to build a structured catalog of Sporcle content.
- Track play counts across quizzes over time by polling
get_quizfor a list of known slugs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sporcle have an official developer API?+
What does the `questions` field in `get_quiz` actually contain?+
questions array is an object with three fields: slot (an integer indicating question order), hint (the prompt or clue shown to the player), and answers (an array of strings representing all accepted correct answers for that slot). Multiple accepted spellings or aliases for the same answer appear as separate strings in the answers array.Does `search_quizzes` return full question data in the results?+
search_quizzes response includes only title, slug, description, and stats per result — it does not include questions or answers. To get full question data, take a slug from the search results and pass it to get_quiz.Are user comments or individual user scores available through this API?+
rating, play_count, questions, answers, and category metadata. Individual user scores and comments are not returned by any endpoint. You can fork this API on Parse and revise it to add an endpoint targeting per-user or comment data.How does pagination work on the listing endpoints?+
search_quizzes and get_category_quizzes accept an optional page integer parameter (defaulting to page 1 when omitted). The response echoes back the current page value alongside the result list. There is no total-page-count or total-result-count field in the response, so you need to increment the page number and stop when the results list is empty or shorter than a full page.