Discover/Quizbowl Packets API
live

Quizbowl Packets APIquizbowlpackets.com

Access quizbowl question sets across HS, College, Middle School, and Pop Culture sections. Browse, filter, and retrieve packet download URLs via 3 endpoints.

Endpoint health
verified 3d ago
list_sets
get_set_details
search_sets
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Quizbowl Packets API?

The quizbowlpackets.com API exposes 3 endpoints for browsing, filtering, and retrieving quizbowl question sets across four competition levels. The list_sets endpoint returns paginated set summaries including difficulty, set type, subjects, and year metadata. The get_set_details endpoint returns individual packet download URLs, file sizes, and editor comments for a given set. The search_sets endpoint runs case-insensitive text matching across set names, comments, and notes in one or all sections simultaneously.

Try it
Filter by year substring in the date field (e.g., '2024', '2025')
Maximum number of results to return
Number of results to skip for pagination
Section to list sets from. Accepted values: hs, college, ms, popculture
Filter by subject keyword matched against the subjects field (e.g., 'History', 'Literature', 'All-Subject')
Filter by set type. Accepted values: 1 (Tournament), 2 (Side Event), 3 (One-off Packet), 4 (Theme Tournament), or label names: tournament, side event, one-off packet, theme tournament
Filter by difficulty level. Accepted values: 1 (Novice), 2 (Regular), 3 (Regular-Plus), 4 (Nationals), or label names: novice, regular, regular-plus, nationals
api.parse.bot/scraper/c7250b51-eda1-4286-a4a8-90fb4dfc0367/<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/c7250b51-eda1-4286-a4a8-90fb4dfc0367/list_sets?year=2025&limit=10&offset=0&section=hs&subject=All-Subject&set_type=1&difficulty=1' \
  -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 quizbowlpackets-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.

"""
Quizbowl Packets Archive API — typed SDK usage example.

Browse and search quizbowl question sets across all sections,
filter by difficulty and type, then drill into packet details.
"""
from parse_apis.quizbowl_packets_archive_api import (
    QuizbowlPackets, QuestionSetSummary, Section, Difficulty, SetType
)

client = QuizbowlPackets()

# List recent high school tournament sets at Nationals difficulty
for summary in client.questionsetsummaries.list(
    section=Section.HS, difficulty=Difficulty.NATIONALS, set_type=SetType.TOURNAMENT, limit=3
):
    print(summary.set_name, summary.difficulty_label, summary.set_post_date)

# Search across all sections for sets matching "ACF"
for result in client.questionsetsummaries.search(query="ACF", limit=5):
    print(result.set_id, result.set_name, result.section_name)

# Drill into a specific set's full details including packets
detail = client.questionsets.get(set_id=1)
print(detail.set_name, detail.season, detail.packet_count)
for packet in detail.packets:
    print(packet.packet_name, packet.file_size, packet.is_finals)

# Construct a summary by ID and navigate to its detail
known = QuestionSetSummary(_api=client, set_id=3501)
full = known.details()
print(full.set_name, full.subjects, full.qrc_url)
All endpoints · 3 totalmissing one? ·

List all quizbowl question sets for a given section with optional filtering by difficulty, set type, subject, and year. Returns paginated results sorted by most recently posted. Each section (hs, college, ms, popculture) maps to a separate subdomain. The full dataset for a section is fetched server-side and filtered client-side, so total reflects post-filter count.

Input
ParamTypeDescription
yearstringFilter by year substring in the date field (e.g., '2024', '2025')
limitintegerMaximum number of results to return
offsetintegerNumber of results to skip for pagination
sectionstringSection to list sets from. Accepted values: hs, college, ms, popculture
subjectstringFilter by subject keyword matched against the subjects field (e.g., 'History', 'Literature', 'All-Subject')
set_typestringFilter by set type. Accepted values: 1 (Tournament), 2 (Side Event), 3 (One-off Packet), 4 (Theme Tournament), or label names: tournament, side event, one-off packet, theme tournament
difficultystringFilter by difficulty level. Accepted values: 1 (Novice), 2 (Regular), 3 (Regular-Plus), 4 (Nationals), or label names: novice, regular, regular-plus, nationals
Response
{
  "type": "object",
  "fields": {
    "sets": "array of question set summary objects with set_id, set_name, difficulty, difficulty_label, set_type, set_type_label, subjects, year, and other metadata",
    "limit": "integer pagination limit applied",
    "total": "integer total matching sets before pagination",
    "offset": "integer pagination offset applied",
    "section": "string section code",
    "section_name": "string human-readable section name"
  },
  "sample": {
    "data": {
      "sets": [
        {
          "year": "2026-03-31T00:00:00.000Z",
          "set_id": 3501,
          "section": "hs",
          "comments": "HS Nats prep set also used for college mirrors",
          "set_name": "2025 HISTONE",
          "set_type": 1,
          "subjects": "All-Subject",
          "brief_note": "",
          "difficulty": 4,
          "archive_url": null,
          "recommended": 0,
          "section_name": "High School",
          "set_post_date": "2026-04-02T15:46:56.000Z",
          "discussion_url": "https://hsquizbowl.org/forums/viewtopic.php?t=29216",
          "set_type_label": "Tournament",
          "create_timestamp": "2026-04-01T04:49:55.000Z",
          "difficulty_label": "Nationals",
          "modified_timestamp": "2026-04-02T15:46:56.000Z"
        }
      ],
      "limit": 5,
      "total": 604,
      "offset": 0,
      "section": "hs",
      "section_name": "High School"
    },
    "status": "success"
  }
}

