API

Read the course catalog and its progress numbers, and record lifecycle events.

https://dojo.foo/api/v1

The API is public: there's no key to send. Read routes are cached and follow the skills.sh API, with skills renamed to courses.

OpenAPI document · API explorer

Collections

  • Courses: the catalog, search, each course's files and its learning metrics.
  • Events: what the CLI records as you install and work through a course. See Privacy for what each event holds.
  • Health: whether the API is up.

Errors

An error has an HTTP status and a JSON body with a code and a message:

{ "error": "course_not_found", "message": "Course not found." }

Pagination

GET /courses takes page, from 0, and per_page, 1–500 (default 100). The response's pagination holds page, perPage, total and hasMore.

Listing a course

The first installed event for a public GitHub course sends its source along. The API then fetches the course's manifest from GitHub, validates it and runs Dojo's security checks, unless the manifest sets private: true. The course starts in trial: its own routes answer, but it's left out of the listings until it's enabled. Its checks are at GET /courses/audit/{source}/{slug}.

Edit on GitHub