Exercism Scraper avatar

Exercism Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Exercism Scraper

Exercism Scraper

Scrape Exercism.org - free open-source coding education platform. List all programming language tracks, browse exercises by track, filter by difficulty, type, and more. No auth required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape Exercism.org — a free, open-source platform for learning 70+ programming languages through hands-on exercises. Extract programming language track metadata, exercise lists, difficulty levels, types (concept, practice, tutorial), and direct URLs.

No API key, no login, no proxy required. Uses the public Exercism REST API.

What you can scrape

  • All 80+ programming language tracks with exercise counts, concept counts, tags, and URLs
  • Exercises for any specific track with difficulty, type (concept/practice/tutorial), and blurb
  • Exercises across all tracks (or a subset) in a single run
  • Filter by difficulty (easy, medium, hard) and exercise type

Use cases

  • Build a curriculum explorer or language comparison tool
  • Analyze exercise difficulty distribution across languages
  • Generate learning roadmaps based on concept availability
  • Research which languages have concept-based vs practice-based tracks
  • Track exercise inventory for specific programming languages

Input

FieldTypeDescription
modeselectWhat to fetch: tracks, exercises, or allExercises
trackIdselectTrack slug (e.g. python, rust) — required for mode=exercises
trackIdsarrayList of track slugs for mode=allExercises (leave empty for all tracks)
difficultyselectFilter: easy, medium, hard, or empty for all
exerciseTypeselectFilter: tutorial, concept, practice, or empty for all
maxItemsintegerMaximum records to return (1–10,000, default 100)

Example inputs

List all programming language tracks:

{
"mode": "tracks",
"maxItems": 100
}

Get all Python exercises:

{
"mode": "exercises",
"trackId": "python",
"maxItems": 200
}

Get medium-difficulty practice exercises for Rust:

{
"mode": "exercises",
"trackId": "rust",
"difficulty": "medium",
"exerciseType": "practice"
}

Get exercises for multiple tracks:

{
"mode": "allExercises",
"trackIds": ["python", "javascript", "rust"],
"maxItems": 500
}

Output

Track record (mode=tracks)

{
"trackId": "python",
"trackName": "Python",
"numExercises": 146,
"numConcepts": 16,
"isCourse": true,
"tags": ["Interpreted", "Object-oriented", "Dynamic", "Strong"],
"trackUrl": "https://exercism.org/tracks/python",
"exercisesUrl": "https://exercism.org/tracks/python/exercises",
"conceptsUrl": "https://exercism.org/tracks/python/concepts",
"iconUrl": "https://assets.exercism.org/tracks/python.svg",
"recordType": "track",
"scrapedAt": "2026-06-10T12:00:00+00:00"
}

Exercise record (mode=exercises / allExercises)

{
"exerciseSlug": "two-fer",
"exerciseName": "Two Fer",
"trackId": "python",
"trackName": "Python",
"difficulty": "easy",
"type": "practice",
"blurb": "Create a sentence of the form 'One for X, one for me.'",
"exerciseUrl": "https://exercism.org/tracks/python/exercises/two-fer",
"iconUrl": "https://assets.exercism.org/exercises/two-fer.svg",
"recordType": "exercise",
"scrapedAt": "2026-06-10T12:00:00+00:00"
}

Supported tracks (sample)

8th, ABAP, ARM64 Assembly, AWK, Ballerina, Bash, C, CFML, Clojure, COBOL, C++, Crystal, C#, D, Dart, Delphi, Elixir, Elm, Erlang, Fortran, F#, Gleam, Go, Groovy, Haskell, Idris, Java, JavaScript, Julia, Kotlin, Lua, MIPS Assembly, Nim, OCaml, Pascal, Perl 5, PHP, PL/SQL, PowerShell, Prolog, PureScript, Python, R, Racket, Raku, ReasonML, Ruby, Rust, Scala, Scheme, Standard ML, Solidity, Swift, Tcl, TypeScript, Vimscript, Wren, x86-64 Assembly, Zig, and more.

FAQ

Do I need an API key or account? No. This scraper uses Exercism's completely public REST API (exercism.org/api/v2).

How many exercises are there? Each track has 40–200+ exercises. Python alone has 146+ exercises. Total across all tracks is 5,000+.

What is the difference between exercise types?

  • tutorial: Introductory exercises (usually just "Hello World")
  • concept: Exercises teaching a specific language concept
  • practice: Traditional algorithmic exercises

What does isCourse mean? When true, the track has a structured learning path with concept-based progression. When false, it's a practice-only track.

Can I get community solutions or user data? No. Community solutions require authentication. This scraper only accesses public, unauthenticated endpoints.

How fast is the scraper? Tracks mode returns 80+ records in a few seconds. Exercise mode for a single track (100–200 exercises) completes in 1–2 seconds.

Data source

All data is sourced from exercism.org via their public REST API. Exercism is an open-source, not-for-profit platform.