{
  "data": {
    "category": {
      "area": "everyday",
      "capabilities": [
        "hobbies.activities",
        "hobbies.routes",
        "hobbies.games",
        "hobbies.collections",
        "hobbies.crafts",
        "hobbies.events",
        "hobbies.classes"
      ],
      "description": "Services around what people do for pleasure, training logs and routes, games and collections, patterns and parts, classes and events, so an agent can read a person's own records with their consent, pick the next thing and book it. Compared on what personal data an agent can read, catalogue depth, whether it can write or book, rate limits and the terms on automated use.",
      "json": "https://www.anchorterminal.com/categories/hobbies.json",
      "name": "Hobbies, sport \u0026 recreation",
      "slug": "hobbies",
      "test": "In this run, public evidence against the published checklist. When the task suites run, the same consenting test account read through each listing, a catalogue searched for a fixed item and, where the API allows, one entry written or one booking made. We check what came back, what the rate limit allowed in an hour and what the terms say about the agent doing it.",
      "title": "Hobby, sport and recreation APIs for AI agents",
      "toolCount": 6,
      "tools": [
        "strava",
        "ride-with-gps",
        "ticketmaster",
        "chess-com",
        "rebrickable",
        "ravelry"
      ],
      "url": "https://www.anchorterminal.com/categories/hobbies"
    },
    "tools": [
      {
        "slug": "strava",
        "name": "Strava MCP Connector + API",
        "vendor": "Strava, Inc.",
        "vendorUrl": "https://www.strava.com",
        "kind": "mcp",
        "category": "hobbies",
        "summary": "Strava's MCP Connector is a hosted, read-only MCP server that gives a Strava subscriber's AI assistant access to their own activity history, fitness trends, gear and best efforts. The V3 REST API reaches the same data for registered developer apps.",
        "url": "https://www.anchorterminal.com/tools/strava",
        "markdownUrl": "https://www.anchorterminal.com/tools/strava.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/strava.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/strava.json",
        "dns": "strava.grade.anchorterminal.com",
        "license": "Proprietary service under the Strava API Agreement (updated 1 June 2026) and the Strava terms, neither read because www.strava.com disallows our reader",
        "transports": [
          "streamable-http"
        ],
        "remoteUrl": "https://mcp.strava.com/mcp",
        "packages": [],
        "auth": "oauth",
        "authNotes": "The MCP Connector needs a Strava subscription. The client opens a browser where the person signs in and approves access, and the connection is read-only and scoped to that account, revocable under Settings, My Apps (https://support.strava.com/en-us/articles/15401531-strava-mcp-connector). The V3 API uses OAuth 2.0 with seven scopes (`read`, `read_all`, `profile:read_all`, `profile:write`, `activity:read`, `activity:read_all`, `activity:write`), 6-hour access tokens and rotating refresh tokens; creating an app at strava.com/settings/api needs a subscription, new apps start in single-player mode, self-upgrade to 10 athletes, and more needs a review (https://developers.strava.com/docs/authentication/).",
        "pricing": "paid",
        "pricingNotes": "A Strava subscription is required for the MCP Connector and for Standard Tier API apps, with no further fee for API access per the Developer FAQ (https://communityhub.strava.com/developers-knowledge-base-14/strava-api-faq-12906). The subscription price is on www.strava.com, which robots.txt disallows for our reader, so no figure is recorded.",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer docs, the MCP support articles, the Swagger file or the changelog (checked 3 November 2026). Access is by subscription and OAuth.",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-11-03"
        },
        "docsUrl": "https://developers.strava.com/docs/",
        "openapi": "https://developers.strava.com/swagger/swagger.json",
        "capabilities": [
          "hobbies.activities",
          "hobbies.routes"
        ],
        "tags": [
          "hosted",
          "mcp",
          "remote-mcp",
          "oauth",
          "read-only-mode",
          "paid",
          "subscription",
          "approval-required",
          "status-page",
          "openapi",
          "closed-source"
        ],
        "lastRelease": "2026-10-28",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 45.8,
          "grade": "E",
          "agentReady": false,
          "rank": 1125,
          "ranked": true,
          "rankOf": 1349,
          "categoryRank": 1,
          "methodology": "0.7",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 49,
            "maintenance": 40,
            "payments": 0,
            "reliability": 63,
            "schema": 50,
            "security": 48,
            "transparency": 59
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-11-03"
          },
          "negative": 0,
          "verdict": "The MCP Connector is the surface Strava sanctions for an AI assistant, read-only, scoped to one subscriber's account, with its own status component. Its tool list and rate limits are not public, the API Agreement and prices sit on a host our reader could not fetch, and apps serving more than 10 athletes need a review that refuses AI tools.",
          "bestFor": "A personal assistant reading one subscriber's training history with consent.",
          "strengths": [
            "Official hosted MCP server at https://mcp.strava.com/mcp, read-only, scoped to the subscriber's own account and revocable under Settings, My Apps",
            "status.strava.com has separate API and MCP Connector components, and no MCP incident appears between 4 August and 3 November 2026",
            "V3 API with a public Swagger 2.0 file, seven OAuth scopes, 6-hour access tokens and documented rate-limit headers",
            "Dated API changelog with notice periods, such as the 1 June 2026 announcement of the 1 September 2026 endpoint removals",
            "Webhooks for activity and deauthorisation events, so an app need not poll"
          ],
          "weaknesses": [
            "The MCP tool list, schemas and rate-limit numbers are not published; they are only visible after OAuth, which we did not run",
            "A Strava subscription is needed for the connector and for Standard Tier API apps, and the price is on a page our reader could not fetch",
            "API apps that expose athlete data to third-party AI tools are not approved beyond 10 athletes, and intermediary platforms are non-compliant",
            "The API Agreement, terms, privacy policy and any security.txt are on www.strava.com, which disallows our reader, so none was read",
            "No official SDKs, no llms.txt and no entry in the official MCP registry"
          ],
          "agentNotes": [
            "Connect with `claude mcp add --transport http strava-mcp https://mcp.strava.com/mcp` and have the subscriber complete the OAuth consent in the browser; a free account is refused",
            "Expect reads only. The connector cannot create, edit or delete activities, so hand uploads to the person or to an app with the `activity:write` scope",
            "On the V3 API, watch X-RateLimit-Usage against 200 per 15 minutes and 2,000 a day, and use webhooks rather than polling; a 429 carries no Retry-After",
            "Do not route Strava API data through another AI tool for an app serving more than 10 athletes; the Developer FAQ says such apps are not approved",
            "Move V3 calls to https://api-v3.strava.com after 4 January 2027 and use POST /oauth/revoke, since the legacy deauthorise endpoint ends on 1 June 2027"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.7",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 45.8
            }
          ],
          "editorialScores": {
            "ergonomics": 49,
            "maintenance": 40,
            "payments": 0,
            "reliability": 63,
            "schema": 50,
            "security": 48,
            "transparency": 31
          },
          "provenanceScore": 86,
          "checked": {
            "categories": {
              "ergonomics": "2026-11-03",
              "maintenance": "2026-11-03",
              "payments": "2026-11-03",
              "reliability": "2026-11-03",
              "schema": "2026-11-03",
              "security": "2026-11-03",
              "transparency": "2026-11-03"
            },
            "last": "2026-11-03",
            "oldest": "2026-11-03",
            "stale": false,
            "staleAfterDays": 90
          }
        },
        "connect": {
          "http": "curl -H \"Authorization: Bearer \u003cACCESS_TOKEN\u003e\" \"https://www.strava.com/api/v3/athlete/activities?per_page=30\"",
          "claudeCode": "claude mcp add --transport http strava-mcp https://mcp.strava.com/mcp",
          "config": {
            "mcpServers": {
              "strava": {
                "type": "http",
                "url": "https://mcp.strava.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/hobbies.activities",
          "tool": "https://letme.dev/strava"
        },
        "area": "everyday",
        "provenance": {
          "legalEntity": "Strava, Inc.",
          "domain": "strava.com",
          "domainRegistered": "2003-12-22",
          "endpointOnVendorDomain": true,
          "terms": "https://www.strava.com/legal/api",
          "privacy": "https://www.strava.com/legal/privacy",
          "statusPage": "https://status.strava.com",
          "changelog": "https://developers.strava.com/docs/changelog/",
          "securityTxt": "unknown",
          "checked": "2026-11-03",
          "notes": [
            "Strava, Inc. is the name in the footer of press.strava.com. The terms and privacy policy on www.strava.com were not read.",
            "www.strava.com/robots.txt disallows ClaudeBot (with Google-Extended, GPTBot and Meta-ExternalAgent) for the whole site and does not name Claude-User or Claude-SearchBot; its wildcard group disallows /api/ and athlete, activity and route pages. Nothing on that host was fetched. developers.strava.com has no robots.txt, press.strava.com allows everything, status.strava.com disallows /api/ and /embed/, support.strava.com and communityhub.strava.com allow the pages read.",
            "The API Agreement link in the docs is strava.com/legal/api, which the rate-limits page says was updated on 1 June 2026. Not read.",
            "security.txt on www.strava.com could not be requested, so its state is unknown. developers.strava.com/llms.txt returns 404.",
            "RDAP (Verisign) gives strava.com a creation date of 22 December 2003."
          ],
          "score": 86
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/strava.json",
        "live": {
          "slug": "strava",
          "probe": {
            "target": "https://mcp.strava.com/mcp",
            "method": "mcp-initialize",
            "lastAt": "2026-11-04T19:04:13.564229934Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 397,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 390,
            "p95ms24h": 510,
            "samples24h": 38,
            "samples30d": 38,
            "days": [
              {
                "date": "2026-11-04",
                "probes": 38,
                "ok": 38
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.strava.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-11-04T18:57:48.546839302Z"
          },
          "securityTxt": {
            "url": "https://strava.com/.well-known/security.txt",
            "state": "expired",
            "expires": "2026-10-31T00:00:00.000Z",
            "checkedAt": "2026-11-04T15:53:17.989248718Z"
          },
          "updatedAt": "2026-11-04T19:04:13.564229934Z"
        }
      },
      {
        "slug": "ride-with-gps",
        "name": "Ride with GPS API",
        "vendor": "Ride with GPS, Inc.",
        "vendorUrl": "https://ridewithgps.com",
        "kind": "http-api",
        "category": "hobbies",
        "summary": "Ride with GPS is a cycling route planning and navigation service. Its v1 REST API reads and writes a person's routes, trips, collections and events, uploads GPS files, and runs club member, event, experience and point-of-interest tools for organisation accounts.",
        "url": "https://www.anchorterminal.com/tools/ride-with-gps",
        "markdownUrl": "https://www.anchorterminal.com/tools/ride-with-gps.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ride-with-gps.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ride-with-gps.json",
        "dns": "ride-with-gps.grade.anchorterminal.com",
        "license": "Proprietary service under the Ride with GPS API Terms of Service (effective 11 September 2026)",
        "transports": [
          "http"
        ],
        "packages": [],
        "auth": "mixed",
        "authNotes": "An API client, created on the API clients page after a browser signup, gives an api_key sent as x-rwgps-api-key. OAuth 2.0 authorisation code flow (https://ridewithgps.com/oauth/authorize, token at /oauth/token.json, revoke at /oauth/revoke.json) returns a Bearer token with scope `user`; no PKCE, expiry or refresh token is documented. Basic auth uses an auth token minted from the account email and password at POST /api/v1/auth_tokens.json, or created in the dashboard for organisation accounts, with no documented expiry or revocation (https://ridewithgps.com/api/v1/doc/authentication).",
        "pricing": "freemium",
        "pricingNotes": "The API is free with no paid plan or approval, per the API terms. A free Starter account suffices for a client. Basic ($9.99 a month or $59.99 a year) and Premium ($12.99 a month or $79.99 a year, 7-day trial) per ridewithgps.com/llms.txt and the App Store listing; the pricing page shows the tiers without figures to our reader. Organisation accounts, which the member, event, experience and point-of-interest endpoints need, are priced by email to organizations@ridewithgps.com.",
        "priceSummary": "$9.99 / mo",
        "where": "local",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the API docs, OpenAPI file, API terms or llms.txt (checked 3 November 2026).",
          "endpoints": []
        },
        "toolCount": 0,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-11-03"
        },
        "docsUrl": "https://ridewithgps.com/api/v1/doc",
        "llmsTxt": "https://ridewithgps.com/llms.txt",
        "openapi": "https://ridewithgps.com/api/v1/openapi.yaml",
        "capabilities": [
          "hobbies.routes",
          "hobbies.activities",
          "hobbies.events"
        ],
        "tags": [
          "hosted",
          "oauth",
          "api-key",
          "openapi",
          "llms-txt",
          "free-tier",
          "no-card",
          "webhooks",
          "closed-source",
          "cycling"
        ],
        "lastRelease": "2026-10-14",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 45.2,
          "grade": "E",
          "agentReady": false,
          "rank": 1139,
          "ranked": true,
          "rankOf": 1349,
          "categoryRank": 2,
          "methodology": "0.7",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 57,
            "maintenance": 60,
            "payments": 30,
            "reliability": 24,
            "schema": 72,
            "security": 30,
            "transparency": 59
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-11-03"
          },
          "negative": 0,
          "verdict": "A free, documented REST API with a public OpenAPI file, OAuth, filters and pagination on routes and trips, GPS uploads as polled tasks, and a change log updated five times since August 2026. There is no status page, no rate limit figure, no read-only scope, and the organisation-only endpoints need an account priced by email.",
          "bestFor": "An agent planning or reading cycling routes and rides for a consenting person, or running a club's calendar from an organisation account.",
          "strengths": [
            "Public OpenAPI 3.0.1 file with 34 paths and 61 operations, plus an llms.txt that states the plans and prices",
            "API terms of 11 September 2026 allow commercial use with no fee, approval or attribution",
            "Routes and trips can be created from GPX, TCX, FIT or KML uploads and exported in the same formats, with page_size up to 200 and distance, elevation, visibility and archived filters",
            "HMAC-SHA256 signed webhooks for route and trip changes, with a 100-notification batch and item URLs to fetch",
            "Change log entries on 10 August, 3 September, 11 September, 6 October and 14 October 2026"
          ],
          "weaknesses": [
            "No status page or incident history; status.ridewithgps.com redirects to the home page",
            "No rate limit figures, no 429 documented, and no idempotency keys on the 30 write operations",
            "OAuth has a single `user` scope with no read-only option, no PKCE and no documented token expiry; basic auth tokens come from the account password",
            "The 23 March 2026 change to route activity_types was breaking, with a migration map but no notice period",
            "Member, event, experience and point-of-interest endpoints need an organisation account priced by email"
          ],
          "agentNotes": [
            "Send x-rwgps-api-key on every request and either x-rwgps-auth-token or `Authorization: Bearer`; ask the person for OAuth consent rather than their password",
            "Append .json to endpoints or set `content-type: application/json`, and read the root key named after the resource (`route`, `trip`)",
            "Page list endpoints with page and page_size (20 to 200) and stop when meta.pagination.next_page_url is null; add privacy_code for non-public items",
            "After POST /api/v1/routes.json with a file, poll GET /api/v1/tasks/{id}.json until the task completes; a package build returns 409 while one is running",
            "Treat every delete as final and unconfirmed, since the API has no read-only scope or idempotency key, and back off on failures as the terms ask"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.7",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 45.2
            }
          ],
          "editorialScores": {
            "ergonomics": 57,
            "maintenance": 60,
            "payments": 30,
            "reliability": 24,
            "schema": 72,
            "security": 30,
            "transparency": 43
          },
          "provenanceScore": 74,
          "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 \"x-rwgps-api-key: \u003cAPI_KEY\u003e\" -H \"x-rwgps-auth-token: \u003cAUTH_TOKEN\u003e\" \"https://ridewithgps.com/api/v1/routes.json?page_size=20\""
        },
        "letme": {
          "capability": "https://letme.dev/hobbies.routes",
          "tool": "https://letme.dev/ride-with-gps"
        },
        "area": "everyday",
        "unitPrices": [
          {
            "item": "Basic plan",
            "unit": "month",
            "usd": 9.99,
            "note": "$59.99 a year; the API itself is free"
          },
          {
            "item": "Premium plan",
            "unit": "month",
            "usd": 12.99,
            "note": "$79.99 a year, 7-day trial"
          }
        ],
        "provenance": {
          "legalEntity": "Ride with GPS, Inc.",
          "domain": "ridewithgps.com",
          "domainRegistered": "2007-04-16",
          "endpointOnVendorDomain": true,
          "terms": "https://ridewithgps.com/api/v1/doc/terms",
          "privacy": "https://ridewithgps.com/privacy",
          "statusPage": "",
          "changelog": "https://ridewithgps.com/api/v1/doc/change_log",
          "securityTxt": "none",
          "checked": "2026-11-03",
          "notes": [
            "Ride with GPS, Inc, a Delaware corporation, is named in the terms of service effective 1 July 2026. The App Store lists the seller as Ride with GPS LLC. The privacy policy (last updated 31 July 2026) names no entity.",
            "API Terms of Service effective 11 September 2026 supplement the general terms. Neither forbids automated access; the API terms ask for responsible traffic and say unusual traffic should be discussed first.",
            "ridewithgps.com/robots.txt disallows raw track exports, route and trip JSON, cue sheets, elevation profiles and images for every agent, none of which was fetched; the API documentation paths are allowed. changelog.ridewithgps.com allows all. support.ridewithgps.com answered 403.",
            "status.ridewithgps.com answers 301 to the home page. /.well-known/security.txt returns 404.",
            "RDAP (Verisign) gives ridewithgps.com a creation date of 16 April 2007."
          ],
          "score": 74
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/ride-with-gps.json",
        "live": {
          "slug": "ride-with-gps",
          "securityTxt": {
            "url": "https://ridewithgps.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-11-04T15:54:43.62212682Z"
          },
          "updatedAt": "2026-11-04T15:54:43.62212682Z"
        }
      },
      {
        "slug": "ticketmaster",
        "name": "Ticketmaster Discovery API",
        "vendor": "Ticketmaster (Live Nation Entertainment)",
        "vendorUrl": "https://developer.ticketmaster.com",
        "kind": "http-api",
        "category": "hobbies",
        "summary": "Ticketmaster's Discovery API searches events, attractions, venues and classifications across Ticketmaster, Universe, FrontGate and Ticketmaster Resale, with a key from the developer portal. Buying tickets needs the Partner API, which is open only to approved distribution partners.",
        "url": "https://www.anchorterminal.com/tools/ticketmaster",
        "markdownUrl": "https://www.anchorterminal.com/tools/ticketmaster.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ticketmaster.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ticketmaster.json",
        "dns": "ticketmaster.grade.anchorterminal.com",
        "repo": "https://github.com/ticketmaster-api",
        "license": "Proprietary service. Developer portal General Terms of Use last updated 27 June 2023; privacy policy last updated 29 July 2026",
        "transports": [],
        "packages": [],
        "auth": "api-key",
        "authNotes": "One API key per application, registered in the developer portal after a browser signup, sent as the `apikey` query parameter on every request. The Partner API also accepts an `x-api-key` header. No scopes, expiry or rotation documented. A missing or invalid key returns 401 with errorcode oauth.v2.InvalidApiKey.",
        "pricing": "free",
        "pricingNotes": "The Discovery API and Discovery Feed are free with a developer account, 5,000 calls a day and 5 a second by default (the FAQ says 2 a second). Higher limits are granted case by case. The terms forbid deriving revenue from use of the API; affiliates earn commission on sales through the Impact programme at rates set during onboarding. The Partner API is for approved distribution partners.",
        "priceSummary": "Free",
        "where": "local",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the Discovery API docs, getting started, FAQ or terms (checked 2026-11-03).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-11-03"
        },
        "docsUrl": "https://developer.ticketmaster.com/products-and-docs/apis/discovery-api/v2/",
        "capabilities": [
          "hobbies.events"
        ],
        "tags": [
          "hosted",
          "closed-source",
          "api-key",
          "free",
          "free-tier",
          "no-card",
          "partner-only"
        ],
        "lastRelease": "2026-10-16",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 42.9,
          "grade": "E",
          "agentReady": false,
          "rank": 1176,
          "ranked": true,
          "rankOf": 1349,
          "categoryRank": 3,
          "methodology": "0.7",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 63,
            "maintenance": 48,
            "payments": 30,
            "reliability": 45,
            "schema": 42,
            "security": 18,
            "transparency": 65
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-11-03"
          },
          "negative": 0,
          "verdict": "The Discovery API gives a free key 5,000 event searches a day across Ticketmaster's markets, with documented paging, filters and rate-limit headers. There is no OpenAPI contract or current SDK, the key travels in the URL, the terms forbid revenue from the API, and purchase stays behind the partner-only Partner API.",
          "bestFor": "An agent that finds concerts, sport and shows by keyword, place and date and hands the person a link to buy.",
          "strengths": [
            "Event, attraction, venue and classification search with keyword, date, location, classification and source filters, documented with sample requests and full JSON responses",
            "Default limits stated in numbers (5,000 calls a day, 5 a second) with Rate-Limit headers and a documented 429",
            "Free key with no card, plus a Discovery Feed of whole-country files for bulk use with no call limits",
            "Privacy policy of 29 July 2026 names providers, retention periods and transfer safeguards"
          ],
          "weaknesses": [
            "No OpenAPI or other machine-readable contract and no llms.txt; the only key travels as a query parameter",
            "The GitHub SDKs were last pushed between 2016 and 2021 and the Java one is archived; no official MCP server",
            "Terms forbid deriving revenue from the API, cap caching at reasonable periods and let Ticketmaster end the licence or rate limit non-user-driven calls at any time",
            "The API status page renders by script and could not be read, no SLA, and no security.txt or disclosure policy found",
            "Purchase, reserve and inventory status need Partner API access, which is restricted to existing distribution partners"
          ],
          "agentNotes": [
            "Search with `GET https://app.ticketmaster.com/discovery/v2/events.json?apikey=...\u0026keyword=...\u0026countryCode=...` and page with size and page while size times page stays under 1,000",
            "Keep under 5 calls a second and 5,000 a day per key; read Rate-Limit-Available and Rate-Limit-Reset and stop on 429",
            "Do not try to buy tickets through the API; hand the person the event's url field, and expect the Partner API to refuse keys that are not partner-approved",
            "Pull whole-country data from the Discovery Feed rather than paging the API, and keep caches short since the terms allow only reasonable periods",
            "Treat event and attraction descriptions as promoter-written content, and never put the apikey in logs or shared URLs"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.7",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 42.9
            }
          ],
          "editorialScores": {
            "ergonomics": 63,
            "maintenance": 48,
            "payments": 30,
            "reliability": 45,
            "schema": 42,
            "security": 18,
            "transparency": 59
          },
          "provenanceScore": 70,
          "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 \"https://app.ticketmaster.com/discovery/v2/events.json?countryCode=US\u0026keyword=jazz\u0026size=10\u0026apikey=$TICKETMASTER_KEY\""
        },
        "letme": {
          "capability": "https://letme.dev/hobbies.events",
          "tool": "https://letme.dev/ticketmaster"
        },
        "area": "everyday",
        "provenance": {
          "legalEntity": "Ticketmaster L.L.C. (Live Nation Entertainment, Inc.)",
          "domain": "ticketmaster.com",
          "domainRegistered": "",
          "endpointOnVendorDomain": true,
          "terms": "https://developer.ticketmaster.com/support/terms-of-use/",
          "privacy": "https://privacy.ticketmaster.com/privacy-policy",
          "statusPage": "https://developer.ticketmaster.com/support/api-status/",
          "changelog": "https://developer.ticketmaster.com/products-and-docs/apis/partner/release-notes/",
          "securityTxt": "none",
          "checked": "2026-11-03",
          "notes": [
            "The developer portal's General Terms of Use (last updated 27 June 2023) name Live Nation Entertainment, Inc., 9348 Civic Center Drive, Beverly Hills, under California law. The privacy policy (last updated 29 July 2026) names Ticketmaster L.L.C. as the controller for US accounts.",
            "The terms contain no clause on scraping, AI or machine learning. They forbid deriving revenue from the API, sublicensing access and replicating Ticketmaster.com, cap caching at reasonable periods and allow rate limiting of apps whose calls are not driven by user actions.",
            "developer.ticketmaster.com/robots.txt allows all crawlers. privacy.ticketmaster.com/robots.txt disallows only /visitor-policy. www.ticketmaster.com/robots.txt disallows checkout, member and cart paths.",
            "developer.ticketmaster.com/.well-known/security.txt redirects to /404.html and www.ticketmaster.com/.well-known/security.txt answers 404 with the browse page.",
            "The API status page at /support/api-status/ needs JavaScript and showed no status or history to our reader. The newest dated release notes on the portal are the Partner API's (16 October 2026); no Discovery API changelog was found on the live portal, and the one in the ticketmaster-api.github.io repository ends in June 2016."
          ],
          "score": 70
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/ticketmaster.json",
        "live": {
          "slug": "ticketmaster",
          "vendorStatus": {
            "page": "https://developer.ticketmaster.com/support/api-status",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-11-04T15:32:39.189683347Z"
          },
          "securityTxt": {
            "url": "https://ticketmaster.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-11-04T15:54:41.891848031Z"
          },
          "updatedAt": "2026-11-04T15:54:41.891848031Z"
        }
      },
      {
        "slug": "chess-com",
        "name": "Chess.com Published-Data API",
        "vendor": "Chess.com LLC",
        "vendorUrl": "https://www.chess.com",
        "kind": "http-api",
        "category": "hobbies",
        "summary": "Chess.com's Published-Data API is a keyless, read-only REST API returning JSON-LD for public player profiles, ratings, monthly game archives with PGN, clubs, tournaments, team matches, country lists, the daily puzzle, streamers and leaderboards.",
        "url": "https://www.anchorterminal.com/tools/chess-com",
        "markdownUrl": "https://www.anchorterminal.com/tools/chess-com.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/chess-com.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/chess-com.json",
        "dns": "chess-com.grade.anchorterminal.com",
        "license": "Proprietary service. The API page sets no terms of its own; the Chess.com User Agreement (25 March 2026) applies to the site",
        "transports": [
          "http"
        ],
        "packages": [],
        "auth": "none",
        "authNotes": "No key, account or OAuth. Requests go to https://api.chess.com/pub/... as plain GETs. Chess.com asks for a recognisable User-Agent with contact details so it can reach the caller before blocking it (https://www.chess.com/news/view/published-data-api). A separate OAuth 2.0 server for identity exists for approved partners through a request form, with its documentation on a Notion page our reader could not render.",
        "pricing": "free",
        "pricingNotes": "No price, plan or login. The API page states no fee and no commercial terms. Serial requests are unlimited; parallel requests may get 429.",
        "priceSummary": "Free",
        "where": "local",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 on the API page, in the Postman collection or in the developer club resources (checked 3 November 2026).",
          "endpoints": []
        },
        "toolCount": 0,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-11-03"
        },
        "docsUrl": "https://www.chess.com/news/view/published-data-api",
        "capabilities": [
          "hobbies.games"
        ],
        "tags": [
          "hosted",
          "no-auth",
          "keyless",
          "free",
          "read-only",
          "closed-source",
          "maintenance-mode",
          "chess"
        ],
        "lastRelease": "2024-11-10",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 40.8,
          "grade": "E",
          "agentReady": false,
          "rank": 1207,
          "ranked": true,
          "rankOf": 1349,
          "categoryRank": 4,
          "methodology": "0.7",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 58,
            "maintenance": 5,
            "payments": 50,
            "reliability": 30,
            "schema": 48,
            "security": 35,
            "transparency": 54
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-11-03"
          },
          "negative": 0,
          "verdict": "A keyless, read-only API that returns a player's monthly game archives with PGN, ratings, clubs and tournaments, with ETag caching and a documented 429 rule. It has been in maintenance mode since December 2024, with no status page, no contract file beyond a bare Postman collection, and a User Agreement that bars robots and AI tools from the Services.",
          "bestFor": "An agent reading a named player's games, ratings and club or tournament history with no setup, or pulling the daily puzzle.",
          "strengths": [
            "No key or account, and GET https://api.chess.com/pub/player/{username}/games/{YYYY}/{MM} returns a month of games with PGN",
            "ETag and Last-Modified on responses, with 304 on If-None-Match, and gzip and HTTP/2 supported",
            "Serial requests are unlimited by policy, with a documented 429 for parallel bursts and a 410 for data that will never return",
            "Endpoint families for players, titled players, games, clubs, tournaments, team matches, countries, puzzles, streamers and leaderboards",
            "A Developer Community club with staff admins where backend changes and the maintenance status were posted"
          ],
          "weaknesses": [
            "In maintenance and bug-fix only mode since mid-December 2024, with the documentation last reviewed on 10 May 2022",
            "No status page, no rate limit figures and no error body format; recent club threads report HTTP 500 on match endpoints and stats endpoint failures",
            "No OpenAPI or llms.txt; the Postman collection has 22 requests with empty descriptions and no examples",
            "The User Agreement bars robots, spiders and AI tools from retrieving or data mining the Services and from building game databases, while the API page says nothing about which terms govern it",
            "Monthly archives return whole months with no pagination, filtering or field selection"
          ],
          "agentNotes": [
            "Send a User-Agent with an app name and contact address, as Chess.com asks, and make requests one at a time; parallel calls can draw 429 or a block",
            "Cache by ETag and send If-None-Match; most endpoints refresh only every 12 to 24 hours, so re-polling sooner returns the same data",
            "Fetch /pub/player/{username}/games/archives first, then one month at a time; a 410 means stop asking for that URL and a 301 means update it",
            "Expect reads only. There is no way to play a move, join a club or read private games, so hand those to the person",
            "Check the Developer Community club before relying on an endpoint, since the API is in maintenance mode and backend changes can affect it without notice"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.7",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 40.8
            }
          ],
          "editorialScores": {
            "ergonomics": 58,
            "maintenance": 5,
            "payments": 50,
            "reliability": 30,
            "schema": 48,
            "security": 35,
            "transparency": 34
          },
          "provenanceScore": 74,
          "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 -A \"my-app (contact@example.com)\" https://api.chess.com/pub/player/hikaru/stats"
        },
        "letme": {
          "capability": "https://letme.dev/hobbies.games",
          "tool": "https://letme.dev/chess-com"
        },
        "area": "everyday",
        "provenance": {
          "legalEntity": "Chess.com LLC",
          "domain": "chess.com",
          "domainRegistered": "1994-08-11",
          "endpointOnVendorDomain": true,
          "terms": "https://www.chess.com/legal/user-agreement",
          "privacy": "https://www.chess.com/legal/privacy",
          "statusPage": "",
          "changelog": "https://www.chess.com/clubs/forum/view/changelog",
          "securityTxt": "none",
          "checked": "2026-11-03",
          "notes": [
            "Chess.com LLC, 877 E 1200 S #970397, Orem, UT 84097, is named in the User Agreement and privacy policy, both last updated 25 March 2026, under Utah law. Chessable Spain S.L. and Chessable Ltd. are the EEA and UK data protection representatives.",
            "www.chess.com/robots.txt disallows /admin, /game/, /stats/ and register redirects for every agent and names no Anthropic agent; the pages read are allowed. api.chess.com/robots.txt is `User-agent: *` with `Disallow: /`, so no API endpoint was requested.",
            "The User Agreement section 4(C) and 4(D) bar robots, spiders and automated or AI tools from retrieving, indexing, scanning, scraping or data mining the Services, allow search and AI answer engines to index public pages for results but not for training, and require written authorisation for other AI use. Recorded as a fact; the API page itself invites programmatic use.",
            "No status page found (status.chess.com has no DNS record). www.chess.com/.well-known/security.txt returned a page that says to report security problems through the contact page, not a security.txt file. www.chess.com/llms.txt returns 404.",
            "RDAP (Verisign) gives chess.com a creation date of 11 August 1994."
          ],
          "score": 74
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/chess-com.json",
        "live": {
          "slug": "chess-com",
          "securityTxt": {
            "url": "https://chess.com/.well-known/security.txt",
            "state": "valid",
            "checkedAt": "2026-11-04T15:54:48.967557845Z"
          },
          "updatedAt": "2026-11-04T15:54:48.967557845Z"
        }
      },
      {
        "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": 1255,
          "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"
        }
      },
      {
        "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-04T18:57:44.370017435Z"
          },
          "securityTxt": {
            "url": "https://ravelry.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-11-04T15:54:11.948900573Z"
          },
          "updatedAt": "2026-11-04T18:57:44.370017435Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/hobbies",
    "json": "https://www.anchorterminal.com/categories/hobbies.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/hobbies.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/categories/hobbies.min.md"
  },
  "markdown": "Services around what people do for pleasure, training logs and routes, games and collections, patterns and parts, classes and events, so an agent can read a person's own records with their consent, pick the next thing and book it. Compared on what personal data an agent can read, catalogue depth, whether it can write or book, rate limits and the terms on automated use.\n\n- Tools ranked: 6 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 1 · desk reviews by the panel: 0\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Shortlist and picks by need: https://www.anchorterminal.com/best/hobbies/index.md\n- Head-to-head comparisons (3): https://www.anchorterminal.com/compare/hobbies/index.md\n- Capabilities in this category: hobbies.activities, hobbies.routes, hobbies.games, hobbies.collections, hobbies.crafts, hobbies.events, hobbies.classes\n- https://letme.dev/hobbies.activities picks the top-graded tool in this list and says how to call it direct (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 1125 | Strava MCP Connector + API | Strava, Inc. | MCP server | Hobbies | E | 45.8 | medium | no | OAuth | hosted | none | https://www.anchorterminal.com/tools/strava.md |\n| 1139 | Ride with GPS API | Ride with GPS, Inc. | HTTP API | Hobbies | E | 45.2 | medium | no | OAuth or key | local | none | https://www.anchorterminal.com/tools/ride-with-gps.md |\n| 1176 | Ticketmaster Discovery API | Ticketmaster (Live Nation Entertainment) | HTTP API | Hobbies | E | 42.9 | medium | no | API key | local | none | https://www.anchorterminal.com/tools/ticketmaster.md |\n| 1207 | Chess.com Published-Data API | Chess.com LLC | HTTP API | Hobbies | E | 40.8 | medium | no | None | local | none | https://www.anchorterminal.com/tools/chess-com.md |\n| 1255 | Rebrickable | Rebrickable | HTTP API | Hobbies | F | 34.7 | low | no | API key | local | none | https://www.anchorterminal.com/tools/rebrickable.md |\n| 1311 | Ravelry | Ravelry, LLC | HTTP API | Hobbies | F | 16.5 | low | no | OAuth or key | local | none | https://www.anchorterminal.com/tools/ravelry.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 1125. Strava MCP Connector + API, E (45.8)\n\nStrava's MCP Connector is a hosted, read-only MCP server that gives a Strava subscriber's AI assistant access to their own activity history, fitness trends, gear and best efforts. The V3 REST API reaches the same data for registered developer apps. The MCP Connector is the surface Strava sanctions for an AI assistant, read-only, scoped to one subscriber's account, with its own status component. Its tool list and rate limits are not public, the API Agreement and prices sit on a host our reader could not fetch, and apps serving more than 10 athletes need a review that refuses AI tools.\n\n- Page: https://www.anchorterminal.com/tools/strava · Markdown: https://www.anchorterminal.com/tools/strava.md · JSON: https://www.anchorterminal.com/api/v1/tools/strava.json\n- Capabilities: hobbies.activities, hobbies.routes · endpoint: `https://mcp.strava.com/mcp`\n\n### 1139. Ride with GPS API, E (45.2)\n\nRide with GPS is a cycling route planning and navigation service. Its v1 REST API reads and writes a person's routes, trips, collections and events, uploads GPS files, and runs club member, event, experience and point-of-interest tools for organisation accounts. A free, documented REST API with a public OpenAPI file, OAuth, filters and pagination on routes and trips, GPS uploads as polled tasks, and a change log updated five times since August 2026. There is no status page, no rate limit figure, no read-only scope, and the organisation-only endpoints need an account priced by email.\n\n- Page: https://www.anchorterminal.com/tools/ride-with-gps · Markdown: https://www.anchorterminal.com/tools/ride-with-gps.md · JSON: https://www.anchorterminal.com/api/v1/tools/ride-with-gps.json\n- Capabilities: hobbies.routes, hobbies.activities, hobbies.events\n\n### 1176. Ticketmaster Discovery API, E (42.9)\n\nTicketmaster's Discovery API searches events, attractions, venues and classifications across Ticketmaster, Universe, FrontGate and Ticketmaster Resale, with a key from the developer portal. Buying tickets needs the Partner API, which is open only to approved distribution partners. The Discovery API gives a free key 5,000 event searches a day across Ticketmaster's markets, with documented paging, filters and rate-limit headers. There is no OpenAPI contract or current SDK, the key travels in the URL, the terms forbid revenue from the API, and purchase stays behind the partner-only Partner API.\n\n- Page: https://www.anchorterminal.com/tools/ticketmaster · Markdown: https://www.anchorterminal.com/tools/ticketmaster.md · JSON: https://www.anchorterminal.com/api/v1/tools/ticketmaster.json\n- Capabilities: hobbies.events\n\n### 1207. Chess.com Published-Data API, E (40.8)\n\nChess.com's Published-Data API is a keyless, read-only REST API returning JSON-LD for public player profiles, ratings, monthly game archives with PGN, clubs, tournaments, team matches, country lists, the daily puzzle, streamers and leaderboards. A keyless, read-only API that returns a player's monthly game archives with PGN, ratings, clubs and tournaments, with ETag caching and a documented 429 rule. It has been in maintenance mode since December 2024, with no status page, no contract file beyond a bare Postman collection, and a User Agreement that bars robots and AI tools from the Services.\n\n- Page: https://www.anchorterminal.com/tools/chess-com · Markdown: https://www.anchorterminal.com/tools/chess-com.md · JSON: https://www.anchorterminal.com/api/v1/tools/chess-com.json\n- Capabilities: hobbies.games\n\n### 1255. Rebrickable, F (34.7)\n\nRebrickable 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. 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- Page: https://www.anchorterminal.com/tools/rebrickable · Markdown: https://www.anchorterminal.com/tools/rebrickable.md · JSON: https://www.anchorterminal.com/api/v1/tools/rebrickable.json\n- Capabilities: hobbies.collections, hobbies.crafts\n\n### 1311. Ravelry, F (16.5)\n\nRavelry 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. 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- Page: https://www.anchorterminal.com/tools/ravelry · Markdown: https://www.anchorterminal.com/tools/ravelry.md · JSON: https://www.anchorterminal.com/api/v1/tools/ravelry.json\n- Capabilities: hobbies.crafts, hobbies.collections\n\n## How we test this category\n\nIn this run, public evidence against the published checklist. When the task suites run, the same consenting test account read through each listing, a catalogue searched for a fixed item and, where the API allows, one entry written or one booking made. We check what came back, what the rate limit allowed in an hour and what the terms say about the agent doing it. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Hobbies, sport \u0026 recreation",
        "url": ""
      }
    ],
    "description": "6 hobbies, sport \u0026 recreation listings ranked by the Anchor benchmark. Leader Strava MCP Connector + API (E). Services around what people do for pleasure, training logs and routes, games and collections, patterns and parts, classes and events, so an agent can read a person's own records with their consent, pick the next thing and book it. Compared on what personal data an agent can read, catalogue depth, whether it can write or book, rate limits and the terms on automated use.",
    "facts": [
      "Strava MCP Connector + API E",
      "Ride with GPS API E",
      "Ticketmaster Discovery API E"
    ],
    "h1": "Hobby, sport and recreation APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-hobbies.png",
    "path": "/categories/hobbies",
    "published": "",
    "section": "tools",
    "title": "Hobby, sport and recreation APIs for AI agents, ranked",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/categories/hobbies"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 430
  },
  "version": 1
}
