# Moodle (slim)

> Moodle is an open-source learning management system that schools and companies run themselves or through MoodleCloud. Its web services expose 800 functions for courses, quizzes, assignments and grades, and Moodle 5.3 adds a scoped REST API with personal access tokens.

- Full: https://www.anchorterminal.com/tools/moodle.md (~8,050 tokens) · this version ~1,730 tokens · JSON https://www.anchorterminal.com/tools/moodle.json · canonical https://www.anchorterminal.com/tools/moodle
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-04 · pricing https://www.anchorterminal.com/tools/moodle#pricing · reviews https://www.anchorterminal.com/tools/moodle#reviews
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

**B · 67.7/100 · rank #280 of 1349 · #1 in Learning, tutoring & assessment · not agent-ready · confidence medium**


Assessment: Free GPL software with about 800 typed web service functions over courses, quizzes, assignments and grades, a six-monthly release train with dated security advisories, and in 5.3 a scoped REST API with expiring tokens. An administrator must enable the services and issue tokens, the classic token travels in the query string, and no public OpenAPI file exists without a site.

## Facts

- Kind: HTTP API · vendor: Moodle Pty Ltd · category: Learning, tutoring & assessment · legal entity: Moodle Pty Ltd · provenance 76/100
- Endpoint: `https://<site>/webservice/rest/server.php` (HTTP)
- Auth: OAuth or key · pricing: Free · x402: no · licence: GPL-3.0-or-later
- Probe metrics: not measured yet (probes haven't run)
- Surface listed: Moodle LMS's web services (external functions over REST) and the 5.3 REST API, as run on an owner's own site, read from moodledev.io, docs.moodle.org, moodle.org, moodle.com, moodlecloud.com, the Moodle marketplace and the moodle/moodle repository feeds on 3 November 2026. No site was installed and no call was made
- Endpoints: https://<site>/webservice/rest/server.php for classic functions (wsfunction, wstoken, moodlewsrestformat); https://<site>/api/rest/v2/<component>/... for the 5.3 REST API; https://<site>/login/token.php to fetch a token with a username and password
- Functions: About 800 to 900 across core_course, core_user, core_enrol, core_grades, core_message, core_calendar, core_competency, mod_quiz, mod_assign, mod_forum, mod_lesson, mod_workshop, gradereport_* and gradingform_*; 5.3 adds assignment overrides, multiple-marker feedback and forum read-state functions
- Tokens: Classic tokens per user and service, created by an administrator or through login/token.php, with IP restriction and valid-until; 5.3 personal access tokens with scopes and expiry, shown once, with last-use time and IP, and OAuth 2 clients registered by an administrator
- Hosting: Self-hosted (PHP, PostgreSQL 17 or MariaDB 11.4 and up for 5.3), MoodleCloud from Moodle Pty Ltd, or certified partners; MoodleCloud's status page runs on Uptime Kuma
- Deprecation: Three stages (initial, final, removal) tied to major versions, upgrade notes required; external functions are removed at final deprecation with no stub
- MCP: None from Moodle HQ. The marketplace plugin webservice_mcp by an individual maintainer and community servers in the official registry are third-party
- Company: Moodle Pty Ltd, West Perth, Australia, founded by Martin Dougiamas (chairperson), CEO Scott Anderberg, a certified B Corporation; minority investment from Education For The Many in 2017
- Prices: MoodleCloud Starter (50 users, 1GB), yearly $13.33 per month (plan); MoodleCloud Standard (750 users, 50GB), yearly $174.17 per month (plan)

- Scores: Reliability 80, Performance pending, Schema & documentation 66, Agent ergonomics 49, Security & auth 67, Payments & pricing 60, Task success pending, Maintenance & community 81, Transparency & trust 76 · total over the 7 assessed categories
- Why: Reliability, Read with the local-software lines, since the owner runs Moodle and calls their own site. · Schema & documentation, Function definitions are machine-readable inside a site (the generated API Documentation page for classic functions, SwaggerUI for the 5.3 R… · Agent ergonomics, About 800 to 900 functions, but a service can expose only the functions an agent needs and each call names one function, so the working set… · Security & auth, Two credential models. · Payments & pricing, Read with the self-hosted rule for free software with nothing to buy. · Maintenance & community, Moodle 5.3.0 on 5 October 2026 and commits on main through 30 October (30). · Transparency & trust, GPL-3.0-or-later source (30).
- Sources: 26, open questions: 8, both in the full twin
- Capabilities: learning.lms, learning.courses, learning.quiz, learning.progress
- JSON: https://www.anchorterminal.com/api/v1/tools/moodle.json
- Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/moodle.svg` or a link to https://www.anchorterminal.com/tools/moodle from a page on moodle.org or moodle.com or one of their subdomains, or the README at the root of github.com/moodle/moodle, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin.
- Support: privacy@moodle.com; https://docs.moodle.org/en/; https://moodle.org/security/report/; https://status.moodlecloud.com/; more in the full twin

## Before you call it

1. Ask the site administrator for a token on a custom service limited to the functions you need, with an IP restriction and a valid-until date; don't use the mobile service token for broader work
2. Call https://<site>/webservice/rest/server.php with wsfunction, wstoken and moodlewsrestformat=json, sending the token in the POST body rather than the URL
3. On a 5.3 site, prefer a personal access token or OAuth 2 client for the /api/rest/v2 routes it covers, and expect an access_denied error naming the missing scope
4. Read each function's parameters in the site's API Documentation page; array parameters are flattened as users[0][username] in REST
5. Check the site's Moodle version and the upgrade notes before relying on a function; deprecated external functions are removed outright

## Connect

```bash
curl -X POST "https://<site>/webservice/rest/server.php" -d wstoken=<TOKEN> -d wsfunction=core_course_get_courses -d moodlewsrestformat=json
```
Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/moodle

## Similar tools

| Tool | Grade | Score | Shared capabilities | Slim |
| --- | --- | --- | --- | --- |
| Instructure Canvas | C | 59.5 | learning.lms, learning.courses, learning.quiz, learning.progress | https://www.anchorterminal.com/tools/canvas-lms.min.md |
| Learnosity | C | 60.2 | learning.quiz, learning.progress, learning.courses | https://www.anchorterminal.com/tools/learnosity.min.md |
| Kahoot! | C | 55.2 | learning.quiz, learning.progress, learning.lms | https://www.anchorterminal.com/tools/kahoot.min.md |
| Quizgecko | F | 33 | learning.quiz, learning.courses | https://www.anchorterminal.com/tools/quizgecko.min.md |
| Preply | C | 57.4 | same category | https://www.anchorterminal.com/tools/preply.min.md |


## Panel reviews (0, desk reviews from public material, no calls made)

