quizbowlpackets.com APIquizbowlpackets.com ↗
Access structured data on thousands of quizbowl question sets across HS, Collegiate, MS, and Pop Culture sections. Browse, filter, and retrieve packet download URLs.
curl -X GET 'https://api.parse.bot/scraper/c7250b51-eda1-4286-a4a8-90fb4dfc0367/list_sets?limit=3§ion=hs' \ -H 'X-API-Key: $PARSE_API_KEY'
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.
| Param | Type | Description |
|---|---|---|
| year | string | Filter by year substring in the date field (e.g., '2024', '2025') |
| limit | integer | Maximum number of results to return |
| offset | integer | Number of results to skip for pagination |
| section | string | Section to list sets from. Accepted values: hs, college, ms, popculture |
| subject | string | Filter by subject keyword matched against the subjects field (e.g., 'History', 'Literature', 'All-Subject') |
| set_type | string | 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 |
| difficulty | string | Filter by difficulty level. Accepted values: 1 (Novice), 2 (Regular), 3 (Regular-Plus), 4 (Nationals), or label names: novice, regular, regular-plus, nationals |
{
"type": "object",
"fields": {
"sets": "array of set 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": 3,
"total": 602,
"offset": 0,
"section": "hs",
"section_name": "High School"
},
"status": "success"
}
}About the quizbowlpackets.com API
The Quizbowl Packets API provides 3 endpoints for browsing and searching the quizbowlpackets.com archive, returning structured metadata on question sets across four competition sections. The list_sets endpoint returns paginated set listings with difficulty, subject, and type filters applied. Each set record exposes fields like set_name, difficulty_label, set_type_label, subjects, and year, and get_set_details extends this with per-packet download URLs and file sizes.
Browsing and Filtering Sets
The list_sets endpoint returns all quizbowl question sets for a given section (hs, college, ms, or popculture), sorted by most recently posted. Results are paginated using limit and offset. You can narrow results by difficulty (1–4, corresponding to Novice through Nationals), set_type (Tournament, Side Event, One-off Packet, or Theme Tournament), subject (a substring match against the subjects field, e.g. History or All-Subject), and year (a substring matched against the date field). The response includes total for calculating page counts and section_name for display.
Retrieving Packet Details
Once you have a set_id from list_sets or search_sets, pass it to get_set_details to retrieve the full packet manifest. The packets array includes packet_name, packet_number, packet_url (direct download link), file_size, is_finals, and is_tiebreaker flags. Additional set-level fields include season (e.g. 2024-2025), comments (editor notes), subjects, difficulty, packet_count, and a qrc_url linking to the set's Question Room Central entry when available.
Cross-Section Search
The search_sets endpoint runs a case-insensitive substring match against set names, comments, and brief notes. When section is omitted, all four sections are searched simultaneously. Results carry the same metadata as list_sets responses — set_id, section, difficulty_label, set_type_label, and subjects — making it straightforward to route a result to get_set_details for the packet list. A total count is returned alongside the bounded results array.
- Build a quizbowl practice app that lets players filter tournament packets by difficulty level and subject area
- Aggregate all Nationals-difficulty sets across HS and Collegiate sections to analyze question trends by year
- Generate a download queue of packet files for a given tournament set using
packet_urlandfile_sizefields - Search across all sections for sets matching a team name or tournament series to track multi-year editions
- Identify finals and tiebreaker packets within a set using the
is_finalsandis_tiebreakerflags - Build a set catalog browser filtered by
set_type(e.g. Side Events only) for specific competition prep - Cross-reference
qrc_urlentries to link packet metadata to Question Room Central database records
| 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 quizbowlpackets.com have an official developer API?+
What does `get_set_details` return beyond what `list_sets` provides?+
packets array for the set, where each entry includes packet_name, packet_number, packet_url (a direct download link), file_size, is_finals, and is_tiebreaker. It also adds season, comments, and qrc_url — fields not present in the list or search responses.Can I filter `list_sets` by both subject and difficulty at the same time?+
list_sets endpoint accepts subject, difficulty, set_type, year, section, limit, and offset as independent parameters and applies all provided filters together. For example, you can request Novice-difficulty (difficulty=1) History sets from the HS section in 2024.Does the API expose the actual question and answer text inside packets?+
packet_url field points to the downloadable packet file hosted on quizbowlpackets.com. You can fork this API on Parse and revise it to add an endpoint that fetches and parses packet file content if needed.How fresh is the data, and are newly posted sets available immediately?+
list_sets endpoint sorts by most recently posted, so new sets appear at the front of results. There is no webhook or change-feed mechanism; callers should poll periodically to detect additions.