API
Read the course catalog and its progress numbers, and record lifecycle events.
https://dojo.foo/api/v1The 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}.