{
  "data": {
    "a": {
      "slug": "moodle",
      "name": "Moodle",
      "vendor": "Moodle Pty Ltd",
      "vendorUrl": "https://moodle.com",
      "kind": "http-api",
      "category": "learning",
      "summary": "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.",
      "url": "https://www.anchorterminal.com/tools/moodle",
      "markdownUrl": "https://www.anchorterminal.com/tools/moodle.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/moodle.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/moodle.json",
      "dns": "moodle.grade.anchorterminal.com",
      "repo": "https://github.com/moodle/moodle",
      "license": "GPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://\u003csite\u003e/webservice/rest/server.php",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Classic web services use a token tied to a user and a service. An administrator enables web services and the REST protocol, creates a service with chosen functions, authorises users and makes the token under Manage tokens, with optional IP restriction and a valid-until date; users with the capability can also fetch one from login/token.php with a username and password. The token travels as the `wstoken` parameter in the query string or POST body. Moodle 5.3 (5 October 2026) adds a REST API at /api/rest/v2 with personal access tokens (scoped, expiring after 7 days to 1 year, shown once, revocable, with last-use IP) and OAuth 2 clients an administrator registers, enforced by scopes such as core_user:user:read in addition to capabilities (https://docs.moodle.org/503/en/REST_API_tokens).",
      "pricing": "free",
      "pricingNotes": "Moodle LMS is free software under GPL-3.0-or-later, installed and run by the owner. Moodle Pty Ltd's hosted MoodleCloud plans are public, billed yearly in Australian dollars, from Starter at AUD 230 (USD 160) a year for 50 users and 1GB to Standard at AUD 3,000 (USD 2,090) for 750 users and 50GB, with a 28-day trial of Starter that needs no card; MoodleCloud sites cannot install plugins, and whether they allow web services was not established. Partner hosting is quoted (https://www.moodlecloud.com/standard-plans/).",
      "priceSummary": "Free · OSS",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the web services documentation, the routing and scopes docs or MoodleCloud's pages (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://moodledev.io/docs/6.0/apis/subsystems/external",
      "capabilities": [
        "learning.lms",
        "learning.courses",
        "learning.quiz",
        "learning.progress"
      ],
      "tags": [
        "self-hosted",
        "open-source",
        "official",
        "free",
        "oauth",
        "security-txt",
        "gpl"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.7,
        "grade": "B",
        "agentReady": false,
        "rank": 280,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 81,
          "payments": 60,
          "reliability": 80,
          "schema": 66,
          "security": 67,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "An agent working inside an institution or company that runs Moodle and can get a scoped token, reading course content, quiz attempts, assignments and grades or writing grades and enrolments.",
        "strengths": [
          "About 800 to 900 external functions with typed, described parameters and returns, generated into a reference on every site",
          "Moodle 5.3 adds personal access tokens with scopes and 7-day to 1-year expiry, OAuth 2 clients and a SwaggerUI for the new REST API",
          "Services can expose only chosen functions to authorised users, with IP restriction and expiry on tokens",
          "Releases every April and October, point releases every two months, 5.3 LTS supported with security fixes to October 2029",
          "Ten dated security advisories with CVEs between 9 September and 15 October 2026, under GPL-3.0-or-later source"
        ],
        "weaknesses": [
          "A site administrator has to enable web services, build a service and issue a token before any call; nothing is self-serve",
          "The classic token goes in the `wstoken` query or POST parameter, is all-powerful within the user's capabilities and has no scopes",
          "No public OpenAPI or llms.txt; the machine-readable reference exists only inside a running site",
          "The 5.3 REST API reaches only a few parts of Moodle, so most work still goes through the classic functions",
          "No official client SDK or MCP server from Moodle HQ; sample clients and community servers only"
        ],
        "agentNotes": [
          "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",
          "Call https://\u003csite\u003e/webservice/rest/server.php with wsfunction, wstoken and moodlewsrestformat=json, sending the token in the POST body rather than the URL",
          "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",
          "Read each function's parameters in the site's API Documentation page; array parameters are flattened as users[0][username] in REST",
          "Check the site's Moodle version and the upgrade notes before relying on a function; deprecated external functions are removed outright"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.7
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 81,
          "payments": 60,
          "reliability": 80,
          "schema": 66,
          "security": 67,
          "transparency": 76
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST \"https://\u003csite\u003e/webservice/rest/server.php\" -d wstoken=\u003cTOKEN\u003e -d wsfunction=core_course_get_courses -d moodlewsrestformat=json"
      },
      "letme": {
        "capability": "https://letme.dev/learning.lms",
        "tool": "https://letme.dev/moodle"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "MoodleCloud Starter (50 users, 1GB), yearly",
          "unit": "month",
          "usd": 13.33,
          "note": "USD 160 a year (AUD 230); hosted by Moodle Pty Ltd, plugins not installable"
        },
        {
          "item": "MoodleCloud Standard (750 users, 50GB), yearly",
          "unit": "month",
          "usd": 174.17,
          "note": "USD 2,090 a year (AUD 3,000)"
        }
      ],
      "provenance": {
        "legalEntity": "Moodle Pty Ltd",
        "domain": "moodle.org",
        "domainRegistered": "2002-04-02",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "https://moodle.com/privacy-notice/",
        "statusPage": "https://status.moodlecloud.com",
        "changelog": "https://moodledev.io/general/releases",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "Moodle Pty Ltd is named in the privacy notice (last updated October 2025, PO Box 303, West Perth) and in the trademark notice on moodle.com. The software licence is GPL-3.0-or-later, which stands in for terms; no terms of service for self-hosted use exist, and MoodleCloud's site links only cookie, privacy and trademark policies.",
          "The privacy notice links a standard data processing agreement (February 2026 PDF) and a register of GDPR information, and names dpo@moodle.com and privacy@moodle.com.",
          "moodle.org/.well-known/security.txt names the report form at moodle.org/security/report/ and the policy at moodledev.io/general/development/process/security, with Expires 10 May 2027.",
          "moodle.org/robots.txt disallows search pages and /plugins/*/*, sets Content-Signal ai-train=no, search=yes, ai-input=no and asks for a 10-second crawl delay; docs.moodle.org asks for 5 seconds. Both were followed. moodledev.io, moodle.com and www.moodlecloud.com allow all.",
          "The endpoint sits on each owner's own site, not on a Moodle domain, so endpointOnVendorDomain is false. status.moodlecloud.com (Uptime Kuma) covers MoodleCloud only.",
          "RDAP at Public Interest Registry gives moodle.org a registration date of 2 April 2002; moodle.com dates from 22 February 1999."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/moodle.json",
      "live": {
        "slug": "moodle",
        "probe": {
          "target": "https://\u003csite\u003e/webservice/rest/server.php",
          "method": "get",
          "lastAt": "2026-11-04T19:34:55.482445256Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 43,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-11-04T15:25:33.426772381Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "DNS lookup failed"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.moodlecloud.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:09.831975618Z"
        },
        "securityTxt": {
          "url": "https://moodle.org/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-05-10T01:00:00.000Z",
          "checkedAt": "2026-11-04T15:54:22.866105142Z"
        },
        "updatedAt": "2026-11-04T19:34:55.482445256Z"
      }
    },
    "answer": "Moodle scores 67.7 (B) on agent readiness against Quizgecko's 33 (F), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "quizgecko",
      "name": "Quizgecko",
      "vendor": "Version Zero Limited",
      "vendorUrl": "https://quizgecko.com",
      "kind": "http-api",
      "category": "learning",
      "summary": "Quizgecko is a study app from Version Zero Limited that turns notes, documents, links and recordings into quizzes, flashcards, notes and podcasts. Its V2 API generates a course from text, a URL, uploads or a topic and edits the quizzes.",
      "url": "https://www.anchorterminal.com/tools/quizgecko",
      "markdownUrl": "https://www.anchorterminal.com/tools/quizgecko.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/quizgecko.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/quizgecko.json",
      "dns": "quizgecko.grade.anchorterminal.com",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.quizgecko.com/v2",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Bearer API token in the Authorization header, generated on the API docs page after logging in; the docs say to contact Quizgecko for API access. The same page documents `?api_key=` as a query parameter for local testing. No scopes, expiry or rotation are described. An unauthenticated GET to api.quizgecko.com/v2/usage answered 302 to the login page rather than 401 on 3 November 2026 (https://quizgecko.com/api-docs).",
      "pricing": "freemium",
      "pricingNotes": "No API price is published. llms.txt gives the app plans as of November 2026 in US dollars, a Free plan with 3 new sets a week, Plus at $16 a month or $108 a year for 20 sets a month, and Ultra at $29 a month or $276 a year for unlimited sets and LMS export. API access is \"contact us\", and /usage reports a monthly course-creation limit per account. The plans page at quizgecko.com/plans answered a Cloudflare challenge (https://quizgecko.com/llms.txt).",
      "priceSummary": "$16 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI document, the API catalogue or llms.txt (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://quizgecko.com/api-docs",
      "llmsTxt": "https://quizgecko.com/llms.txt",
      "openapi": "https://quizgecko.com/.well-known/openapi-v2.json",
      "capabilities": [
        "learning.quiz",
        "learning.flashcards",
        "learning.courses"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "openapi",
        "llms-txt",
        "sales-led",
        "freemium",
        "ios",
        "android",
        "uk"
      ],
      "lastRelease": "2026-10-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 33,
        "grade": "F",
        "agentReady": false,
        "rank": 1263,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 45,
          "maintenance": 55,
          "payments": 15,
          "reliability": 20,
          "schema": 68,
          "security": 5,
          "transparency": 35
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A small OpenAPI 3.1 surface generates a course of quizzes, flashcards and notes from text, a URL or an upload and polls it to completion. API access is granted on request with no published price or rate limit, one bearer token that may travel in the query string, and the terms, privacy policy and security page could not be read.",
        "bestFor": "An agent that has to turn a person's own material into a quiz, flashcards and notes in one call and can wait for generation.",
        "strengths": [
          "Public OpenAPI 3.1.0 document and an RFC 9727 API catalogue at /.well-known, plus llms.txt",
          "One POST /generate call turns text, a URL, uploads or a topic into a course with quizzes, flashcards and study notes, with language, difficulty and question-type options",
          "A generation-status endpoint reports progress and per-module readiness so an agent can poll instead of guessing",
          "App releases on 27 August, 14, 24 and 27 October 2026 on the App Store"
        ],
        "weaknesses": [
          "API access is by contacting Quizgecko, with no published API price, rate limit, SLA or status page",
          "One bearer token with no scopes, and `?api_key=` in the query string is a documented option",
          "The question endpoints and file upload are documented in HTML but missing from the OpenAPI document, and the PUT /quizzes body is an untyped object",
          "Terms, privacy policy, plans and security pages answered a Cloudflare challenge or are disallowed by robots.txt, so data handling is unverified"
        ],
        "agentNotes": [
          "Ask the owner to request API access and generate a token on quizgecko.com/api-docs; there is no self-serve key",
          "Send the token only in the Authorization header, never as `?api_key=`",
          "After POST /generate, poll GET /courses/{course}/generation-status until status is completed or failed, then read the course and its quizzes",
          "Check GET /usage before generating; the monthly course-creation limit returns an error with meta.monthly_limit and meta.monthly_used",
          "Upload files with POST https://api.quizgecko.com/v1/file/upload and pass the returned upload_id in upload_ids"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 33
          }
        ],
        "editorialScores": {
          "ergonomics": 45,
          "maintenance": 55,
          "payments": 15,
          "reliability": 20,
          "schema": 68,
          "security": 5,
          "transparency": 13
        },
        "provenanceScore": 57,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -H \"Authorization: Bearer YOUR_API_KEY_HERE\" https://api.quizgecko.com/v2/usage"
      },
      "letme": {
        "capability": "https://letme.dev/learning.quiz",
        "tool": "https://letme.dev/quizgecko"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Plus plan (app), monthly",
          "unit": "month",
          "usd": 16,
          "note": "$108 a year; 20 new sets a month. API access is by request and has no published price"
        },
        {
          "item": "Ultra plan (app), monthly",
          "unit": "month",
          "usd": 29,
          "note": "$276 a year; unlimited sets, LMS export"
        }
      ],
      "provenance": {
        "legalEntity": "Version Zero Limited",
        "domain": "quizgecko.com",
        "domainRegistered": "2022-10-28",
        "endpointOnVendorDomain": true,
        "terms": "https://quizgecko.com/terms",
        "privacy": "https://quizgecko.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Version Zero Limited is the seller on the App Store listing and company 13849704 at Companies House (incorporated 14 January 2022, London, one director). The terms page answered a Cloudflare challenge, so the entity named in the terms was not read.",
          "The terms and privacy URLs are the ones llms.txt and the API catalogue link. Neither was readable on 3 November 2026, the terms behind a Cloudflare challenge and the privacy page under a robots.txt disallow of /privacy-policy (the /privacy path redirects there per the App Store link).",
          "robots.txt carries Content-Signal search=yes, ai-input=yes, ai-train=no and disallows /api/, /privacy-policy, /billing, /generate and logged-in pages. /api-docs and /.well-known are allowed and were read.",
          "RDAP at Verisign gives quizgecko.com a registration date of 28 October 2022.",
          "No status page found; status.quizgecko.com has no DNS record. The API catalogue links a health endpoint at api.quizgecko.com/health, which answered {\"status\":\"ok\"}.",
          "/.well-known/security.txt returned 404. The security page at quizgecko.com/security answered a Cloudflare challenge."
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/quizgecko.json",
      "live": {
        "slug": "quizgecko",
        "probe": {
          "target": "https://api.quizgecko.com/v2",
          "method": "get",
          "lastAt": "2026-11-04T19:35:04.446885645Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 272,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 198,
          "p95ms24h": 410,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 43,
              "ok": 43
            }
          ]
        },
        "securityTxt": {
          "url": "https://quizgecko.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:52:38.600063854Z"
        },
        "updatedAt": "2026-11-04T19:35:04.446885645Z"
      }
    },
    "edges": [
      {
        "by": 62,
        "category": "security",
        "leads": "moodle",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Two credential models. The classic token is one secret per user and service with no scopes, documented in the `wstoken` query parameter, and the 5.3 personal access tokens and OAuth 2 clients carry scopes, expiry from 7 days to 1 year, one-time display and revocation; read as scoped tokens on part of the surface less 10 for the query-string option (18 of 30). Services limited to chosen functions and authorised users, capability checks in every function, IP restriction and valid-until on tokens; no confirmation step for destructive functions (16 of 20). Functions return forum posts, submissions and messages written by users, with no guidance on treating them as untrusted (5 of 15). Moodle logs web service calls in the site logs and 5.3 shows each personal access token's last use and IP; per-call detail wasn't read (10 of 15). security.txt valid to 10 May 2027, a Bugcrowd-linked report form, responsible disclosure with CVEs, advisories released on a schedule across supported branches, no paid bounty (18 of 20). 18 + 16 + 5 + 10 + 18 = 67.",
          "b": "One bearer token per account with no scopes, expiry or rotation described, and `?api_key=` is documented as a query-string option, so 10 less 10 (0 of 30). No read-only mode or confirmation for edits (0 of 20). The API fetches URLs and uploads the owner supplies and returns generated text; no guidance on treating fetched content as untrusted (3 of 15). GET /usage shows counts only, no per-call log (2 of 15). /.well-known/security.txt returned 404, the security page answered a Cloudflare challenge and no disclosure policy, bounty or certification was found elsewhere (0 of 20, with the security page unchecked). 0 + 0 + 3 + 2 + 0 = 5."
        },
        "scores": {
          "a": 67,
          "b": 5
        }
      },
      {
        "by": 60,
        "category": "reliability",
        "leads": "moodle",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since the owner runs Moodle and calls their own site. Official packages from moodle.org and GitHub with supported PHP and database versions stated per release, PostgreSQL 17 and MariaDB 11.4 and up for 5.3 (20). A public test suite (PHPUnit and Behat) and CI; whether the default branch was passing on 3 November was not read, since the repository's workflow pages weren't fetched (12 of 25). Bugs go to the Moodle Tracker, where security issues are triaged into dated advisories and point releases every two months carry fixes; the open bug count was not read (18 of 25). Versioned releases with release notes, upgrade notes and a written deprecation policy (15). Stable since 1.0 in 2002, now 5.3 (15). 20 + 12 + 18 + 15 + 15 = 80.",
          "b": "Read with the hosted lines. No status page found, and status.quizgecko.com has no DNS record; the API catalogue links only a health endpoint that answered {\"status\":\"ok\"} (0). No readable incident history (5). No rate limit with numbers; the OpenAPI document lists a 429 and GET /usage reports a monthly course-creation limit, which is a quota, not a rate (5 of 15). No Retry-After, backoff guidance or idempotency keys, and generation is a write that creates a course each time (0). No SLA (0). V2 is the current API and is not marked beta (10). 0 + 5 + 5 + 0 + 0 + 10 = 20."
        },
        "scores": {
          "a": 80,
          "b": 20
        }
      },
      {
        "by": 45,
        "category": "payments",
        "leads": "moodle",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the self-hosted rule for free software with nothing to buy. No payment protocol (0 of 40). The licence is public and MoodleCloud's plan prices are public too (20). Free to download and run, with a 28-day MoodleCloud trial that needs no card (20). An owner installs it and issues their own tokens, so no vendor sign-up stands in the way (20). 0 + 20 + 20 + 20 = 60.",
          "b": "No x402, MPP or L402 (0). App plan prices are public in llms.txt, but API access is \"contact us\" with no API price (5 of 20). A free app plan exists, but API access needs a request to the company and whether a card is needed could not be read (10 of 20). A person has to log in and ask for access (0). 0 + 5 + 10 + 0 = 15."
        },
        "scores": {
          "a": 60,
          "b": 15
        }
      },
      {
        "by": 41,
        "category": "transparency",
        "leads": "moodle",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "GPL-3.0-or-later source (30). Privacy notice last updated October 2025 with a DPA and a GDPR register, no fixed retention periods, and for a self-hosted site the owner is the controller (18 of 30). A written deprecation policy with three stages tied to major versions and upgrade notes, plus a dated release and support calendar to 2029 (20). Sites may register with moodle.org and send statistics, and the AI subsystem names its providers; the privacy notice names no subprocessors or data locations (8 of 20). 30 + 18 + 20 + 8 = 76.",
          "b": "Closed service. The terms page answered a Cloudflare challenge, so the entity and terms were read only from Companies House and the App Store (8 of 30). The privacy policy is disallowed by robots.txt and the security page is behind the challenge, so retention and data-handling statements are unread (0 of 30). V1 is called legacy and still served, with no date or policy (5 of 20). No subprocessors or data locations found on the readable pages (0 of 20). 8 + 0 + 5 + 0 = 13."
        },
        "scores": {
          "a": 76,
          "b": 35
        }
      },
      {
        "by": 26,
        "category": "maintenance",
        "leads": "moodle",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Moodle 5.3.0 on 5 October 2026 and commits on main through 30 October (30). Point releases on 10 August, 14 September and 5 October 2026 across five branches (20). The Tracker, forums on moodle.org and developer chat answer issues; security issues were fixed and published with CVEs on 9 September, 22 September and 15 October 2026 (20 of 25). No official SDK or MCP server; sample clients only (5 of 15). PHPUnit and Behat suites, GitHub Actions, and minimum PHP and database versions raised per release, read from the release notes rather than a passing run (6 of 10). 30 + 20 + 20 + 5 + 6 = 81.",
          "b": "Read for a closed service. The iOS app reached 8.0.1 on 27 October 2026 and llms.txt gives prices as of November 2026 (30). App versions on 27 August, 14 October, 24 October and 27 October 2026 (20). No API changelog; support@quizgecko.com in the docs metadata, untested (5 of 15). No SDKs (0). No package to judge (0). 30 + 20 + 5 + 0 + 0 = 55."
        },
        "scores": {
          "a": 81,
          "b": 55
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Moodle Pty Ltd",
        "b": "Version Zero Limited",
        "name": "Vendor"
      },
      {
        "a": "https://\u003csite\u003e/webservice/rest/server.php",
        "b": "https://api.quizgecko.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "GPL-3.0-or-later",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-10-27",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-09-12",
        "name": "Terms last updated"
      },
      {
        "a": "2025-10-01",
        "b": "2026-10-21",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Moodle scores 67.7 (B) on agent readiness against Quizgecko's 33 (F), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Moodle or Quizgecko?"
      },
      {
        "answer": "Moodle takes an API key or an OAuth sign-in. Quizgecko needs an API key.",
        "question": "Do Moodle and Quizgecko need an API key?"
      },
      {
        "answer": "Yes. Moodle has a hosted endpoint at https://\u003csite\u003e/webservice/rest/server.php and Quizgecko at https://api.quizgecko.com/v2.",
        "question": "Can an agent call Moodle and Quizgecko without installing anything?"
      },
      {
        "answer": "Moodle is open source (GPL-3.0-or-later). No open-source release is listed for Quizgecko.",
        "question": "Are Moodle and Quizgecko open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 20",
          "Security \u0026 auth, 67 against 5",
          "Payments \u0026 pricing, 60 against 15",
          "Maintenance \u0026 community, 81 against 55",
          "Transparency \u0026 trust, 76 against 35"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "An agent working inside an institution or company that runs Moodle and can get a scoped token, reading course content, quiz attempts, assignments and grades or writing grades and enrolments.",
        "slug": "moodle",
        "watchFor": "A site administrator has to enable web services, build a service and issue a token before any call; nothing is self-serve"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent that has to turn a person's own material into a quiz, flashcards and notes in one call and can wait for generation.",
        "slug": "quizgecko",
        "watchFor": "API access is by contacting Quizgecko, with no published API price, rate limit, SLA or status page"
      }
    ],
    "history": null,
    "job": {
      "capability": "learning.quiz",
      "name": "Learning quiz"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/canvas-lms-vs-quizgecko.json",
        "title": "Instructure Canvas vs Quizgecko",
        "url": "https://www.anchorterminal.com/compare/canvas-lms-vs-quizgecko"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kahoot-vs-moodle.json",
        "title": "Kahoot! vs Moodle",
        "url": "https://www.anchorterminal.com/compare/kahoot-vs-moodle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kahoot-vs-quizgecko.json",
        "title": "Kahoot! vs Quizgecko",
        "url": "https://www.anchorterminal.com/compare/kahoot-vs-quizgecko"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnosity-vs-moodle.json",
        "title": "Learnosity vs Moodle",
        "url": "https://www.anchorterminal.com/compare/learnosity-vs-moodle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnosity-vs-quizgecko.json",
        "title": "Learnosity vs Quizgecko",
        "url": "https://www.anchorterminal.com/compare/learnosity-vs-quizgecko"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canvas-lms-vs-moodle.json",
        "title": "Instructure Canvas vs Moodle",
        "url": "https://www.anchorterminal.com/compare/canvas-lms-vs-moodle"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 60,
        "edge": "moodle",
        "key": "reliability",
        "moodle": 80,
        "name": "Reliability",
        "quizgecko": 20,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "quizgecko",
        "key": "schema",
        "moodle": 66,
        "name": "Schema \u0026 documentation",
        "quizgecko": 68,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "moodle",
        "key": "ergonomics",
        "moodle": 49,
        "name": "Agent ergonomics",
        "quizgecko": 45,
        "weight": 13
      },
      {
        "by": 62,
        "edge": "moodle",
        "key": "security",
        "moodle": 67,
        "name": "Security \u0026 auth",
        "quizgecko": 5,
        "weight": 14
      },
      {
        "by": 45,
        "edge": "moodle",
        "key": "payments",
        "moodle": 60,
        "name": "Payments \u0026 pricing",
        "quizgecko": 15,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "moodle",
        "key": "maintenance",
        "moodle": 81,
        "name": "Maintenance \u0026 community",
        "quizgecko": 55,
        "weight": 7
      },
      {
        "by": 41,
        "edge": "moodle",
        "key": "transparency",
        "moodle": 76,
        "name": "Transparency \u0026 trust",
        "quizgecko": 35,
        "weight": 7
      }
    ],
    "summary": "Moodle scores 67.7 (B) on agent readiness against Quizgecko's 33 (F), and leads in 6 of 7 scored categories. Both do learning quiz.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "moodle": "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.",
      "quizgecko": "A small OpenAPI 3.1 surface generates a course of quizzes, flashcards and notes from text, a URL or an upload and polls it to completion. API access is granted on request with no published price or rate limit, one bearer token that may travel in the query string, and the terms, privacy policy and security page could not be read."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko",
    "json": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko.min.md"
  },
  "markdown": "Moodle scores 67.7 (B) on agent readiness against Quizgecko's 33 (F), and leads in 6 of 7 scored categories. Both do learning quiz.\n\n- Moodle: grade B, 67.7/100, rank #280 of 1349. Markdown https://www.anchorterminal.com/tools/moodle.md · JSON https://www.anchorterminal.com/api/v1/tools/moodle.json\n- Quizgecko: grade F, 33/100, rank #1263 of 1349. Markdown https://www.anchorterminal.com/tools/quizgecko.md · JSON https://www.anchorterminal.com/api/v1/tools/quizgecko.json\n- Best learning, tutoring and assessment tools for AI agents: https://www.anchorterminal.com/best/learning/index.md\n- All 10 learning comparisons: https://www.anchorterminal.com/compare/learning/index.md\n\n## Which one, for what\n\n### Moodle (B)\n\nGood for: An agent working inside an institution or company that runs Moodle and can get a scoped token, reading course content, quiz attempts, assignments and grades or writing grades and enrolments.\n\nAhead on:\n- Reliability, 80 against 20\n- Security \u0026 auth, 67 against 5\n- Payments \u0026 pricing, 60 against 15\n- Maintenance \u0026 community, 81 against 55\n- Transparency \u0026 trust, 76 against 35\n\nAlso in its favour:\n- Open source\n\nWatch for: A site administrator has to enable web services, build a service and issue a token before any call; nothing is self-serve\n\n### Quizgecko (F)\n\nGood for: An agent that has to turn a person's own material into a quiz, flashcards and notes in one call and can wait for generation.\n\nWatch for: API access is by contacting Quizgecko, with no published API price, rate limit, SLA or status page\n\n\n## Why the edge\n\n### Security \u0026 auth: Moodle +62\n\n- Moodle (67): Two credential models. The classic token is one secret per user and service with no scopes, documented in the `wstoken` query parameter, and the 5.3 personal access tokens and OAuth 2 clients carry scopes, expiry from 7 days to 1 year, one-time display and revocation; read as scoped tokens on part of the surface less 10 for the query-string option (18 of 30). Services limited to chosen functions and authorised users, capability checks in every function, IP restriction and valid-until on tokens; no confirmation step for destructive functions (16 of 20). Functions return forum posts, submissions and messages written by users, with no guidance on treating them as untrusted (5 of 15). Moodle logs web service calls in the site logs and 5.3 shows each personal access token's last use and IP; per-call detail wasn't read (10 of 15). security.txt valid to 10 May 2027, a Bugcrowd-linked report form, responsible disclosure with CVEs, advisories released on a schedule across supported branches, no paid bounty (18 of 20). 18 + 16 + 5 + 10 + 18 = 67.\n- Quizgecko (5): One bearer token per account with no scopes, expiry or rotation described, and `?api_key=` is documented as a query-string option, so 10 less 10 (0 of 30). No read-only mode or confirmation for edits (0 of 20). The API fetches URLs and uploads the owner supplies and returns generated text; no guidance on treating fetched content as untrusted (3 of 15). GET /usage shows counts only, no per-call log (2 of 15). /.well-known/security.txt returned 404, the security page answered a Cloudflare challenge and no disclosure policy, bounty or certification was found elsewhere (0 of 20, with the security page unchecked). 0 + 0 + 3 + 2 + 0 = 5.\n\n### Reliability: Moodle +60\n\n- Moodle (80): Read with the local-software lines, since the owner runs Moodle and calls their own site. Official packages from moodle.org and GitHub with supported PHP and database versions stated per release, PostgreSQL 17 and MariaDB 11.4 and up for 5.3 (20). A public test suite (PHPUnit and Behat) and CI; whether the default branch was passing on 3 November was not read, since the repository's workflow pages weren't fetched (12 of 25). Bugs go to the Moodle Tracker, where security issues are triaged into dated advisories and point releases every two months carry fixes; the open bug count was not read (18 of 25). Versioned releases with release notes, upgrade notes and a written deprecation policy (15). Stable since 1.0 in 2002, now 5.3 (15). 20 + 12 + 18 + 15 + 15 = 80.\n- Quizgecko (20): Read with the hosted lines. No status page found, and status.quizgecko.com has no DNS record; the API catalogue links only a health endpoint that answered {\"status\":\"ok\"} (0). No readable incident history (5). No rate limit with numbers; the OpenAPI document lists a 429 and GET /usage reports a monthly course-creation limit, which is a quota, not a rate (5 of 15). No Retry-After, backoff guidance or idempotency keys, and generation is a write that creates a course each time (0). No SLA (0). V2 is the current API and is not marked beta (10). 0 + 5 + 5 + 0 + 0 + 10 = 20.\n\n### Payments \u0026 pricing: Moodle +45\n\n- Moodle (60): Read with the self-hosted rule for free software with nothing to buy. No payment protocol (0 of 40). The licence is public and MoodleCloud's plan prices are public too (20). Free to download and run, with a 28-day MoodleCloud trial that needs no card (20). An owner installs it and issues their own tokens, so no vendor sign-up stands in the way (20). 0 + 20 + 20 + 20 = 60.\n- Quizgecko (15): No x402, MPP or L402 (0). App plan prices are public in llms.txt, but API access is \"contact us\" with no API price (5 of 20). A free app plan exists, but API access needs a request to the company and whether a card is needed could not be read (10 of 20). A person has to log in and ask for access (0). 0 + 5 + 10 + 0 = 15.\n\n### Transparency \u0026 trust: Moodle +41\n\n- Moodle (76): GPL-3.0-or-later source (30). Privacy notice last updated October 2025 with a DPA and a GDPR register, no fixed retention periods, and for a self-hosted site the owner is the controller (18 of 30). A written deprecation policy with three stages tied to major versions and upgrade notes, plus a dated release and support calendar to 2029 (20). Sites may register with moodle.org and send statistics, and the AI subsystem names its providers; the privacy notice names no subprocessors or data locations (8 of 20). 30 + 18 + 20 + 8 = 76.\n- Quizgecko (35): Closed service. The terms page answered a Cloudflare challenge, so the entity and terms were read only from Companies House and the App Store (8 of 30). The privacy policy is disallowed by robots.txt and the security page is behind the challenge, so retention and data-handling statements are unread (0 of 30). V1 is called legacy and still served, with no date or policy (5 of 20). No subprocessors or data locations found on the readable pages (0 of 20). 8 + 0 + 5 + 0 = 13.\n\n### Maintenance \u0026 community: Moodle +26\n\n- Moodle (81): Moodle 5.3.0 on 5 October 2026 and commits on main through 30 October (30). Point releases on 10 August, 14 September and 5 October 2026 across five branches (20). The Tracker, forums on moodle.org and developer chat answer issues; security issues were fixed and published with CVEs on 9 September, 22 September and 15 October 2026 (20 of 25). No official SDK or MCP server; sample clients only (5 of 15). PHPUnit and Behat suites, GitHub Actions, and minimum PHP and database versions raised per release, read from the release notes rather than a passing run (6 of 10). 30 + 20 + 20 + 5 + 6 = 81.\n- Quizgecko (55): Read for a closed service. The iOS app reached 8.0.1 on 27 October 2026 and llms.txt gives prices as of November 2026 (30). App versions on 27 August, 14 October, 24 October and 27 October 2026 (20). No API changelog; support@quizgecko.com in the docs metadata, untested (5 of 15). No SDKs (0). No package to judge (0). 30 + 20 + 5 + 0 + 0 = 55.\n\n## Score by category\n\n| Category | Weight | Moodle | Quizgecko | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 20 | Moodle +60 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 68 | Quizgecko +2 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 45 | Moodle +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 5 | Moodle +62 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 15 | Moodle +45 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 55 | Moodle +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 35 | Moodle +41 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.7 · B** | **33 · F** | |\n\n## Facts side by side\n\n| Fact | Moodle | Quizgecko |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Moodle Pty Ltd | Version Zero Limited |\n| Hosted endpoint | `https://\u003csite\u003e/webservice/rest/server.php` | `https://api.quizgecko.com/v2` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | GPL-3.0-or-later | none |\n| Tools exposed | 0 | 0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-05 | 2026-10-27 |\n| Terms last updated | no document linked | 2026-09-12 |\n| Privacy policy last updated | 2025-10-01 | 2026-10-21 |\n| Customer content may train models | not read yet | yes |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n\n## Verdicts\n\n**Moodle.** 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.\n\n**Quizgecko.** A small OpenAPI 3.1 surface generates a course of quizzes, flashcards and notes from text, a URL or an upload and polls it to completion. API access is granted on request with no published price or rate limit, one bearer token that may travel in the query string, and the terms, privacy policy and security page could not be read.\n\n## Before you call either\n\n### Moodle\n\n1. 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\n2. Call https://\u003csite\u003e/webservice/rest/server.php with wsfunction, wstoken and moodlewsrestformat=json, sending the token in the POST body rather than the URL\n3. 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\n4. Read each function's parameters in the site's API Documentation page; array parameters are flattened as users[0][username] in REST\n5. Check the site's Moodle version and the upgrade notes before relying on a function; deprecated external functions are removed outright\n\n### Quizgecko\n\n1. Ask the owner to request API access and generate a token on quizgecko.com/api-docs; there is no self-serve key\n2. Send the token only in the Authorization header, never as `?api_key=`\n3. After POST /generate, poll GET /courses/{course}/generation-status until status is completed or failed, then read the course and its quizzes\n4. Check GET /usage before generating; the monthly course-creation limit returns an error with meta.monthly_limit and meta.monthly_used\n5. Upload files with POST https://api.quizgecko.com/v1/file/upload and pass the returned upload_id in upload_ids\n\n## Questions\n\n### Which is better for AI agents, Moodle or Quizgecko?\n\nMoodle scores 67.7 (B) on agent readiness against Quizgecko's 33 (F), and leads in 6 of 7 scored categories.\n\n### Do Moodle and Quizgecko need an API key?\n\nMoodle takes an API key or an OAuth sign-in. Quizgecko needs an API key.\n\n### Can an agent call Moodle and Quizgecko without installing anything?\n\nYes. Moodle has a hosted endpoint at https://\u003csite\u003e/webservice/rest/server.php and Quizgecko at https://api.quizgecko.com/v2.\n\n### Are Moodle and Quizgecko open source?\n\nMoodle is open source (GPL-3.0-or-later). No open-source release is listed for Quizgecko.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/moodle-vs-quizgecko.json, and with the fewest tokens: https://www.anchorterminal.com/compare/moodle-vs-quizgecko.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"moodle\", \"b\": \"quizgecko\"}`. From a terminal: `anchor compare moodle quizgecko`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/moodle.json and https://www.anchorterminal.com/api/v1/tools/quizgecko.json\n\n## Other comparisons with Moodle or Quizgecko\n\n- [Instructure Canvas vs Quizgecko](https://www.anchorterminal.com/compare/canvas-lms-vs-quizgecko.md)\n- [Kahoot! vs Moodle](https://www.anchorterminal.com/compare/kahoot-vs-moodle.md)\n- [Kahoot! vs Quizgecko](https://www.anchorterminal.com/compare/kahoot-vs-quizgecko.md)\n- [Learnosity vs Moodle](https://www.anchorterminal.com/compare/learnosity-vs-moodle.md)\n- [Learnosity vs Quizgecko](https://www.anchorterminal.com/compare/learnosity-vs-quizgecko.md)\n- [Instructure Canvas vs Moodle](https://www.anchorterminal.com/compare/canvas-lms-vs-moodle.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Moodle vs Quizgecko",
        "url": ""
      }
    ],
    "description": "Moodle scores 67.7 (B) to Quizgecko's 33 (F) for learning quiz. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Moodle B 67.7",
      "Quizgecko F 33",
      "scores"
    ],
    "h1": "Moodle vs Quizgecko",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/moodle-vs-quizgecko",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Moodle vs Quizgecko for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko"
  },
  "tokens": {
    "markdown": 3500,
    "slim": 2130
  },
  "version": 1
}