About the Quizbowl Packets API

Browsing and Filtering Sets

The list_sets endpoint accepts a section parameter (hs, college, ms, or popculture) and returns a paginated array of set summary objects. Each object includes set_id, set_name, difficulty (integer 1–4 mapping to Novice, Regular, Regular-Plus, or Nationals), difficulty_label, set_type (Tournament, Side Event, One-off Packet, or Theme Tournament), subjects, and year. You can combine filters — for example, passing difficulty=2, subject=History, and year=2024 to narrow results to Regular-difficulty history sets from 2024 in a specific section. Results are sorted by most recently posted and support limit/offset for pagination alongside a total count of matching records.

Set Details and Packet Downloads

The get_set_details endpoint takes a set_id (obtained from list_sets or search_sets) and returns a packets array where each element includes packet_name, packet_number, packet_url (direct download link), file_size, is_finals, and is_tiebreaker flags. The response also carries top-level fields like set_name, season (e.g. 2009-2010), subjects, comments (editor notes when present), qrc_url (a link to the question set's entry in the question database, or null), and packet_count.

Cross-Section Search

The search_sets endpoint accepts a required query string and an optional section filter. When section is omitted, the search runs across all four sections simultaneously and returns results tagged with their originating section and section_name. Results include the same metadata fields as list_setsdifficulty_label, set_type_label, and subjects — making cross-section discovery straightforward without knowing which section a set belongs to in advance.

Reliability & maintenanceVerified

The Quizbowl Packets API is a managed, monitored endpoint for quizbowlpackets.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when quizbowlpackets.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 quizbowlpackets.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
3d 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 quizbowl practice tool that fetches packet download URLs via get_set_details for a given competition level and season
  • Filter all Collegiate Nationals-difficulty sets from a specific year using list_sets with difficulty=4 and year parameters
  • Search for thematic or invitational tournaments by name keyword using search_sets across all four sections at once
  • Compile a catalog of All-Subject tournaments by passing subject=All-Subject to list_sets for each section
  • Identify finals and tiebreaker packets within a set using the is_finals and is_tiebreaker flags from get_set_details
  • Build a difficulty progression tracker by listing Novice through Nationals sets (difficulty 1–4) for a given subject area
  • Link users directly to a set's question database entry using the qrc_url field returned by get_set_details
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 quizbowlpackets.com have an official developer API?+
No. quizbowlpackets.com does not publish an official developer API. This API on Parse provides structured programmatic access to the set listings and packet data available on the site.
What does `get_set_details` return beyond the basic set metadata?+
It returns a packets array with per-packet fields: packet_name, packet_number, packet_url (direct download link), file_size, is_finals, and is_tiebreaker. At the set level it also includes season, comments, subjects, qrc_url, and a packet_count integer.
Can I search across all four sections at once, or must I query each separately?+
search_sets defaults to searching all four sections (hs, college, ms, popculture) when the section parameter is omitted. Each result in the response includes a section and section_name field so you can tell which section it originated from. If you want results from one section only, pass the relevant section value.
Does the API expose the actual question and answer text from inside the packets?+
Not currently. The API returns set and packet metadata — names, difficulty, subjects, download URLs, file sizes — but does not parse or return the tossup or bonus text from within packet files. You can fork this API on Parse and revise it to add an endpoint that reads packet content if the file format supports it.
Are there any gaps in coverage for older sets or certain sections?+
Coverage reflects what quizbowlpackets.com has indexed. Some older sets may have null values for fields like subjects, comments, or qrc_url, and difficulty may also be null for sets where that metadata was not recorded. The year filter on list_sets matches against the date string, so sets with non-standard or missing date formats may not surface under a year filter.
Page content last updated . Spec covers 3 endpoints from quizbowlpackets.com.
Related APIs in EducationSee all →
sporcle.com API
Access Sporcle quizzes by slug, keyword search, or category. Retrieve quiz titles, questions, multiple-choice answers, hints, user ratings, and average scores.
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.
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.
tcdb.com API
Browse and retrieve detailed trading card information from the Trading Card Database (TCDB), including set listings, checklists, parallel variants, and special notations such as rookie cards, short prints, and variations. Search across sports and years to access comprehensive card and set metadata.
cses.fi API
Explore the CSES Problem Set by browsing problems across different categories, viewing detailed problem information, and discovering available courses and contests. Access comprehensive problem lists organized by topic to find coding challenges tailored to your learning goals.
pkmncards.com API
Search and browse Pokémon trading card game cards with detailed metadata, high-quality images, and advanced filtering by set, Pokémon name, or card type. Filter across thousands of cards from different sets to find exactly what you're looking for.
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.
brickset.com API
Search and browse thousands of LEGO sets by theme, year, or keyword. Retrieve detailed data for any set including piece count, minifigure count, dimensions, RRP, and more. Explore the full catalog of themes and yearly releases available on Brickset.