Team Ai
Datasetpublic

hudsongouge/AoPS-Scrape

AoPS-Scrape Problems and solutions scraped from Art of Problem Solving (AoPS) Online class homework endpoints. Obtained legally in accordance with AoPS's Terms of Service. This is not unauthorized redistribution of pirated material — access was through a legitimate authenticated AoPS Online class session. Splits Splits are named by scrape date (YYYY_MM_DD), plus a cross-date content-deduplicated split: Split Rows Notes deduplicated 29,964 One row per… See the full description on the dataset page: https://huggingface.co/datasets/hudsongouge/AoPS-Scrape.

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
2likes7.1kdownloads
Dataset Card

AoPS-Scrape

Problems and solutions scraped from Art of Problem Solving (AoPS) Online class homework endpoints.

Obtained legally in accordance with AoPS's Terms of Service. This is not unauthorized redistribution of pirated material — access was through a legitimate authenticated AoPS Online class session.

Splits

Splits are named by scrape date (YYYY_MM_DD), plus a cross-date content-deduplicated split:

SplitRowsNotes
deduplicated29,964One row per unique problem+solution across every date split (no class/lesson duplicates)
2024_11_191,117Nov 2024 scrape (raw placements)
2024_11_209,336Nov 2024 scrape (raw placements)
2026_07_096,336Jul 2026 full scrape, content-deduplicated within scrape
2026_07_1018,829Jul 2026 full scrape, content-deduplicated within scrape
2026_07_113,920Jul 2026 full scrape, content-deduplicated within scrape

Totals:

  • —Date splits (as uploaded): 39,538 rows
  • —deduplicated: 29,964 unique problems after collapsing cross-class and cross-date duplicates
  • —2026 underlying scrape: 1,454,319 placements across class ids 1–10000 (6,811 classes with homework) before within-scrape dedup

Prefer `deduplicated` for a single training/eval set with no duplicate problem statements. Date splits remain available for scrape-dated analysis.

Canonical rows still include class_id / lesson_id for the chosen placement; duplicates across classes/lessons/dates are collapsed via content_hash.

Columns

ColumnTypeDescription
problem_idintLocal / canonical id
class_idintAoPS class id (canonical placement)
lesson_idintLesson number within class
aops_problem_idintAoPS problem id when available (2026+; null in 2024-only rows)
problem_typestringe.g. short, amc, aime, discussion, free, …
problem_textstringProblem statement (LaTeX / markup)
answerstringOfficial answer when present
answer_typestringAnswer grading type
alt_answersstringAlternate accepted answers
solution_textstringSolution text (LaTeX / markup)
formatting_tipsstringJSON string of formatting tips
available_hintsintNumber of hints that exist for the problem
can_hintintWhether the account can request a hint
problem_has_solutionintWhether a solution was present
scraped_atstringTimestamp of scrape
scrape_datestringYYYY-MM-DD derived from scraped_at
content_hashstringSHA256 of problem+solution text
placement_countintHow many class/lesson placements shared this content
alternate_placementsstringJSON list of other placements

Known limitations

These are intentional / structural gaps from the get_class_homework endpoint, not accidental omissions:

  1. 1.No hint text. The homework payload only exposes hint metadata (available_hints, can_hint). Actual hint content is behind a separate reveal/request flow and is not included.
  2. 2.Official answers are usually empty. Prefer solution_text over answer.
  3. 3.HTML / formatted variants not stored. Only plain problem_text / solution_text are saved (not problem_fmt / solution_fmt).
  4. 4.Extra metadata dropped. Fields such as header, collection_id, identifier, version, order, markup, and files are not persisted.
  5. 5.No attached media download. Image/file attachments are not downloaded.
  6. 6.Scope is class homework only. Transcripts, ebooks, wiki contest problems, and forum content are out of scope.
  7. 7.Access-dependent coverage. Only classes/lessons visible to the authenticated session are scraped.
  8. 8.Deduplication. 2026 date splits and deduplicated collapse identical problem+solution text. 2024 date splits remain raw placements; overlapping 2024/2026 content is collapsed only in deduplicated.

Source

Scraped via the AoPS Online class AJAX endpoint (/m/class/ajax.php, a=get_class_homework) using an authenticated platsessionid cookie. Scraper source: hg0428/aops-reverse-engineer.

Notes

  • —Future scrapes should be added as new date-named splits rather than overwriting existing ones, then regenerate deduplicated.
  • —2026 scrape covered class ids 1–10000 with dual authenticated workers; network-blip classes were re-probed before export.
  • —The split name all is reserved by Hugging Face datasets, so the cross-date union is published as deduplicated.