Discover/Sporcle API
live

Sporcle APIsporcle.com

Access Sporcle quiz data via API. Retrieve questions, answers, hints, ratings, play counts, and category listings by slug, keyword, or category.

Endpoint health
verified 2d ago
get_quiz
get_category_quizzes
search_quizzes
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Sporcle 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.

Try it
The quiz slug or path part after /games/ (e.g. 'world', 'states', 'Matt/find_the_states')
api.parse.bot/scraper/819e1105-1224-4f8e-839a-0fe9f4053942/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/819e1105-1224-4f8e-839a-0fe9f4053942/get_quiz?slug=world' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace sporcle-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Sporcle Quiz API — search, browse categories, drill into quiz details."""
from parse_apis.sporcle_quiz_api import Sporcle, QuizNotFound

client = Sporcle()

# Search for quizzes by keyword, capped at 5 results
for summary in client.quizs.search(query="geography", limit=5):
    print(summary.title, summary.slug)

# Drill into one quiz's full details via .first()
result = client.quizs.search(query="world", limit=1).first()
if result:
    quiz = result.details()
    print(quiz.title, quiz.rating, quiz.average_score, len(quiz.questions))

# Browse a category using the constructible Category resource
for cat_quiz in client.category("science").quizzes(limit=3):
    print(cat_quiz.title, cat_quiz.slug)

# Fetch a specific quiz by slug and access typed fields
detail = client.quizs.get(slug="world")
print(detail.title, detail.description, detail.game_id)
for q in detail.questions[:3]:
    print(q.slot, q.hint, q.answers)

# Typed error handling for a missing quiz
try:
    client.quizs.get(slug="nonexistent_quiz_xyz_404")
except QuizNotFound as exc:
    print(f"Quiz not found: {exc.slug}")

print("exercised: quizs.search / quizs.get / result.details / category.quizzes")
All endpoints · 3 totalmissing one? ·

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'. Returns one Quiz resource with all questions decoded.

Input
ParamTypeDescription
slugrequiredstringThe quiz slug or path part after /games/ (e.g. 'world', 'states', 'Matt/find_the_states')
Response
{
  "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 question objects each 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.676566497461929,
      "timer_seconds": null
    },
    "status": "success"
  }
}

About the Sporcle API

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.

Reliability & maintenanceVerified

The Sporcle API is a managed, monitored endpoint for sporcle.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sporcle.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official sporcle.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a trivia app seeded with real quiz questions, hints, and accepted answers from Sporcle.
  • Index quizzes by category using get_category_quizzes to populate a topic-based quiz browser.
  • Rank quizzes by rating and play_count to surface the most-played content in a given category.
  • Search for quizzes on a specific topic with search_quizzes and present matching titles and descriptions to users.
  • Extract questions arrays 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_quiz for a list of known slugs.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Sporcle have an official developer API?+
Sporcle does not offer a public developer API. There is no documented REST or GraphQL interface available to third-party developers on their site.
What does the `questions` field in `get_quiz` actually contain?+
Each element in the 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?+
No. The 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?+
Not currently. The API exposes quiz-level data: aggregate 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?+
Both 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.
Page content last updated . Spec covers 3 endpoints from sporcle.com.
Related APIs in EducationSee all →
jetpunk.com API
Search and discover trivia quizzes from JetPunk by category or tag, then access detailed quiz questions and answers to test your knowledge or build custom trivia experiences. Browse thousands of quizzes organized by topic and retrieve complete question/answer data for any quiz you find.
funtrivia.com API
Search and browse thousands of trivia questions and quizzes across multiple categories, with the ability to filter by topic, difficulty, or find random challenges to test your knowledge. Discover trending topics, top-rated quizzes, and the latest additions to build custom trivia games or enhance your learning experience.
poki.com API
Discover and browse thousands of free online games with detailed information about genres, popularity, and platform compatibility. Find new games by exploring categories or searching through Poki's complete game catalog to access metadata and recommendations.
quizbowlpackets.com API
Search and browse thousands of quizbowl question sets across all competition levels, then access detailed metadata like difficulty, subjects, and download links for each packet. Find the perfect practice materials for High School, Collegiate, Middle School, or Pop Culture quizbowl competitions.
qconcursos.com API
Search and explore thousands of Brazilian public exam questions filtered by discipline, examining board, and subject to help prepare for concursos. Access detailed information about specific questions and browse the complete catalog of available exam topics and institutions.
metacritic.com API
Search for games, movies, and TV shows, then retrieve detailed metadata, critic and user reviews, and ranked lists from Metacritic. Access comprehensive rating information and review data to discover top-rated entertainment content across all media types.
poedb.tw API
Search and retrieve comprehensive Path of Exile game data including items, gems, leagues, and game mechanics like bleeding effects across both PoE 1 and PoE 2. Get detailed information about specific items and categories, or browse current league information to stay updated on the latest game content.
hackerrank.com API
Retrieve challenge scores, difficulty ratings, success ratios, and track-level ranking data from HackerRank's public practice platform. Browse challenges by track, view submission statistics, and access ranking metrics across all available tracks.