{
  "data": {
    "a": {
      "slug": "ravelry",
      "name": "Ravelry",
      "vendor": "Ravelry, LLC",
      "vendorUrl": "https://www.ravelry.com",
      "kind": "http-api",
      "category": "hobbies",
      "summary": "Ravelry is a free community site for knitters, crocheters and fibre artists, with a pattern and yarn database and a personal notebook of projects and stash. Third-party apps connect through an API whose documentation sits behind a login.",
      "url": "https://www.anchorterminal.com/tools/ravelry",
      "markdownUrl": "https://www.anchorterminal.com/tools/ravelry.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ravelry.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ravelry.json",
      "dns": "ravelry.grade.anchorterminal.com",
      "license": "Proprietary service. Terms of use updated 1 February 2017, privacy policy updated 23 February 2026",
      "transports": [],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Developer access starts at ravelry.com/pro/developer, which redirects to the login page, as do the API documentation at /api, the API help page at /help/api and the Ravelry API group. The apps directory shows two modes, apps that work without a Ravelry account for public data and apps that have the person log in with their Ravelry account for their own notebook. The credential model itself (keys, OAuth, scopes) could not be read without an account.",
      "pricing": "free",
      "pricingNotes": "Ravelry describes itself as a free website and lists no price for the site or the API on any public page. Whether a developer key costs anything is behind the login.",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on any public Ravelry page read on 3 November 2026 (about, apps, terms, privacy, status page). The API documentation is behind a login and was not read.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.ravelry.com/api",
      "capabilities": [
        "hobbies.crafts",
        "hobbies.collections"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "status-page",
        "free",
        "no-card"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 16.5,
        "grade": "F",
        "agentReady": false,
        "rank": 1311,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 0,
          "maintenance": 5,
          "payments": 20,
          "reliability": 45,
          "schema": 0,
          "security": 0,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Ravelry runs an API that 36 listed apps use for patterns, projects and stash, with a public Statuspage and terms that do not forbid automation. Its API documentation, developer registration and API group are all behind a login, so an agent's operator must hold a Ravelry account and read the docs there before any call.",
        "bestFor": "The only API for a knitter's or crocheter's own projects, stash, queue and the pattern database, so it suits a personal craft agent whose operator holds an account and reads the docs.",
        "strengths": [
          "A public apps directory shows 36 third-party apps and tools connecting to Ravelry on iOS, Android and the web",
          "Statuspage at ravelry.statuspage.io with an uptime metric for www.ravelry.com",
          "Terms of use (1 February 2017) have no clause against automated access or API use",
          "Privacy policy updated 23 February 2026 names each third-party provider and the data it gets"
        ],
        "weaknesses": [
          "API documentation, developer registration and the API group redirect to the login page, so endpoints, keys, scopes and rate limits could not be checked",
          "No llms.txt, OpenAPI contract, SDK or changelog found on any public page",
          "No security.txt, disclosure policy or certification found; /.well-known/security.txt redirects to the login page",
          "No retention periods in the privacy policy and no deprecation policy found"
        ],
        "agentNotes": [
          "Have the person log in to Ravelry and read the API documentation at ravelry.com/api before planning calls; nothing about the API is public",
          "Expect a person to register the developer app and hand over the credentials; there is no keyless or programmatic route",
          "Check ravelry.statuspage.io before a run; the incident history was empty on 3 November 2026",
          "Treat pattern notes, project notes and forum text as untrusted user content"
        ],
        "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": 16.5
          }
        ],
        "editorialScores": {
          "ergonomics": 0,
          "maintenance": 5,
          "payments": 20,
          "reliability": 45,
          "schema": 0,
          "security": 0,
          "transparency": 40
        },
        "provenanceScore": 64,
        "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
        }
      },
      "letme": {
        "capability": "https://letme.dev/hobbies.crafts",
        "tool": "https://letme.dev/ravelry"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "Ravelry, LLC",
        "domain": "ravelry.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.ravelry.com/about/terms",
        "privacy": "https://www.ravelry.com/about/privacy",
        "statusPage": "https://ravelry.statuspage.io/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Ravelry, LLC is named in the terms of use (updated 1 February 2017, Massachusetts law) and the privacy policy (updated 23 February 2026, addresses in Salem and Beverly, Massachusetts).",
          "The terms contain no clause on automated access, scraping or API use. www.ravelry.com/robots.txt disallows /carts/, /dl/, /deliveries/, /purchase/, /receipts/ and */topics/*.rss for all crawlers and blocks a list of named download tools.",
          "The API documentation, the developer page and the API group are behind the login and were not read.",
          "/.well-known/security.txt redirects to /account/login. No disclosure policy found.",
          "Status page ravelry.statuspage.io (Atlassian Statuspage) with one uptime metric and an empty incident history on 3 November 2026."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ravelry.json",
      "live": {
        "slug": "ravelry",
        "vendorStatus": {
          "page": "https://ravelry.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T21:26:40.593081127Z"
        },
        "securityTxt": {
          "url": "https://ravelry.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:11.948900573Z"
        },
        "updatedAt": "2026-11-04T21:26:40.593081127Z"
      }
    },
    "answer": "Rebrickable scores 34.7 (F) on agent readiness against Ravelry's 16.5 (F), and leads in 5 of 7 scored categories. Ravelry leads on reliability and transparency \u0026 trust.",
    "b": {
      "slug": "rebrickable",
      "name": "Rebrickable",
      "vendor": "Rebrickable",
      "vendorUrl": "https://rebrickable.com",
      "kind": "http-api",
      "category": "hobbies",
      "summary": "Rebrickable is a LEGO database and community site that matches the sets and parts a person owns to builds they can make, including fan designs (MOCs). Its REST API v3 reads the catalogue and a user's sets, parts and lists.",
      "url": "https://www.anchorterminal.com/tools/rebrickable",
      "markdownUrl": "https://www.anchorterminal.com/tools/rebrickable.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rebrickable.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rebrickable.json",
      "dns": "rebrickable.grade.anchorterminal.com",
      "license": "Proprietary service. The terms of service page answered a Cloudflare bot check on 3 November 2026 and was not read",
      "transports": [],
      "packages": [],
      "auth": "api-key",
      "authNotes": "An API key generated in a registered account's profile settings, sent as `Authorization: key \u003ckey\u003e` or as a `key` query or form parameter. Calls to a person's own sets, parts and lists take a user token minted by `POST /api/v3/users/_token/` from the account's username or email and password as form data, then used as a path parameter. No scopes, expiry or revocation documented.",
      "pricing": "freemium",
      "pricingNotes": "An API key comes with a free registered account per the API page. A Pro Plan exists (the API docs show an error saying a feature needs it), but the Pro page and the terms answered a bot check, so its price and whether it gates any API feature are unread.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the API page, the API docs or the Swagger spec (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://rebrickable.com/api/v3/docs/",
      "openapi": "https://rebrickable.com/api/v3/swagger/?format=openapi",
      "capabilities": [
        "hobbies.collections",
        "hobbies.crafts"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "freemium",
        "free-tier",
        "no-card",
        "openapi",
        "no-status-page"
      ],
      "lastRelease": "2025-07-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 34.7,
        "grade": "F",
        "agentReady": false,
        "rank": 1253,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 6,
          "payments": 30,
          "reliability": 38,
          "schema": 54,
          "security": 10,
          "transparency": 29
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Rebrickable's API v3 reads the LEGO catalogue and a person's sets, parts and lists through a public Swagger 2.0 spec with 62 operations and a free key. Calls are limited to about one a second, the docs call the API severely overloaded, user tokens come from a password, and the terms and Pro price were behind a bot check.",
        "bestFor": "An agent that answers what a person can build from the sets and parts they own, or looks up a set's inventory, with a key the person minted.",
        "strengths": [
          "Public Swagger 2.0 spec with 43 paths and 62 operations covering sets, parts, colours, elements, minifigs, themes and a user's sets, parts, set lists, part lists and lost parts",
          "Rate limit stated in numbers (one request a second on average) with 429 responses, and page_size up to 1,000 with inc_part_details and inc_color_details flags to size responses",
          "A free API key with a registered account, and CSV downloads of the whole catalogue for bulk use",
          "Dated changelog back to 9 February 2017 that records removed fields and defaults"
        ],
        "weaknesses": [
          "The API docs say the API is severely overloaded and new apps might be prevented",
          "User tokens are minted by posting the account's username and password, and the key can travel as a query parameter",
          "The spec documents no 4xx or 5xx response, no enums and no security scheme, and several summaries are cut off",
          "Terms of service, privacy policy, Pro plan and downloads pages answered a bot check, so the terms on API use, retention and the Pro price are unread",
          "No status page, SLA, security.txt or official SDK found, and the newest API change is dated 23 July 2025"
        ],
        "agentNotes": [
          "Send `Authorization: key \u003ckey\u003e` and keep calls under one a second; a 429 ignored can bring a temporary or permanent IP ban",
          "Use the CSV downloads for the whole catalogue; the docs say list endpoints are not for paging through all parts or sets",
          "Ask the person to mint the user token themselves at /api/v3/users/_token/ rather than handling their password; the token reaches every write on their lists",
          "Set `inc_color_details=0` and `inc_part_details` only when needed to keep part lists small, and page with `page_size` up to 1,000",
          "Read rebrickable.com/terms/ with the person before commercial use; it answered a bot check for us and the API docs point to it for allowed uses"
        ],
        "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": 34.7
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 6,
          "payments": 30,
          "reliability": 38,
          "schema": 54,
          "security": 10,
          "transparency": 13
        },
        "provenanceScore": 44,
        "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: key $REBRICKABLE_KEY\" \"https://rebrickable.com/api/v3/lego/sets/?search=millennium+falcon\u0026page_size=10\""
      },
      "letme": {
        "capability": "https://letme.dev/hobbies.collections",
        "tool": "https://letme.dev/rebrickable"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "",
        "domain": "rebrickable.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://rebrickable.com/terms/",
        "privacy": "https://rebrickable.com/privacy/",
        "statusPage": "",
        "changelog": "https://rebrickable.com/api/v3/docs/",
        "securityTxt": "unknown",
        "checked": "2026-11-03",
        "notes": [
          "The terms and privacy pages are linked from the API page but answered a Cloudflare bot check (HTTP 403, Just a moment) on 3 November 2026 and were not read, so the legal entity and any clause on automated access are unknown.",
          "rebrickable.com/robots.txt carries Content-Signal ai-train=no, search=yes, ai-input=yes for all agents, Crawl-delay 3, and disallows /api/v3/lego/* and /api/v3/users/* among many paths; the API page, docs and spec are not disallowed and were read. Named bots such as CCBot, Amazonbot and AhrefsBot are blocked outright.",
          "/.well-known/security.txt answered the same bot check, so its presence is unknown.",
          "No status page found on the API page or docs.",
          "The changelog is the dated list on the API docs page; its newest entry is 23 July 2025."
        ],
        "score": 44
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rebrickable.json",
      "live": {
        "slug": "rebrickable",
        "securityTxt": {
          "url": "https://rebrickable.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:52:47.402844509Z"
        },
        "updatedAt": "2026-11-04T15:52:47.402844509Z"
      }
    },
    "edges": [
      {
        "by": 60,
        "category": "ergonomics",
        "leads": "rebrickable",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Graded on what is public. With the documentation behind the login, the context cost, pagination, error, retry and SDK lines cannot be read (0). The apps directory shows apps working with and without a Ravelry account, which suggests a public read mode, but the parameters are not public.",
          "b": "Responses can be sized with page_size, inc_part_details and inc_color_details, though there is no field selection (18 of 25). Pagination by page and page_size up to 1,000, ordering with a minus prefix, and filters such as part_nums, search and theme_id (18 of 20). Only the 429 case is documented, with no error body shape or codes (6 of 20). Reads are safe to retry; the POST, PUT, PATCH and DELETE operations on a user's sets and lists have no idempotency key (10 of 20). One header and few required parameters, but no official SDK in any language (8 of 15). Total 60."
        },
        "scores": {
          "a": 0,
          "b": 60
        }
      },
      {
        "by": 54,
        "category": "schema",
        "leads": "rebrickable",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Graded on what an outside agent can read. The API documentation at ravelry.com/api, the API help page and the API group all redirect to the login page, so no contract, llms.txt, endpoint description, typed input, example, error response or changelog was read (0 on every line). This says nothing about the documentation behind the login, which the operator can read with an account.",
          "b": "Public Swagger 2.0 spec at /api/v3/swagger/?format=openapi with 43 paths and 62 operations, but empty title and version, no security definitions and no response schemas beyond the codes (20 of 25). No llms.txt or Markdown docs (0). Every operation has a summary and description, several cut off mid-sentence, and none says when not to use it (10 of 20). Typed path, query and form parameters, no enums, and theme_id and part_cat_id typed as string on one path and number on another (8 of 15). No request examples in the spec, and only 200, 201 and 204 documented, no 4xx or 5xx; the docs page documents 429 (4 of 15). v3 in the path and a dated changelog back to 2017, with no stated versioning policy (12 of 15). Total 54."
        },
        "scores": {
          "a": 0,
          "b": 54
        }
      },
      {
        "by": 23,
        "category": "transparency",
        "leads": "ravelry",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with clear terms naming Ravelry, LLC under Massachusetts law, last updated 1 February 2017 (15 of 30). The privacy policy of 23 February 2026 names each provider with the data it gets (AWS, SendGrid, Mailgun, New Relic, BugSnag, Google Maps, reCAPTCHA) and lets a person delete the account, but states no retention periods and no DPA (15 of 30). No deprecation policy or dated notices found (0 of 20). Third parties are named with data types, and AWS is named as the store, with no region (10 of 20). Total 40.",
          "b": "Closed service whose terms answered a Cloudflare bot check on 3 November 2026, so their clarity is unchecked (5 of 30). The privacy policy answered the same check, so no data handling statement was read (0 of 30, unchecked). The changelog records removals with dates, MOC support on 19 April 2020 and print_of on 23 July 2025, with no written notice period (8 of 20). Subprocessors and data locations were not read (0 of 20, unchecked). Total 13."
        },
        "scores": {
          "a": 52,
          "b": 29
        }
      },
      {
        "by": 10,
        "category": "security",
        "leads": "rebrickable",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The credential model is behind the login, so the credential, least-privilege and audit lines score nothing (0 of 30, 0 of 20, 0 of 15). Pattern notes, project notes and forum text are user content, and no prompt-injection guidance was found (0 of 15). /.well-known/security.txt redirects to the login page, and no disclosure policy, bug bounty or certification was found (0 of 20). Total 0.",
          "b": "One key per account with no scopes, no documented expiry or revocation, and it may be sent as a query parameter, so 10 less 10 (0 of 30). A user token minted from the account's username and password reaches every write on that person's lists, with no read-only mode (0 of 20). The catalogue is curated data, though MOC names and user list names are user content, with no guidance (10 of 15). No audit log or per-call visibility found (0 of 15). security.txt answered the bot check and no disclosure policy, bug bounty or certification was found (0 of 20). Total 10."
        },
        "scores": {
          "a": 0,
          "b": 10
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "rebrickable",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the hosted rule. No x402, MPP or L402 on any public page (0). Ravelry calls itself a free website, but no page outside the login states whether a developer key costs anything, so the pricing line is part met (10 of 20). An account is free, and no card is asked for on the invitation page; whether the developer key needs a Pro account couldn't be read (10 of 20). A person must register in a browser and read the docs there (0). Total 20.",
          "b": "Read with the hosted rule. No x402, MPP or L402 (0). The API page says a key comes with a registered account and no API price is stated; the Pro Plan's price is behind the bot check, so no full price list is public (10 of 20). A free account gives a key with no card (20). A person must register and generate the key in the profile settings in a browser (0). Total 30."
        },
        "scores": {
          "a": 20,
          "b": 30
        }
      },
      {
        "by": 7,
        "category": "reliability",
        "leads": "ravelry",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines. Statuspage at ravelry.statuspage.io with one uptime metric for www.ravelry.com and no components, so the line is part met (15 of 20). The incident history page is empty and the status page shows no incident from 20 October to 3 November 2026. A page that has logged nothing says little, so a clean window counts 20 of 30, as it did for Resy. Rate limits, 429 handling and retry guidance sit in the API documentation behind the login, so none is public (0, 0). No SLA found (0). The API is not labelled beta and 36 listed apps run on it (10). Total 45.",
          "b": "Read with the hosted lines. No status page found on the API page or docs (0). No readable incident history (5). Rate limit stated in numbers, one request a second on average with a small burst allowance (15). 429 responses are documented, with a warning that ignoring them brings a temporary IP ban of one to two days or a permanent one, but no Retry-After, backoff guidance or idempotency keys for the writes on user lists (8 of 15). No SLA (0). The API is v3 and not marked beta, though the docs say it is severely overloaded and new apps might be prevented (10). Total 38."
        },
        "scores": {
          "a": 45,
          "b": 38
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Ravelry, LLC",
        "b": "Rebrickable",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service. Terms of use updated 1 February 2017, privacy policy updated 23 February 2026",
        "b": "Proprietary service. The terms of service page answered a Cloudflare bot check on 3 November 2026 and was not read",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2025-07-23",
        "name": "Last release"
      },
      {
        "a": "2017-02-01",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2026-02-23",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Rebrickable scores 34.7 (F) on agent readiness against Ravelry's 16.5 (F), and leads in 5 of 7 scored categories. Ravelry leads on reliability and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Ravelry or Rebrickable?"
      },
      {
        "answer": "Ravelry takes an API key or an OAuth sign-in. Rebrickable needs an API key.",
        "question": "Do Ravelry and Rebrickable need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Ravelry. No hosted endpoint is listed for Rebrickable.",
        "question": "Can an agent call Ravelry and Rebrickable without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 45 against 38",
          "Transparency \u0026 trust, 52 against 29"
        ],
        "also": null,
        "goodFor": "The only API for a knitter's or crocheter's own projects, stash, queue and the pattern database, so it suits a personal craft agent whose operator holds an account and reads the docs.",
        "slug": "ravelry",
        "watchFor": "API documentation, developer registration and the API group redirect to the login page, so endpoints, keys, scopes and rate limits could not be checked"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 54 against 0",
          "Agent ergonomics, 60 against 0",
          "Security \u0026 auth, 10 against 0",
          "Payments \u0026 pricing, 30 against 20"
        ],
        "also": null,
        "goodFor": "An agent that answers what a person can build from the sets and parts they own, or looks up a set's inventory, with a key the person minted.",
        "slug": "rebrickable",
        "watchFor": "The API docs say the API is severely overloaded and new apps might be prevented"
      }
    ],
    "history": null,
    "job": {
      "capability": "hobbies.crafts",
      "name": "Hobbies crafts"
    },
    "others": null,
    "panel": null,
    "scores": [
      {
        "by": 7,
        "edge": "ravelry",
        "key": "reliability",
        "name": "Reliability",
        "ravelry": 45,
        "rebrickable": 38,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 54,
        "edge": "rebrickable",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "ravelry": 0,
        "rebrickable": 54,
        "weight": 13
      },
      {
        "by": 60,
        "edge": "rebrickable",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "ravelry": 0,
        "rebrickable": 60,
        "weight": 13
      },
      {
        "by": 10,
        "edge": "rebrickable",
        "key": "security",
        "name": "Security \u0026 auth",
        "ravelry": 0,
        "rebrickable": 10,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "rebrickable",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "ravelry": 20,
        "rebrickable": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "rebrickable",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "ravelry": 5,
        "rebrickable": 6,
        "weight": 7
      },
      {
        "by": 23,
        "edge": "ravelry",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "ravelry": 52,
        "rebrickable": 29,
        "weight": 7
      }
    ],
    "summary": "Rebrickable scores 34.7 (F) on agent readiness against Ravelry's 16.5 (F), and leads in 5 of 7 scored categories. Ravelry leads on reliability and transparency \u0026 trust. Both do hobbies crafts.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "ravelry": "Ravelry runs an API that 36 listed apps use for patterns, projects and stash, with a public Statuspage and terms that do not forbid automation. Its API documentation, developer registration and API group are all behind a login, so an agent's operator must hold a Ravelry account and read the docs there before any call.",
      "rebrickable": "Rebrickable's API v3 reads the LEGO catalogue and a person's sets, parts and lists through a public Swagger 2.0 spec with 62 operations and a free key. Calls are limited to about one a second, the docs call the API severely overloaded, user tokens come from a password, and the terms and Pro price were behind a bot check."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/ravelry-vs-rebrickable",
    "json": "https://www.anchorterminal.com/compare/ravelry-vs-rebrickable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/ravelry-vs-rebrickable.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/ravelry-vs-rebrickable.min.md"
  },
  "markdown": "Rebrickable scores 34.7 (F) on agent readiness against Ravelry's 16.5 (F), and leads in 5 of 7 scored categories. Ravelry leads on reliability and transparency \u0026 trust. Both do hobbies crafts.\n\n- Ravelry: grade F, 16.5/100, rank #1311 of 1349. Markdown https://www.anchorterminal.com/tools/ravelry.md · JSON https://www.anchorterminal.com/api/v1/tools/ravelry.json\n- Rebrickable: grade F, 34.7/100, rank #1253 of 1349. Markdown https://www.anchorterminal.com/tools/rebrickable.md · JSON https://www.anchorterminal.com/api/v1/tools/rebrickable.json\n- Best hobby, sport and recreation APIs for AI agents: https://www.anchorterminal.com/best/hobbies/index.md\n- All 3 hobbies comparisons: https://www.anchorterminal.com/compare/hobbies/index.md\n\n## Which one, for what\n\n### Ravelry (F)\n\nGood for: The only API for a knitter's or crocheter's own projects, stash, queue and the pattern database, so it suits a personal craft agent whose operator holds an account and reads the docs.\n\nAhead on:\n- Reliability, 45 against 38\n- Transparency \u0026 trust, 52 against 29\n\nWatch for: API documentation, developer registration and the API group redirect to the login page, so endpoints, keys, scopes and rate limits could not be checked\n\n### Rebrickable (F)\n\nGood for: An agent that answers what a person can build from the sets and parts they own, or looks up a set's inventory, with a key the person minted.\n\nAhead on:\n- Schema \u0026 documentation, 54 against 0\n- Agent ergonomics, 60 against 0\n- Security \u0026 auth, 10 against 0\n- Payments \u0026 pricing, 30 against 20\n\nWatch for: The API docs say the API is severely overloaded and new apps might be prevented\n\n\n## Why the edge\n\n### Agent ergonomics: Rebrickable +60\n\n- Ravelry (0): Graded on what is public. With the documentation behind the login, the context cost, pagination, error, retry and SDK lines cannot be read (0). The apps directory shows apps working with and without a Ravelry account, which suggests a public read mode, but the parameters are not public.\n- Rebrickable (60): Responses can be sized with page_size, inc_part_details and inc_color_details, though there is no field selection (18 of 25). Pagination by page and page_size up to 1,000, ordering with a minus prefix, and filters such as part_nums, search and theme_id (18 of 20). Only the 429 case is documented, with no error body shape or codes (6 of 20). Reads are safe to retry; the POST, PUT, PATCH and DELETE operations on a user's sets and lists have no idempotency key (10 of 20). One header and few required parameters, but no official SDK in any language (8 of 15). Total 60.\n\n### Schema \u0026 documentation: Rebrickable +54\n\n- Ravelry (0): Graded on what an outside agent can read. The API documentation at ravelry.com/api, the API help page and the API group all redirect to the login page, so no contract, llms.txt, endpoint description, typed input, example, error response or changelog was read (0 on every line). This says nothing about the documentation behind the login, which the operator can read with an account.\n- Rebrickable (54): Public Swagger 2.0 spec at /api/v3/swagger/?format=openapi with 43 paths and 62 operations, but empty title and version, no security definitions and no response schemas beyond the codes (20 of 25). No llms.txt or Markdown docs (0). Every operation has a summary and description, several cut off mid-sentence, and none says when not to use it (10 of 20). Typed path, query and form parameters, no enums, and theme_id and part_cat_id typed as string on one path and number on another (8 of 15). No request examples in the spec, and only 200, 201 and 204 documented, no 4xx or 5xx; the docs page documents 429 (4 of 15). v3 in the path and a dated changelog back to 2017, with no stated versioning policy (12 of 15). Total 54.\n\n### Transparency \u0026 trust: Ravelry +23\n\n- Ravelry (52): Closed service with clear terms naming Ravelry, LLC under Massachusetts law, last updated 1 February 2017 (15 of 30). The privacy policy of 23 February 2026 names each provider with the data it gets (AWS, SendGrid, Mailgun, New Relic, BugSnag, Google Maps, reCAPTCHA) and lets a person delete the account, but states no retention periods and no DPA (15 of 30). No deprecation policy or dated notices found (0 of 20). Third parties are named with data types, and AWS is named as the store, with no region (10 of 20). Total 40.\n- Rebrickable (29): Closed service whose terms answered a Cloudflare bot check on 3 November 2026, so their clarity is unchecked (5 of 30). The privacy policy answered the same check, so no data handling statement was read (0 of 30, unchecked). The changelog records removals with dates, MOC support on 19 April 2020 and print_of on 23 July 2025, with no written notice period (8 of 20). Subprocessors and data locations were not read (0 of 20, unchecked). Total 13.\n\n### Security \u0026 auth: Rebrickable +10\n\n- Ravelry (0): The credential model is behind the login, so the credential, least-privilege and audit lines score nothing (0 of 30, 0 of 20, 0 of 15). Pattern notes, project notes and forum text are user content, and no prompt-injection guidance was found (0 of 15). /.well-known/security.txt redirects to the login page, and no disclosure policy, bug bounty or certification was found (0 of 20). Total 0.\n- Rebrickable (10): One key per account with no scopes, no documented expiry or revocation, and it may be sent as a query parameter, so 10 less 10 (0 of 30). A user token minted from the account's username and password reaches every write on that person's lists, with no read-only mode (0 of 20). The catalogue is curated data, though MOC names and user list names are user content, with no guidance (10 of 15). No audit log or per-call visibility found (0 of 15). security.txt answered the bot check and no disclosure policy, bug bounty or certification was found (0 of 20). Total 10.\n\n### Payments \u0026 pricing: Rebrickable +10\n\n- Ravelry (20): Read with the hosted rule. No x402, MPP or L402 on any public page (0). Ravelry calls itself a free website, but no page outside the login states whether a developer key costs anything, so the pricing line is part met (10 of 20). An account is free, and no card is asked for on the invitation page; whether the developer key needs a Pro account couldn't be read (10 of 20). A person must register in a browser and read the docs there (0). Total 20.\n- Rebrickable (30): Read with the hosted rule. No x402, MPP or L402 (0). The API page says a key comes with a registered account and no API price is stated; the Pro Plan's price is behind the bot check, so no full price list is public (10 of 20). A free account gives a key with no card (20). A person must register and generate the key in the profile settings in a browser (0). Total 30.\n\n### Reliability: Ravelry +7\n\n- Ravelry (45): Read with the hosted lines. Statuspage at ravelry.statuspage.io with one uptime metric for www.ravelry.com and no components, so the line is part met (15 of 20). The incident history page is empty and the status page shows no incident from 20 October to 3 November 2026. A page that has logged nothing says little, so a clean window counts 20 of 30, as it did for Resy. Rate limits, 429 handling and retry guidance sit in the API documentation behind the login, so none is public (0, 0). No SLA found (0). The API is not labelled beta and 36 listed apps run on it (10). Total 45.\n- Rebrickable (38): Read with the hosted lines. No status page found on the API page or docs (0). No readable incident history (5). Rate limit stated in numbers, one request a second on average with a small burst allowance (15). 429 responses are documented, with a warning that ignoring them brings a temporary IP ban of one to two days or a permanent one, but no Retry-After, backoff guidance or idempotency keys for the writes on user lists (8 of 15). No SLA (0). The API is v3 and not marked beta, though the docs say it is severely overloaded and new apps might be prevented (10). Total 38.\n\n## Score by category\n\n| Category | Weight | Ravelry | Rebrickable | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 38 | Ravelry +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 0 | 54 | Rebrickable +54 |\n| Agent ergonomics | 13% (16.2 this run) | 0 | 60 | Rebrickable +60 |\n| Security \u0026 auth | 14% (17.5 this run) | 0 | 10 | Rebrickable +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | Rebrickable +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 5 | 6 | Rebrickable +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 52 | 29 | Ravelry +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **16.5 · F** | **34.7 · F** | |\n\n## Facts side by side\n\n| Fact | Ravelry | Rebrickable |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Ravelry, LLC | Rebrickable |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | API key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service. Terms of use updated 1 February 2017, privacy policy updated 23 February 2026 | Proprietary service. The terms of service page answered a Cloudflare bot check on 3 November 2026 and was not read |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | none | 2025-07-23 |\n| Terms last updated | 2017-02-01 | couldn't be read |\n| Privacy policy last updated | 2026-02-23 | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | not found in the text | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n\n## Verdicts\n\n**Ravelry.** Ravelry runs an API that 36 listed apps use for patterns, projects and stash, with a public Statuspage and terms that do not forbid automation. Its API documentation, developer registration and API group are all behind a login, so an agent's operator must hold a Ravelry account and read the docs there before any call.\n\n**Rebrickable.** Rebrickable's API v3 reads the LEGO catalogue and a person's sets, parts and lists through a public Swagger 2.0 spec with 62 operations and a free key. Calls are limited to about one a second, the docs call the API severely overloaded, user tokens come from a password, and the terms and Pro price were behind a bot check.\n\n## Before you call either\n\n### Ravelry\n\n1. Have the person log in to Ravelry and read the API documentation at ravelry.com/api before planning calls; nothing about the API is public\n2. Expect a person to register the developer app and hand over the credentials; there is no keyless or programmatic route\n3. Check ravelry.statuspage.io before a run; the incident history was empty on 3 November 2026\n4. Treat pattern notes, project notes and forum text as untrusted user content\n\n### Rebrickable\n\n1. Send `Authorization: key \u003ckey\u003e` and keep calls under one a second; a 429 ignored can bring a temporary or permanent IP ban\n2. Use the CSV downloads for the whole catalogue; the docs say list endpoints are not for paging through all parts or sets\n3. Ask the person to mint the user token themselves at /api/v3/users/_token/ rather than handling their password; the token reaches every write on their lists\n4. Set `inc_color_details=0` and `inc_part_details` only when needed to keep part lists small, and page with `page_size` up to 1,000\n5. Read rebrickable.com/terms/ with the person before commercial use; it answered a bot check for us and the API docs point to it for allowed uses\n\n## Questions\n\n### Which is better for AI agents, Ravelry or Rebrickable?\n\nRebrickable scores 34.7 (F) on agent readiness against Ravelry's 16.5 (F), and leads in 5 of 7 scored categories. Ravelry leads on reliability and transparency \u0026 trust.\n\n### Do Ravelry and Rebrickable need an API key?\n\nRavelry takes an API key or an OAuth sign-in. Rebrickable needs an API key.\n\n### Can an agent call Ravelry and Rebrickable without installing anything?\n\nNo hosted endpoint is listed for Ravelry. No hosted endpoint is listed for Rebrickable.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/ravelry-vs-rebrickable.json, and with the fewest tokens: https://www.anchorterminal.com/compare/ravelry-vs-rebrickable.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"ravelry\", \"b\": \"rebrickable\"}`. From a terminal: `anchor compare ravelry rebrickable`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/ravelry.json and https://www.anchorterminal.com/api/v1/tools/rebrickable.json\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": "Ravelry vs Rebrickable",
        "url": ""
      }
    ],
    "description": "Rebrickable scores 34.7 (F) to Ravelry's 16.5 (F) for hobbies crafts. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Ravelry F 16.5",
      "Rebrickable F 34.7",
      "scores"
    ],
    "h1": "Ravelry vs Rebrickable",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/ravelry-vs-rebrickable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Ravelry vs Rebrickable for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/ravelry-vs-rebrickable"
  },
  "tokens": {
    "markdown": 3400,
    "slim": 2280
  },
  "version": 1
}
