{
  "data": {
    "a": {
      "slug": "learnosity",
      "name": "Learnosity",
      "vendor": "Learnosity",
      "vendorUrl": "https://learnosity.com",
      "kind": "http-api",
      "category": "learning",
      "summary": "Learnosity is an assessment platform that education companies embed in their products. Its Data API imports item banks and reads learner sessions, responses and scores, with browser APIs for authoring and delivery and a hosted MCP server for its documentation.",
      "url": "https://www.anchorterminal.com/tools/learnosity",
      "markdownUrl": "https://www.anchorterminal.com/tools/learnosity.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/learnosity.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/learnosity.json",
      "dns": "learnosity.grade.anchorterminal.com",
      "repo": "https://github.com/Learnosity/learnosity-sdk-python",
      "license": "Proprietary service; SDKs Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.learnosity.com/build/aide",
      "packages": [
        {
          "registry": "pypi",
          "name": "learnosity_sdk"
        },
        {
          "registry": "npm",
          "name": "learnosity-sdk-nodejs"
        }
      ],
      "auth": "api-key",
      "authNotes": "A consumer key and consumer secret issued under a commercial agreement. Every Data API and browser API request is signed server-side with the SDK (consumer key, domain, timestamp and user in the signature, the secret never sent), so an agent needs the SDK or the signing routine in its own code. The Build Aide MCP server needs no key or account. The demos site uses Learnosity's public demos consumer key (https://github.com/Learnosity/learnosity-sdk-python).",
      "pricing": "paid",
      "pricingNotes": "No prices are published. Learnosity sells an annual SaaS licence priced by the number of users the customer sells access to, in Standard (up to 100,000 users), Scale (100,000 to 500,000) and Enterprise (more than 500,000) tiers, with add-ons for adaptive testing, premium analytics, single tenancy and extra regions, and Silver, Gold or Platinum support with 99.8 or 99.9 per cent SLA uptime. Quotes come from a sales conversation. The Build Aide MCP server is free (https://learnosity.com/company/licences/).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Data API docs, the licences page, the SDK repositories or the MCP articles (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://help.learnosity.com/hc/en-us/categories/16266193425053-Developer-Documentation",
      "capabilities": [
        "learning.quiz",
        "learning.progress",
        "learning.courses"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "paid",
        "sales-led",
        "mcp",
        "remote-mcp",
        "python",
        "typescript",
        "status-page",
        "sla",
        "iso-27001"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.2,
        "grade": "C",
        "agentReady": false,
        "rank": 581,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 85,
          "payments": 10,
          "reliability": 75,
          "schema": 67,
          "security": 54,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A commercial assessment platform whose Data API reads and writes item banks, learner sessions and scores through signed requests, with published per-endpoint rate limits, dated LTS versions and a free hosted MCP server for its documentation. Access needs an annual per-user contract with no public price, no public OpenAPI document was found, and the subprocessor list is unreadable to crawlers.",
        "bestFor": "A product team embedding assessment at scale, where an agent imports items, reads sessions and scores, or runs reports under an existing contract.",
        "strengths": [
          "Data API covers item banks, learner sessions, responses, scores, scoring jobs and reports, with import and export endpoints",
          "Rate limits published per endpoint in 5-second windows, a 429 with meta.code 42000 and a stated wait",
          "LTS versions every February, June and October with 24 months of support and dated end-of-life and sunset tables",
          "Hosted Build Aide MCP server with eight read-only documentation tools, no key, and published rate limits",
          "SDKs for Python, Node.js and PHP under Apache-2.0 with CI, the Node SDK released on 2 October 2026"
        ],
        "weaknesses": [
          "Access needs a commercial agreement; no price, trial or self-serve key is published",
          "No public OpenAPI document or llms.txt was found; the reference is help-centre articles behind a Cloudflare challenge for crawlers",
          "Every call must be signed with the consumer secret, so an agent needs the SDK or the signing routine, and no read-only key type was found",
          "No idempotency keys or Retry-After header documented; writes are limited to 50 per 5 seconds per endpoint",
          "The subprocessor list and DPA are disallowed by robots.txt, and the privacy policy gives no retention periods"
        ],
        "agentNotes": [
          "Sign every Data API request with the SDK's Init helper using the consumer key, domain and secret; the secret stays on the server and never goes in a request",
          "Keep writes under 50 per 5 seconds per endpoint and UPDATE /sessions/item to 1 per 5 seconds; on a 429 wait 5 seconds before retrying",
          "Pin production code to the current LTS (v2026.2.LTS) and read the migration guide before moving; developer builds change every two weeks",
          "Use https://mcp.learnosity.com/build/aide for documentation lookups only; it cannot call the Data API, and a -32000 error means a rate limit, so stop looping and wait",
          "Ask the owner for the consumer credentials and which LTS version their consumer is pinned to before building"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.2
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 85,
          "payments": 10,
          "reliability": 75,
          "schema": 67,
          "security": 54,
          "transparency": 55
        },
        "provenanceScore": 87,
        "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": {
        "install": "pip install learnosity_sdk",
        "claudeCode": "claude mcp add learnosity-build-aide --transport http https://mcp.learnosity.com/build/aide",
        "config": {
          "mcpServers": {
            "learnosity-build-aide": {
              "type": "http",
              "url": "https://mcp.learnosity.com/build/aide"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/learning.quiz",
        "tool": "https://letme.dev/learnosity"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "Learnosity Limited",
        "domain": "learnosity.com",
        "domainRegistered": "2007-07-13",
        "endpointOnVendorDomain": true,
        "terms": "https://learnosity.com/legal/terms-of-use/",
        "privacy": "https://learnosity.com/legal/privacy-policy/",
        "statusPage": "https://status.learnosity.com",
        "changelog": "https://help.learnosity.com/hc/en-us/articles/19629981258653-Developer-Release-Logs",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The website terms of use name Learnosity Limited and cover the website only, with no date. Platform terms sit in customer agreements and were not read. The privacy policy (last updated 26 May 2026) names Learnosity Limited with subsidiaries Learnosity Inc. and Learnosity Pty Ltd and the Questionmark affiliates.",
          "The Build Aide MCP server has its own terms of service, an article dated 30 October 2026, which call it as-available with no uptime or support commitment.",
          "learnosity.com/robots.txt disallows /subprocessors, /dpa, /partnerdpa, /data-protection-protocols/ and the Feedback Aide subprocessor pages, so none was read. help.learnosity.com's HTML answers a Cloudflare challenge; its JSON API (api/v2/help_center) is not disallowed and was used.",
          "RDAP at Verisign gives learnosity.com a registration date of 13 July 2007.",
          "status.learnosity.com is a Statuspage site; its robots.txt disallows /api/ and /embed/, so the history was read from /history.atom.",
          "No security.txt at learnosity.com (404). The security page names security@learnosity.com and authorises good-faith research."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/learnosity.json",
      "live": {
        "slug": "learnosity",
        "probe": {
          "target": "https://mcp.learnosity.com/build/aide",
          "method": "get",
          "lastAt": "2026-11-04T19:34:50.6954684Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 575,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 614,
          "p95ms24h": 680,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 43,
              "ok": 43
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.learnosity.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T19:31:42.454459832Z"
        },
        "securityTxt": {
          "url": "https://learnosity.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:27.652030504Z"
        },
        "updatedAt": "2026-11-04T19:34:50.6954684Z"
      }
    },
    "answer": "Moodle scores 67.7 (B) on agent readiness against Learnosity's 60.2 (C), and leads in 4 of 7 scored categories. Learnosity leads on agent ergonomics.",
    "b": {
      "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"
      }
    },
    "edges": [
      {
        "by": 50,
        "category": "payments",
        "leads": "moodle",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). No price published; tiers and support levels are described and a quote comes from sales (0). No free tier or trial for the platform; the demos site runs on a public demos consumer key and the MCP server is free, which is documentation rather than the product (5 of 20). A contract and credentials from Learnosity are needed; only the documentation MCP server is reachable without a person (5 of 20). 0 + 0 + 5 + 5 = 10.",
          "b": "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."
        },
        "scores": {
          "a": 10,
          "b": 60
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "moodle",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "A consumer key and secret per consumer, with every request signed server-side and the secret never sent; rotation and revocation are not described on public pages (22 of 30). Access is scoped per consumer and the MCP server is read-only, but no read-only Data API credential or confirmation for session deletion was found (8 of 20). The Data API returns learner responses, which are untrusted text, with no guidance (5 of 15). No per-call audit log for the operator found on public pages (3 of 15). ISO 27001 certificate, CSA STAR, a public HECVAT, EU-US DPF and a FedRAMP Moderate authorisation stated by the CTO, security@learnosity.com and a good-faith research authorisation; no security.txt or paid bounty (16 of 20). 22 + 8 + 5 + 3 + 16 = 54.",
          "b": "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."
        },
        "scores": {
          "a": 54,
          "b": 67
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "learnosity",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "REST endpoints grouped by category, dataset endpoints for bulk reads, and an MCP server with eight compact tools; field selection on Data API responses was not confirmed (18 of 25). Pagination on list endpoints was not read first-hand, so partial credit (8 of 20). Errors carry meta.status, meta.code and meta.message, with a troubleshooting article per code (14 of 20). No idempotency keys; the MCP tools are read-only and say so (6 of 20). SDKs in Python, Node.js, PHP and more handle signing, with few required fields beyond the signature (15). 18 + 8 + 14 + 6 + 15 = 61.",
          "b": "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 is small (20 of 25). Paging and filtering vary by function; course and user lookups take criteria and some take limits, read only in the catalogue (10 of 20). The REST protocol returns an exception, errorcode and message object on failure, and the 5.3 API returns OAuth2 access_denied with a hint naming the missing scope; the classic shape was not read first-hand on this pass (8 of 20). No idempotency keys; many functions are creates and updates (5 of 20). Required parameters vary by function; no official SDK, only sample clients and community libraries (6 of 15). 20 + 10 + 8 + 5 + 6 = 49."
        },
        "scores": {
          "a": 61,
          "b": 49
        }
      },
      {
        "by": 5,
        "category": "reliability",
        "leads": "moodle",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines on the Data API. Statuspage at status.learnosity.com with component history (20). From 1 August to 3 November 2026 the feed lists six entries, Enhanced Math scoring delays in US-East-1 on 11 September, 2 October and 20 October (the last touching the Data API scoring endpoint for about 4 hours 40 minutes), an LTS remapping issue on 8 October, a demos-site maintenance on 21 to 22 October and Item Pools degraded in all regions for about 2 hours 20 minutes on 26 October, so one incident of an hour or more on a core endpoint and the rest regional or partial (10). Rate limits published per endpoint in 5-second windows (15). A 429 with meta.code 42000 and a stated 5-second wait, but no Retry-After header and no idempotency keys for SET and UPDATE (10 of 15). SLA uptime of 99.8 or 99.9 per cent by support tier on the licences page (10). The APIs are generally available, with LTS versions (10). 20 + 10 + 15 + 10 + 10 + 10 = 75.",
          "b": "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."
        },
        "scores": {
          "a": 75,
          "b": 80
        }
      },
      {
        "by": 5,
        "category": "transparency",
        "leads": "moodle",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service; the website terms name Learnosity Limited and cover the website only, platform terms are in customer contracts, and the SDKs are Apache-2.0 (12 of 30). Privacy policy last updated 26 May 2026, a least-data principle on the product security policy, a DPA and data-protection protocols behind robots.txt disallows, and no retention periods (15 of 30). LTS lifecycle with dated deprecation, end-of-life and sunset for every version (20). AWS hosting in the US, EU and Australia with the customer choosing the region; the subprocessor list is disallowed to crawlers (8 of 20). 12 + 15 + 20 + 8 = 55.",
          "b": "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."
        },
        "scores": {
          "a": 71,
          "b": 76
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Learnosity",
        "b": "Moodle Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.learnosity.com/build/aide",
        "b": "https://\u003csite\u003e/webservice/rest/server.php",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service; SDKs Apache-2.0",
        "b": "GPL-3.0-or-later",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-28",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-26",
        "b": "2025-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Moodle scores 67.7 (B) on agent readiness against Learnosity's 60.2 (C), and leads in 4 of 7 scored categories. Learnosity leads on agent ergonomics.",
        "question": "Which is better for AI agents, Learnosity or Moodle?"
      },
      {
        "answer": "Learnosity needs an API key. Moodle takes an API key or an OAuth sign-in.",
        "question": "Do Learnosity and Moodle need an API key?"
      },
      {
        "answer": "Yes. Learnosity has a hosted endpoint at https://mcp.learnosity.com/build/aide and Moodle at https://\u003csite\u003e/webservice/rest/server.php.",
        "question": "Can an agent call Learnosity and Moodle without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Learnosity. Moodle is open source (GPL-3.0-or-later).",
        "question": "Are Learnosity and Moodle open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 61 against 49"
        ],
        "also": null,
        "goodFor": "A product team embedding assessment at scale, where an agent imports items, reads sessions and scores, or runs reports under an existing contract.",
        "slug": "learnosity",
        "watchFor": "Access needs a commercial agreement; no price, trial or self-serve key is published"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 75",
          "Security \u0026 auth, 67 against 54",
          "Payments \u0026 pricing, 60 against 10",
          "Transparency \u0026 trust, 76 against 71"
        ],
        "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"
      }
    ],
    "history": null,
    "job": {
      "capability": "learning.quiz",
      "name": "Learning quiz"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/canvas-lms-vs-learnosity.json",
        "title": "Instructure Canvas vs Learnosity",
        "url": "https://www.anchorterminal.com/compare/canvas-lms-vs-learnosity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kahoot-vs-learnosity.json",
        "title": "Kahoot! vs Learnosity",
        "url": "https://www.anchorterminal.com/compare/kahoot-vs-learnosity"
      },
      {
        "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/learnosity-vs-quizgecko.json",
        "title": "Learnosity vs Quizgecko",
        "url": "https://www.anchorterminal.com/compare/learnosity-vs-quizgecko"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moodle-vs-quizgecko.json",
        "title": "Moodle vs Quizgecko",
        "url": "https://www.anchorterminal.com/compare/moodle-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": 5,
        "edge": "moodle",
        "key": "reliability",
        "learnosity": 75,
        "moodle": 80,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "learnosity",
        "key": "schema",
        "learnosity": 67,
        "moodle": 66,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 12,
        "edge": "learnosity",
        "key": "ergonomics",
        "learnosity": 61,
        "moodle": 49,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 13,
        "edge": "moodle",
        "key": "security",
        "learnosity": 54,
        "moodle": 67,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 50,
        "edge": "moodle",
        "key": "payments",
        "learnosity": 10,
        "moodle": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "learnosity",
        "key": "maintenance",
        "learnosity": 85,
        "moodle": 81,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 5,
        "edge": "moodle",
        "key": "transparency",
        "learnosity": 71,
        "moodle": 76,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Moodle scores 67.7 (B) on agent readiness against Learnosity's 60.2 (C), and leads in 4 of 7 scored categories. Learnosity leads on agent ergonomics. Both do learning quiz.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "learnosity": "A commercial assessment platform whose Data API reads and writes item banks, learner sessions and scores through signed requests, with published per-endpoint rate limits, dated LTS versions and a free hosted MCP server for its documentation. Access needs an annual per-user contract with no public price, no public OpenAPI document was found, and the subprocessor list is unreadable to crawlers.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/learnosity-vs-moodle",
    "json": "https://www.anchorterminal.com/compare/learnosity-vs-moodle.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/learnosity-vs-moodle.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/learnosity-vs-moodle.min.md"
  },
  "markdown": "Moodle scores 67.7 (B) on agent readiness against Learnosity's 60.2 (C), and leads in 4 of 7 scored categories. Learnosity leads on agent ergonomics. Both do learning quiz.\n\n- Learnosity: grade C, 60.2/100, rank #581 of 1349. Markdown https://www.anchorterminal.com/tools/learnosity.md · JSON https://www.anchorterminal.com/api/v1/tools/learnosity.json\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- 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### Learnosity (C)\n\nGood for: A product team embedding assessment at scale, where an agent imports items, reads sessions and scores, or runs reports under an existing contract.\n\nAhead on:\n- Agent ergonomics, 61 against 49\n\nWatch for: Access needs a commercial agreement; no price, trial or self-serve key is published\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 75\n- Security \u0026 auth, 67 against 54\n- Payments \u0026 pricing, 60 against 10\n- Transparency \u0026 trust, 76 against 71\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\n## Why the edge\n\n### Payments \u0026 pricing: Moodle +50\n\n- Learnosity (10): No x402, MPP or L402 (0). No price published; tiers and support levels are described and a quote comes from sales (0). No free tier or trial for the platform; the demos site runs on a public demos consumer key and the MCP server is free, which is documentation rather than the product (5 of 20). A contract and credentials from Learnosity are needed; only the documentation MCP server is reachable without a person (5 of 20). 0 + 0 + 5 + 5 = 10.\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\n### Security \u0026 auth: Moodle +13\n\n- Learnosity (54): A consumer key and secret per consumer, with every request signed server-side and the secret never sent; rotation and revocation are not described on public pages (22 of 30). Access is scoped per consumer and the MCP server is read-only, but no read-only Data API credential or confirmation for session deletion was found (8 of 20). The Data API returns learner responses, which are untrusted text, with no guidance (5 of 15). No per-call audit log for the operator found on public pages (3 of 15). ISO 27001 certificate, CSA STAR, a public HECVAT, EU-US DPF and a FedRAMP Moderate authorisation stated by the CTO, security@learnosity.com and a good-faith research authorisation; no security.txt or paid bounty (16 of 20). 22 + 8 + 5 + 3 + 16 = 54.\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\n### Agent ergonomics: Learnosity +12\n\n- Learnosity (61): REST endpoints grouped by category, dataset endpoints for bulk reads, and an MCP server with eight compact tools; field selection on Data API responses was not confirmed (18 of 25). Pagination on list endpoints was not read first-hand, so partial credit (8 of 20). Errors carry meta.status, meta.code and meta.message, with a troubleshooting article per code (14 of 20). No idempotency keys; the MCP tools are read-only and say so (6 of 20). SDKs in Python, Node.js, PHP and more handle signing, with few required fields beyond the signature (15). 18 + 8 + 14 + 6 + 15 = 61.\n- Moodle (49): 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 is small (20 of 25). Paging and filtering vary by function; course and user lookups take criteria and some take limits, read only in the catalogue (10 of 20). The REST protocol returns an exception, errorcode and message object on failure, and the 5.3 API returns OAuth2 access_denied with a hint naming the missing scope; the classic shape was not read first-hand on this pass (8 of 20). No idempotency keys; many functions are creates and updates (5 of 20). Required parameters vary by function; no official SDK, only sample clients and community libraries (6 of 15). 20 + 10 + 8 + 5 + 6 = 49.\n\n### Reliability: Moodle +5\n\n- Learnosity (75): Read with the hosted lines on the Data API. Statuspage at status.learnosity.com with component history (20). From 1 August to 3 November 2026 the feed lists six entries, Enhanced Math scoring delays in US-East-1 on 11 September, 2 October and 20 October (the last touching the Data API scoring endpoint for about 4 hours 40 minutes), an LTS remapping issue on 8 October, a demos-site maintenance on 21 to 22 October and Item Pools degraded in all regions for about 2 hours 20 minutes on 26 October, so one incident of an hour or more on a core endpoint and the rest regional or partial (10). Rate limits published per endpoint in 5-second windows (15). A 429 with meta.code 42000 and a stated 5-second wait, but no Retry-After header and no idempotency keys for SET and UPDATE (10 of 15). SLA uptime of 99.8 or 99.9 per cent by support tier on the licences page (10). The APIs are generally available, with LTS versions (10). 20 + 10 + 15 + 10 + 10 + 10 = 75.\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\n### Transparency \u0026 trust: Moodle +5\n\n- Learnosity (71): Closed service; the website terms name Learnosity Limited and cover the website only, platform terms are in customer contracts, and the SDKs are Apache-2.0 (12 of 30). Privacy policy last updated 26 May 2026, a least-data principle on the product security policy, a DPA and data-protection protocols behind robots.txt disallows, and no retention periods (15 of 30). LTS lifecycle with dated deprecation, end-of-life and sunset for every version (20). AWS hosting in the US, EU and Australia with the customer choosing the region; the subprocessor list is disallowed to crawlers (8 of 20). 12 + 15 + 20 + 8 = 55.\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\n## Score by category\n\n| Category | Weight | Learnosity | Moodle | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 80 | Moodle +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 67 | 66 | Learnosity +1 |\n| Agent ergonomics | 13% (16.2 this run) | 61 | 49 | Learnosity +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 67 | Moodle +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 60 | Moodle +50 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 81 | Learnosity +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 76 | Moodle +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.2 · C** | **67.7 · B** | |\n\n## Facts side by side\n\n| Fact | Learnosity | Moodle |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Learnosity | Moodle Pty Ltd |\n| Hosted endpoint | `https://mcp.learnosity.com/build/aide` | `https://\u003csite\u003e/webservice/rest/server.php` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Free |\n| x402 | no | no |\n| Licence | Proprietary service; SDKs Apache-2.0 | GPL-3.0-or-later |\n| Tools exposed | 8 | 0 |\n| Read-only variant documented | yes | no |\n| llms.txt | no | no |\n| Last release | 2026-10-28 | 2026-10-05 |\n| Terms last updated | no date given | no document linked |\n| Privacy policy last updated | 2026-05-26 | 2025-10-01 |\n| Customer content may train models | not found in the text | not read yet |\n| Terms restrict automated access | not found in the text | not read yet |\n| Terms restrict benchmarking | not found in the text | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n\n## Verdicts\n\n**Learnosity.** A commercial assessment platform whose Data API reads and writes item banks, learner sessions and scores through signed requests, with published per-endpoint rate limits, dated LTS versions and a free hosted MCP server for its documentation. Access needs an annual per-user contract with no public price, no public OpenAPI document was found, and the subprocessor list is unreadable to crawlers.\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## Before you call either\n\n### Learnosity\n\n1. Sign every Data API request with the SDK's Init helper using the consumer key, domain and secret; the secret stays on the server and never goes in a request\n2. Keep writes under 50 per 5 seconds per endpoint and UPDATE /sessions/item to 1 per 5 seconds; on a 429 wait 5 seconds before retrying\n3. Pin production code to the current LTS (v2026.2.LTS) and read the migration guide before moving; developer builds change every two weeks\n4. Use https://mcp.learnosity.com/build/aide for documentation lookups only; it cannot call the Data API, and a -32000 error means a rate limit, so stop looping and wait\n5. Ask the owner for the consumer credentials and which LTS version their consumer is pinned to before building\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## Questions\n\n### Which is better for AI agents, Learnosity or Moodle?\n\nMoodle scores 67.7 (B) on agent readiness against Learnosity's 60.2 (C), and leads in 4 of 7 scored categories. Learnosity leads on agent ergonomics.\n\n### Do Learnosity and Moodle need an API key?\n\nLearnosity needs an API key. Moodle takes an API key or an OAuth sign-in.\n\n### Can an agent call Learnosity and Moodle without installing anything?\n\nYes. Learnosity has a hosted endpoint at https://mcp.learnosity.com/build/aide and Moodle at https://\u003csite\u003e/webservice/rest/server.php.\n\n### Are Learnosity and Moodle open source?\n\nNo open-source release is listed for Learnosity. Moodle is open source (GPL-3.0-or-later).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/learnosity-vs-moodle.json, and with the fewest tokens: https://www.anchorterminal.com/compare/learnosity-vs-moodle.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"learnosity\", \"b\": \"moodle\"}`. From a terminal: `anchor compare learnosity moodle`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/learnosity.json and https://www.anchorterminal.com/api/v1/tools/moodle.json\n\n## Other comparisons with Learnosity or Moodle\n\n- [Instructure Canvas vs Learnosity](https://www.anchorterminal.com/compare/canvas-lms-vs-learnosity.md)\n- [Kahoot! vs Learnosity](https://www.anchorterminal.com/compare/kahoot-vs-learnosity.md)\n- [Kahoot! vs Moodle](https://www.anchorterminal.com/compare/kahoot-vs-moodle.md)\n- [Learnosity vs Quizgecko](https://www.anchorterminal.com/compare/learnosity-vs-quizgecko.md)\n- [Moodle vs Quizgecko](https://www.anchorterminal.com/compare/moodle-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": "Learnosity vs Moodle",
        "url": ""
      }
    ],
    "description": "Moodle scores 67.7 (B) to Learnosity's 60.2 (C) for learning quiz. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Learnosity C 60.2",
      "Moodle B 67.7",
      "scores"
    ],
    "h1": "Learnosity vs Moodle",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/learnosity-vs-moodle",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Learnosity vs Moodle for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/learnosity-vs-moodle"
  },
  "tokens": {
    "markdown": 3900,
    "slim": 2480
  },
  "version": 1
}
