{
  "data": {
    "similar": [
      {
        "grade": "E",
        "json": "https://www.anchorterminal.com/tools/strava.json",
        "name": "Strava MCP Connector + API",
        "score": 45.8,
        "shared": [
          "hobbies.activities",
          "hobbies.routes"
        ],
        "slug": "strava"
      },
      {
        "grade": "E",
        "json": "https://www.anchorterminal.com/tools/ticketmaster.json",
        "name": "Ticketmaster Discovery API",
        "score": 42.9,
        "shared": [
          "hobbies.events"
        ],
        "slug": "ticketmaster"
      },
      {
        "grade": "E",
        "json": "https://www.anchorterminal.com/tools/chess-com.json",
        "name": "Chess.com Published-Data API",
        "score": 40.8,
        "shared": null,
        "slug": "chess-com"
      },
      {
        "grade": "F",
        "json": "https://www.anchorterminal.com/tools/rebrickable.json",
        "name": "Rebrickable",
        "score": 34.7,
        "shared": null,
        "slug": "rebrickable"
      },
      {
        "grade": "F",
        "json": "https://www.anchorterminal.com/tools/ravelry.json",
        "name": "Ravelry",
        "score": 16.5,
        "shared": null,
        "slug": "ravelry"
      }
    ],
    "tool": {
      "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"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 24,
            "points": 4.8,
            "reason": "Read with the hosted lines. No status page, since status.ridewithgps.com answers 301 to the home page and the docs link none (0). No readable incident history (5). The API terms of 11 September 2026 say no fixed request limits currently apply and ask for caching, webhooks and backing off, so there are no numbers to publish (5 of 15). No 429 is documented in the docs or the OpenAPI file; the terms ask clients to back off on failures, uploads run as tasks to poll, and no idempotency key exists for the 30 write operations (4 of 15). No SLA (0). v1 is the current and only version with no beta label (10). 0 + 5 + 5 + 4 + 0 + 10 = 24.",
            "checked": "2026-11-03"
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 72,
            "points": 11.7,
            "reason": "Public OpenAPI 3.0.1 file with 34 paths, 61 operations and 41 schemas (25). ridewithgps.com/llms.txt describes the product and plans but links no Markdown docs, and the documentation is HTML (5 of 10). Operation descriptions say which endpoints are organisation-only, that uploads and package builds return a task to poll, how experience codes replace each other and that deleting a member keeps their account; little on when not to use an operation (14 of 20). 18 enums, required fields and defaults in the file, but the Error schema is an array of strings (10 of 15). One example in the OpenAPI file, request and pagination examples on the docs pages, and a table of HTTP codes with the `errors` array shape (8 of 15). One version in the path, a rule that only incompatible changes create a new version, and a dated change log back to January 2025 (15). 25 + 5 + 14 + 10 + 8 + 15 = 72.",
            "checked": "2026-11-03"
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 57,
            "points": 9.26,
            "reason": "No field selection; polylines and track files sit on separate endpoints and page_size runs from 20 to 200 (12 of 25). page and page_size with meta.pagination, filters for name, visibility, distance, elevation gain, archived and stationary, and privacy_code for non-public items (20). Errors carry HTTP codes and an `errors` array of messages with no codes to branch on (10 of 20). Reads are safe to repeat and package builds return 409 while one runs, but no idempotency key covers creates, and deletes are not confirmed (8 of 20). Two headers and a .json suffix are all a request needs, with no official SDK (7 of 15). 12 + 20 + 10 + 8 + 7 = 57.",
            "checked": "2026-11-03"
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 30,
            "points": 5.25,
            "reason": "OAuth 2.0 authorisation code flow with one scope, `user`, and a revoke endpoint, but no PKCE, expiry or refresh token is documented; basic auth tokens are minted from the account email and password with no documented expiry or revocation; credentials travel in headers (18 of 30). No read-only scope, and the 30 write operations, including deletes of routes, events, members and experiences, need no confirmation (4 of 20). Route names, descriptions, event text and experience messages are user content with no guidance on treating them as untrusted (5 of 15). The API clients page lists clients and tokens; no call log is documented (3 of 15). /.well-known/security.txt returns 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 18 + 4 + 5 + 3 + 0 = 30.",
            "checked": "2026-11-03"
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 30,
            "points": 3.75,
            "reason": "Read with the hosted rubric. No x402, MPP or L402 (0). The API is free under the terms and the plan prices are stated in llms.txt and the App Store listing, but the pricing page shows no figures to our reader and organisation accounts, which the member, event, experience and point-of-interest endpoints need, are priced by email (10 of 20). A free Starter account and a free API client with no card (20). A person signs up and creates the API client in a browser, and basic auth tokens need the account password (0). 0 + 10 + 20 + 0 = 30.",
            "checked": "2026-11-03"
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 60,
            "points": 5.25,
            "reason": "Read for a closed service. The newest change log entry is 14 October 2026 (30). Five dated entries since 4 August 2026, on 10 August, 3 September, 11 September, 6 October and 14 October (20). A dated change log, developers@ridewithgps.com and a Zendesk help centre that answered 403 to our reader; replies were not tested (10 of 15). No official SDK and no entry in the official MCP registry (0 of 15). No package or CI to judge (0 of 10). 30 + 20 + 10 + 0 + 0 = 60.",
            "checked": "2026-11-03"
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 59,
            "points": 5.16,
            "note": "editorial 43, provenance 74",
            "reason": "Closed service with API terms effective 11 September 2026 and general terms of 1 July 2026 naming Ride with GPS, Inc under Oregon law; the App Store names Ride with GPS LLC (15 of 30). The privacy policy of 31 July 2026 gives no fixed retention periods, names Google Maps, Google and Apple and other providers only by category, and names no entity (12 of 30). The API terms promise reasonable advance notice of material changes through the change log or email, and the 23 March 2026 breaking change to activity_types shipped with a migration map and no notice window (10 of 20). Processing in the United States and other jurisdictions with safeguards where required; no subprocessor list (6 of 20). 15 + 12 + 10 + 6 = 43.",
            "checked": "2026-11-03"
          }
        ],
        "assessment": {
          "date": "2026-11-03",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "No field selection; polylines and track files sit on separate endpoints and page_size runs from 20 to 200 (12 of 25). page and page_size with meta.pagination, filters for name, visibility, distance, elevation gain, archived and stationary, and privacy_code for non-public items (20). Errors carry HTTP codes and an `errors` array of messages with no codes to branch on (10 of 20). Reads are safe to repeat and package builds return 409 while one runs, but no idempotency key covers creates, and deletes are not confirmed (8 of 20). Two headers and a .json suffix are all a request needs, with no official SDK (7 of 15). 12 + 20 + 10 + 8 + 7 = 57.",
            "maintenance": "Read for a closed service. The newest change log entry is 14 October 2026 (30). Five dated entries since 4 August 2026, on 10 August, 3 September, 11 September, 6 October and 14 October (20). A dated change log, developers@ridewithgps.com and a Zendesk help centre that answered 403 to our reader; replies were not tested (10 of 15). No official SDK and no entry in the official MCP registry (0 of 15). No package or CI to judge (0 of 10). 30 + 20 + 10 + 0 + 0 = 60.",
            "payments": "Read with the hosted rubric. No x402, MPP or L402 (0). The API is free under the terms and the plan prices are stated in llms.txt and the App Store listing, but the pricing page shows no figures to our reader and organisation accounts, which the member, event, experience and point-of-interest endpoints need, are priced by email (10 of 20). A free Starter account and a free API client with no card (20). A person signs up and creates the API client in a browser, and basic auth tokens need the account password (0). 0 + 10 + 20 + 0 = 30.",
            "reliability": "Read with the hosted lines. No status page, since status.ridewithgps.com answers 301 to the home page and the docs link none (0). No readable incident history (5). The API terms of 11 September 2026 say no fixed request limits currently apply and ask for caching, webhooks and backing off, so there are no numbers to publish (5 of 15). No 429 is documented in the docs or the OpenAPI file; the terms ask clients to back off on failures, uploads run as tasks to poll, and no idempotency key exists for the 30 write operations (4 of 15). No SLA (0). v1 is the current and only version with no beta label (10). 0 + 5 + 5 + 4 + 0 + 10 = 24.",
            "schema": "Public OpenAPI 3.0.1 file with 34 paths, 61 operations and 41 schemas (25). ridewithgps.com/llms.txt describes the product and plans but links no Markdown docs, and the documentation is HTML (5 of 10). Operation descriptions say which endpoints are organisation-only, that uploads and package builds return a task to poll, how experience codes replace each other and that deleting a member keeps their account; little on when not to use an operation (14 of 20). 18 enums, required fields and defaults in the file, but the Error schema is an array of strings (10 of 15). One example in the OpenAPI file, request and pagination examples on the docs pages, and a table of HTTP codes with the `errors` array shape (8 of 15). One version in the path, a rule that only incompatible changes create a new version, and a dated change log back to January 2025 (15). 25 + 5 + 14 + 10 + 8 + 15 = 72.",
            "security": "OAuth 2.0 authorisation code flow with one scope, `user`, and a revoke endpoint, but no PKCE, expiry or refresh token is documented; basic auth tokens are minted from the account email and password with no documented expiry or revocation; credentials travel in headers (18 of 30). No read-only scope, and the 30 write operations, including deletes of routes, events, members and experiences, need no confirmation (4 of 20). Route names, descriptions, event text and experience messages are user content with no guidance on treating them as untrusted (5 of 15). The API clients page lists clients and tokens; no call log is documented (3 of 15). /.well-known/security.txt returns 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 18 + 4 + 5 + 3 + 0 = 30.",
            "transparency": "Closed service with API terms effective 11 September 2026 and general terms of 1 July 2026 naming Ride with GPS, Inc under Oregon law; the App Store names Ride with GPS LLC (15 of 30). The privacy policy of 31 July 2026 gives no fixed retention periods, names Google Maps, Google and Apple and other providers only by category, and names no entity (12 of 30). The API terms promise reasonable advance notice of material changes through the change log or email, and the 23 March 2026 breaking change to activity_types shipped with a migration map and no notice window (10 of 20). Processing in the United States and other jurisdictions with safeguards where required; no subprocessor list (6 of 20). 15 + 12 + 10 + 6 = 43."
          },
          "sources": [
            {
              "what": "API documentation",
              "url": "https://ridewithgps.com/api/v1/doc",
              "seen": "2026-11-03"
            },
            {
              "what": "OpenAPI 3.0.1 file",
              "url": "https://ridewithgps.com/api/v1/openapi.yaml",
              "seen": "2026-11-03"
            },
            {
              "what": "authentication guide",
              "url": "https://ridewithgps.com/api/v1/doc/authentication",
              "seen": "2026-11-03"
            },
            {
              "what": "webhooks guide",
              "url": "https://ridewithgps.com/api/v1/doc/webhooks",
              "seen": "2026-11-03"
            },
            {
              "what": "API Terms of Service (11 September 2026)",
              "url": "https://ridewithgps.com/api/v1/doc/terms",
              "seen": "2026-11-03"
            },
            {
              "what": "API change log",
              "url": "https://ridewithgps.com/api/v1/doc/change_log",
              "seen": "2026-11-03"
            },
            {
              "what": "llms.txt",
              "url": "https://ridewithgps.com/llms.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "terms of service (1 July 2026)",
              "url": "https://ridewithgps.com/terms",
              "seen": "2026-11-03"
            },
            {
              "what": "privacy policy (31 July 2026)",
              "url": "https://ridewithgps.com/privacy",
              "seen": "2026-11-03"
            },
            {
              "what": "pricing page",
              "url": "https://ridewithgps.com/pricing",
              "seen": "2026-11-03"
            },
            {
              "what": "organisation accounts",
              "url": "https://ridewithgps.com/organizations",
              "seen": "2026-11-03"
            },
            {
              "what": "about page",
              "url": "https://ridewithgps.com/about",
              "seen": "2026-11-03"
            },
            {
              "what": "App Store listing (prices, seller)",
              "url": "https://apps.apple.com/us/app/ride-with-gps-bike-navigation/id893687399",
              "seen": "2026-11-03"
            },
            {
              "what": "status.ridewithgps.com (301 to home)",
              "url": "https://status.ridewithgps.com/",
              "seen": "2026-11-03"
            },
            {
              "what": "security.txt (404)",
              "url": "https://ridewithgps.com/.well-known/security.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "robots.txt",
              "url": "https://ridewithgps.com/robots.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "MCP registry search (empty)",
              "url": "https://registry.modelcontextprotocol.io/v0/servers?search=ridewithgps",
              "seen": "2026-11-03"
            },
            {
              "what": "RDAP for ridewithgps.com",
              "url": "https://rdap.verisign.com/com/v1/domain/ridewithgps.com",
              "seen": "2026-11-03"
            }
          ],
          "openQuestions": [
            "unchecked: support.ridewithgps.com, which answered 403, and changelog.ridewithgps.com, whose entries did not render; responsiveness rests on the API change log and the developer address.",
            "unchecked: OAuth token lifetime, refresh and PKCE, and basic auth token expiry and revocation, which the guide does not state and which need a client to observe.",
            "The pricing page renders plan tiers without figures to our reader; the figures come from llms.txt and the App Store listing and agree with each other.",
            "The terms name Ride with GPS, Inc (Delaware) and the App Store names Ride with GPS LLC; the privacy policy names neither. The listing uses the terms' name.",
            "firstReleased is 8 January 2025, the earliest change log entry. The API existed before that date; an earlier first-hand date was not found.",
            "The 6 October 2026 rename of friends_only to mutual_followers_only is not labelled breaking and the entry does not say whether the old value still works."
          ]
        },
        "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
        },
        "scoreHistory": [
          {
            "date": "2026-11-03",
            "grade": "E",
            "kind": "listed",
            "method": "0.7",
            "score": 45.2
          }
        ]
      },
      "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"
      },
      "notable": [
        "Public OpenAPI 3.0.1 file with 34 paths and 61 operations, 30 of them writes, on 3 November 2026; no 429 and one example in the file (https://ridewithgps.com/api/v1/openapi.yaml)",
        "The API Terms of Service, effective 11 September 2026, say anyone may use the API with an account and a client, commercial use is allowed, no attribution is required, and no fixed request limits apply today, with webhooks preferred to polling (https://ridewithgps.com/api/v1/doc/terms)",
        "The dated API change log records experiences endpoints on 14 October 2026, route and trip updates on 6 October, GPX, TCX, FIT and KML downloads on 3 September, uploads and tasks on 30 July, and a breaking change to route activity_types on 23 March 2026 with a migration map and no notice window (https://ridewithgps.com/api/v1/doc/change_log)",
        "Webhooks for route and trip create, update, delete, pin and unpin, signed with HMAC-SHA256 in x-rwgps-signature, up to 100 notifications a request, no retries and a 1-second response window (https://ridewithgps.com/api/v1/doc/webhooks)",
        "Club member, experience and point-of-interest endpoints are restricted to organisation accounts, which are priced by email (https://ridewithgps.com/organizations)",
        "No status page, since status.ridewithgps.com redirects to the home page. No security.txt (404). No entry in the official MCP registry (https://registry.modelcontextprotocol.io/v0/servers?search=ridewithgps)",
        "The terms of service of 1 July 2026 name Ride with GPS, Inc, a Delaware corporation, under Oregon law; the App Store seller is Ride with GPS LLC (https://ridewithgps.com/terms)"
      ],
      "area": "everyday",
      "details": [
        {
          "label": "Surface listed",
          "value": "The v1 REST API at https://ridewithgps.com/api/v1, read from the documentation, the OpenAPI file, the authentication and webhooks guides, the API terms, the change log, llms.txt, the general terms and privacy policy, the about, organisations and pricing pages, the App Store listing and the MCP registry on 3 November 2026. No account or API client was created and no request was authenticated"
        },
        {
          "label": "Endpoints",
          "value": "Users, authentication tokens, collections, events, photos, routes (list, show, create, update, polyline, GPX, TCX, FIT and KML export), trips (the same), sync, tasks, and for organisation accounts club members, experiences (codes, guests, guide pages, messages, packages) and points of interest"
        },
        {
          "label": "Credentials",
          "value": "api_key per client in x-rwgps-api-key; auth tokens from POST /api/v1/auth_tokens.json (email and password) or the dashboard; OAuth 2.0 authorisation code with scope `user` and a revoke endpoint. No PKCE, expiry or refresh documented"
        },
        {
          "label": "Formats and pagination",
          "value": "JSON only, with a .json suffix or content-type header. page and page_size (20 to 200) with meta.pagination (record_count, page_count, next_page_url). Filters for name, visibility, distance, elevation gain, archived and stationary"
        },
        {
          "label": "Errors",
          "value": "200, 201, 204, 400, 401, 403, 404, 422 and 500 with an `errors` array of strings. No 429 is documented"
        },
        {
          "label": "Rate limits",
          "value": "None fixed, per the API terms, which ask clients to request only what they need, cache, use webhooks and back off, and say limits may come later"
        },
        {
          "label": "Webhooks",
          "value": "Configured per API client for route and trip create, update, delete, pin and unpin, signed with HMAC-SHA256 of the body using the client secret. A 200 is expected within 1 second, no retries, redirects not followed"
        },
        {
          "label": "Plans",
          "value": "Starter free; Basic $9.99 a month or $59.99 a year; Premium $12.99 a month or $79.99 a year with a 7-day trial, per llms.txt and the App Store. Organisation accounts by email"
        },
        {
          "label": "Legal entity",
          "value": "Ride with GPS, Inc, a Delaware corporation, in the terms of 1 July 2026 under Oregon law; the App Store seller is Ride with GPS LLC. The privacy policy names neither"
        }
      ],
      "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,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Ride with GPS, Inc.",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "ridewithgps.com, registered 2007-04-16 (19 years)",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "ridewithgps.com",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Terms of service",
            "value": "read, states 2 of the 7 things a reader expects, and has 1 clause that costs points",
            "points": 3.7,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 7 of the 8 things a reader expects",
            "points": 9.3,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "People named",
            "value": "4 named with their role, none with a public profile",
            "points": 7,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Support route",
            "value": "a support address, help pages",
            "points": 5,
            "max": 5,
            "state": "ok"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://ridewithgps.com/api/v1/doc/terms",
            "state": "read",
            "readAt": "2026-11-03",
            "statedDate": "2026-09-11",
            "words": 928,
            "points": 3.7,
            "max": 10,
            "expected": [
              {
                "key": "terms.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Effective September 11, 2026",
                "says": "Last updated 2026-09-11"
              },
              {
                "key": "terms.law",
                "label": "Names the governing law or courts",
                "found": false
              },
              {
                "key": "terms.liability",
                "label": "States a limit on its liability",
                "found": false
              },
              {
                "key": "terms.termination",
                "label": "Says how the agreement or account can be ended",
                "found": true,
                "quote": "We may throttle, reject, or block traffic, suspend credentials, or end API access if we reasonably believe use is abusive, harmful, unlawful, deceptive, insecure, or likely to disrupt the API or Ride with GPS."
              },
              {
                "key": "terms.changes",
                "label": "Says how changes to the terms are announced",
                "found": false
              },
              {
                "key": "terms.use",
                "label": "Lists what users may not do",
                "found": false
              },
              {
                "key": "terms.sla",
                "label": "Refers to a service level or uptime commitment",
                "found": false
              }
            ],
            "toKnow": [
              {
                "key": "terms.nonotice",
                "label": "Says the terms or the service can change without notice",
                "found": true,
                "quote": "We may make changes without advance notice when needed for security, privacy, legal compliance, abuse prevention, or the health of the service.",
                "costsPoints": true
              },
              {
                "key": "terms.cutoff",
                "label": "Says access can be ended without notice or for any reason",
                "found": true,
                "quote": "We may act without advance notice when prompt action is needed to protect users, Ride with GPS, or others."
              }
            ],
            "notes": [
              {
                "date": "2026-11-03",
                "text": "The document is the API terms, which supplement the main Terms of Service where the warranty disclaimers and liability limits sit.",
                "quote": "The API is provided under the warranty disclaimers and limitations of liability in the Ride with GPS Terms of Service."
              },
              {
                "date": "2026-11-03",
                "text": "Commercial use of the API needs no paid plan, commercial agreement or prior approval.",
                "quote": "You do not need a paid Ride with GPS plan, a commercial agreement, or prior approval."
              },
              {
                "date": "2026-11-03",
                "text": "There are no fixed request rate limits at present, and the vendor may introduce them later.",
                "quote": "We do not currently impose fixed request rate limits."
              }
            ]
          },
          {
            "kind": "privacy",
            "url": "https://ridewithgps.com/privacy",
            "state": "read",
            "readAt": "2026-11-03",
            "statedDate": "2026-07-31",
            "words": 1649,
            "points": 9.3,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "This privacy policy was last updated on July 31, 2026.",
                "says": "Last updated 2026-07-31"
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": true,
                "quote": "When you create a Ride with GPS account or log in using a third-party service such as Google or Apple, we may collect your name, email address, and a unique identifier provided by the service."
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": true,
                "quote": "We retain your personal data, including account details and usage information, as long as it is necessary to facilitate your use of Ride with GPS.",
                "says": "For as long as needed, with no period named"
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "We may share personal information with trusted third-party service providers who perform services on our behalf, such as hosting, analytics, advertising and marketing measurement, payment processing, communications delivery, customer support, security, fraud prevention, and mapping or geospatial services (including pr…"
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": true,
                "quote": "Ride with GPS does not sell personal information as defined under California law.",
                "says": "Says it does not sell personal data"
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "You have the right to delete your account and related personal information at any time."
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": true,
                "quote": "If you have any questions or concerns regarding this privacy policy, or you wish to contact us, our contact information is as follows:"
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": false
              }
            ],
            "notes": [
              {
                "date": "2026-11-03",
                "text": "Content and accounts may be restricted or removed by automated systems with limited human involvement, occasionally in error.",
                "quote": "These systems may operate with limited human involvement and may occasionally remove content in error."
              }
            ]
          }
        ]
      },
      "humans": {
        "slug": "ride-with-gps",
        "checked": "2026-11-03",
        "company": "Ride with GPS, Inc.",
        "people": [
          {
            "name": "Zack Ham",
            "role": "Founder and CEO",
            "founder": true,
            "bio": "Zack Ham founded Ride with GPS in 2007 with Cullen King and is its CEO, per the company's about page.",
            "bioSources": [
              "https://ridewithgps.com/about"
            ],
            "page": "/people/zack-ham/"
          },
          {
            "name": "Cullen King",
            "role": "Founder and CTO",
            "founder": true,
            "bio": "Cullen King founded Ride with GPS in 2007 with Zack Ham and is its CTO, per the company's about page.",
            "bioSources": [
              "https://ridewithgps.com/about"
            ],
            "page": "/people/cullen-king/"
          },
          {
            "name": "Kevin Prentice",
            "role": "Director of Business Operations",
            "bioSources": [
              "https://ridewithgps.com/about"
            ],
            "page": "/people/kevin-prentice/"
          },
          {
            "name": "Helene Ridella",
            "role": "Director of Operations",
            "bioSources": [
              "https://ridewithgps.com/about"
            ],
            "page": "/people/helene-ridella/"
          }
        ],
        "peopleNote": "The about page, read 3 November 2026, names Zack Ham (Founder \u0026 CEO), Cullen King (Founder \u0026 CTO), Kevin Prentice (Director of Business Operations) and Helene Ridella (Director of Operations), gives 2007 as the founding year and says the company remains founder-owned. llms.txt adds Portland, Oregon. No personal LinkedIn, X or GitHub account is linked from a first-hand page, so none is recorded. Investors were looked for on the about page, llms.txt, the terms and privacy policy and the news page link; the about page says everything the company makes goes back into the platform and names no investor, so none is listed.",
        "companySocial": {
          "x": "https://x.com/ridewithgps"
        },
        "support": {
          "emails": [
            "developers@ridewithgps.com",
            "info@ridewithgps.com",
            "organizations@ridewithgps.com"
          ],
          "urls": [
            "https://support.ridewithgps.com/",
            "https://ridewithgps.com/contact",
            "https://ridewithgps.com/api/v1/doc"
          ],
          "contactEmails": [
            "info@ridewithgps.com"
          ],
          "contactUrls": [
            "https://ridewithgps.com/contact"
          ]
        },
        "sources": [
          "https://ridewithgps.com/about",
          "https://ridewithgps.com/llms.txt",
          "https://ridewithgps.com/api/v1/doc",
          "https://ridewithgps.com/privacy",
          "https://ridewithgps.com/terms",
          "https://ridewithgps.com/organizations",
          "https://apps.apple.com/us/app/ride-with-gps-bike-navigation/id893687399"
        ],
        "ownership": {
          "status": "private",
          "checked": "2026-11-03",
          "sources": [
            "https://ridewithgps.com/about",
            "https://ridewithgps.com/terms"
          ]
        }
      },
      "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"
      }
    },
    "verify": {
      "accepts": "a page on ridewithgps.com or one of its subdomains",
      "badgeUrl": "https://www.anchorterminal.com/badges/ride-with-gps.svg",
      "body": {
        "slug": "ride-with-gps",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/ride-with-gps",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/ride-with-gps\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/ride-with-gps.svg\" alt=\"Ride with GPS API on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Ride with GPS API on Anchor Terminal](https://www.anchorterminal.com/badges/ride-with-gps.svg)](https://www.anchorterminal.com/tools/ride-with-gps)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/ride-with-gps\"\u003eRide with GPS API on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/ride-with-gps",
    "json": "https://www.anchorterminal.com/tools/ride-with-gps.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/ride-with-gps.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "pricing": "https://www.anchorterminal.com/tools/ride-with-gps#pricing",
    "reviews": "https://www.anchorterminal.com/tools/ride-with-gps#reviews",
    "slim": "https://www.anchorterminal.com/tools/ride-with-gps.min.md"
  },
  "markdown": "## Overview\n\n**Grade E · 45.2/100 · rank #1139 of 1349 · #2 in Hobbies, sport \u0026 recreation · not agent-ready · confidence medium**\n\n\n## Assessment\n\nA 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## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Ride with GPS, Inc. (https://ridewithgps.com) |\n| Kind | HTTP API |\n| Category | Hobbies, sport \u0026 recreation (https://www.anchorterminal.com/categories/hobbies) |\n| Transport | HTTP |\n| Auth | OAuth or key · 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). |\n| Pricing | Freemium ($9.99 / mo) · 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. |\n| x402 | No · No x402, MPP or L402 in the API docs, OpenAPI file, API terms or llms.txt (checked 3 November 2026). |\n| Licence | Proprietary service under the Ride with GPS API Terms of Service (effective 11 September 2026) |\n| Tools exposed | 0 |\n| Docs | https://ridewithgps.com/api/v1/doc |\n| llms.txt | https://ridewithgps.com/llms.txt |\n| Last release | 2026-10-14 |\n| Surface listed | The v1 REST API at https://ridewithgps.com/api/v1, read from the documentation, the OpenAPI file, the authentication and webhooks guides, the API terms, the change log, llms.txt, the general terms and privacy policy, the about, organisations and pricing pages, the App Store listing and the MCP registry on 3 November 2026. No account or API client was created and no request was authenticated |\n| Endpoints | Users, authentication tokens, collections, events, photos, routes (list, show, create, update, polyline, GPX, TCX, FIT and KML export), trips (the same), sync, tasks, and for organisation accounts club members, experiences (codes, guests, guide pages, messages, packages) and points of interest |\n| Credentials | api_key per client in x-rwgps-api-key; auth tokens from POST /api/v1/auth_tokens.json (email and password) or the dashboard; OAuth 2.0 authorisation code with scope `user` and a revoke endpoint. No PKCE, expiry or refresh documented |\n| Formats and pagination | JSON only, with a .json suffix or content-type header. page and page_size (20 to 200) with meta.pagination (record_count, page_count, next_page_url). Filters for name, visibility, distance, elevation gain, archived and stationary |\n| Errors | 200, 201, 204, 400, 401, 403, 404, 422 and 500 with an `errors` array of strings. No 429 is documented |\n| Rate limits | None fixed, per the API terms, which ask clients to request only what they need, cache, use webhooks and back off, and say limits may come later |\n| Webhooks | Configured per API client for route and trip create, update, delete, pin and unpin, signed with HMAC-SHA256 of the body using the client secret. A 200 is expected within 1 second, no retries, redirects not followed |\n| Plans | Starter free; Basic $9.99 a month or $59.99 a year; Premium $12.99 a month or $79.99 a year with a 7-day trial, per llms.txt and the App Store. Organisation accounts by email |\n| Legal entity | Ride with GPS, Inc, a Delaware corporation, in the terms of 1 July 2026 under Oregon law; the App Store seller is Ride with GPS LLC. The privacy policy names neither |\n| Capabilities | hobbies.routes, hobbies.activities, hobbies.events |\n| Tags | hosted, oauth, api-key, openapi, llms-txt, free-tier, no-card, webhooks, closed-source, cycling |\n| JSON | https://www.anchorterminal.com/api/v1/tools/ride-with-gps.json |\n\n## Score breakdown (methodology v0.7, October 2026 research run)\n\nAssessed 2026-11-03 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 24 | 4.8 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 72 | 11.7 |\n| Agent ergonomics | 13% | 16.2 | 57 | 9.3 |\n| Security \u0026 auth | 14% | 17.5 | 30 | 5.2 |\n| Payments \u0026 pricing | 10% | 12.5 | 30 | 3.8 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 60 | 5.2 |\n| Transparency \u0026 trust (editorial 43, provenance 74) | 7% | 8.8 | 59 | 5.2 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **45.2 → E** |\n\n### Why each score\n\n- Reliability 24 (checked 2026-11-03): Read with the hosted lines. No status page, since status.ridewithgps.com answers 301 to the home page and the docs link none (0). No readable incident history (5). The API terms of 11 September 2026 say no fixed request limits currently apply and ask for caching, webhooks and backing off, so there are no numbers to publish (5 of 15). No 429 is documented in the docs or the OpenAPI file; the terms ask clients to back off on failures, uploads run as tasks to poll, and no idempotency key exists for the 30 write operations (4 of 15). No SLA (0). v1 is the current and only version with no beta label (10). 0 + 5 + 5 + 4 + 0 + 10 = 24.\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 72 (checked 2026-11-03): Public OpenAPI 3.0.1 file with 34 paths, 61 operations and 41 schemas (25). ridewithgps.com/llms.txt describes the product and plans but links no Markdown docs, and the documentation is HTML (5 of 10). Operation descriptions say which endpoints are organisation-only, that uploads and package builds return a task to poll, how experience codes replace each other and that deleting a member keeps their account; little on when not to use an operation (14 of 20). 18 enums, required fields and defaults in the file, but the Error schema is an array of strings (10 of 15). One example in the OpenAPI file, request and pagination examples on the docs pages, and a table of HTTP codes with the `errors` array shape (8 of 15). One version in the path, a rule that only incompatible changes create a new version, and a dated change log back to January 2025 (15). 25 + 5 + 14 + 10 + 8 + 15 = 72.\n- Agent ergonomics 57 (checked 2026-11-03): No field selection; polylines and track files sit on separate endpoints and page_size runs from 20 to 200 (12 of 25). page and page_size with meta.pagination, filters for name, visibility, distance, elevation gain, archived and stationary, and privacy_code for non-public items (20). Errors carry HTTP codes and an `errors` array of messages with no codes to branch on (10 of 20). Reads are safe to repeat and package builds return 409 while one runs, but no idempotency key covers creates, and deletes are not confirmed (8 of 20). Two headers and a .json suffix are all a request needs, with no official SDK (7 of 15). 12 + 20 + 10 + 8 + 7 = 57.\n- Security \u0026 auth 30 (checked 2026-11-03): OAuth 2.0 authorisation code flow with one scope, `user`, and a revoke endpoint, but no PKCE, expiry or refresh token is documented; basic auth tokens are minted from the account email and password with no documented expiry or revocation; credentials travel in headers (18 of 30). No read-only scope, and the 30 write operations, including deletes of routes, events, members and experiences, need no confirmation (4 of 20). Route names, descriptions, event text and experience messages are user content with no guidance on treating them as untrusted (5 of 15). The API clients page lists clients and tokens; no call log is documented (3 of 15). /.well-known/security.txt returns 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 18 + 4 + 5 + 3 + 0 = 30.\n- Payments \u0026 pricing 30 (checked 2026-11-03): Read with the hosted rubric. No x402, MPP or L402 (0). The API is free under the terms and the plan prices are stated in llms.txt and the App Store listing, but the pricing page shows no figures to our reader and organisation accounts, which the member, event, experience and point-of-interest endpoints need, are priced by email (10 of 20). A free Starter account and a free API client with no card (20). A person signs up and creates the API client in a browser, and basic auth tokens need the account password (0). 0 + 10 + 20 + 0 = 30.\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 60 (checked 2026-11-03): Read for a closed service. The newest change log entry is 14 October 2026 (30). Five dated entries since 4 August 2026, on 10 August, 3 September, 11 September, 6 October and 14 October (20). A dated change log, developers@ridewithgps.com and a Zendesk help centre that answered 403 to our reader; replies were not tested (10 of 15). No official SDK and no entry in the official MCP registry (0 of 15). No package or CI to judge (0 of 10). 30 + 20 + 10 + 0 + 0 = 60.\n- Transparency \u0026 trust 59 (checked 2026-11-03): Closed service with API terms effective 11 September 2026 and general terms of 1 July 2026 naming Ride with GPS, Inc under Oregon law; the App Store names Ride with GPS LLC (15 of 30). The privacy policy of 31 July 2026 gives no fixed retention periods, names Google Maps, Google and Apple and other providers only by category, and names no entity (12 of 30). The API terms promise reasonable advance notice of material changes through the change log or email, and the 23 March 2026 breaking change to activity_types shipped with a migration map and no notice window (10 of 20). Processing in the United States and other jurisdictions with safeguards where required; no subprocessor list (6 of 20). 15 + 12 + 10 + 6 = 43.\n\nFix list, everything this grade says the listing lacks, the biggest gain first (18 items). What it covers is at https://www.anchorterminal.com/fixes/ride-with-gps.md (JSON https://www.anchorterminal.com/fixes/ride-with-gps.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{\"listing\": \"ride-with-gps\", \"plan\": \"read\"}`, free while the beta runs\n\n### What we couldn't check\n\n- unchecked: support.ridewithgps.com, which answered 403, and changelog.ridewithgps.com, whose entries did not render; responsiveness rests on the API change log and the developer address.\n- unchecked: OAuth token lifetime, refresh and PKCE, and basic auth token expiry and revocation, which the guide does not state and which need a client to observe.\n- The pricing page renders plan tiers without figures to our reader; the figures come from llms.txt and the App Store listing and agree with each other.\n- The terms name Ride with GPS, Inc (Delaware) and the App Store names Ride with GPS LLC; the privacy policy names neither. The listing uses the terms' name.\n- firstReleased is 8 January 2025, the earliest change log entry. The API existed before that date; an earlier first-hand date was not found.\n- The 6 October 2026 rename of friends_only to mutual_followers_only is not labelled breaking and the entry does not say whether the old value still works.\n\n### Sources\n\n- API documentation: \u003chttps://ridewithgps.com/api/v1/doc\u003e (seen 2026-11-03)\n- OpenAPI 3.0.1 file: \u003chttps://ridewithgps.com/api/v1/openapi.yaml\u003e (seen 2026-11-03)\n- authentication guide: \u003chttps://ridewithgps.com/api/v1/doc/authentication\u003e (seen 2026-11-03)\n- webhooks guide: \u003chttps://ridewithgps.com/api/v1/doc/webhooks\u003e (seen 2026-11-03)\n- API Terms of Service (11 September 2026): \u003chttps://ridewithgps.com/api/v1/doc/terms\u003e (seen 2026-11-03)\n- API change log: \u003chttps://ridewithgps.com/api/v1/doc/change_log\u003e (seen 2026-11-03)\n- llms.txt: \u003chttps://ridewithgps.com/llms.txt\u003e (seen 2026-11-03)\n- terms of service (1 July 2026): \u003chttps://ridewithgps.com/terms\u003e (seen 2026-11-03)\n- privacy policy (31 July 2026): \u003chttps://ridewithgps.com/privacy\u003e (seen 2026-11-03)\n- pricing page: \u003chttps://ridewithgps.com/pricing\u003e (seen 2026-11-03)\n- organisation accounts: \u003chttps://ridewithgps.com/organizations\u003e (seen 2026-11-03)\n- about page: \u003chttps://ridewithgps.com/about\u003e (seen 2026-11-03)\n- App Store listing (prices, seller): \u003chttps://apps.apple.com/us/app/ride-with-gps-bike-navigation/id893687399\u003e (seen 2026-11-03)\n- status.ridewithgps.com (301 to home): \u003chttps://status.ridewithgps.com/\u003e (seen 2026-11-03)\n- security.txt (404): \u003chttps://ridewithgps.com/.well-known/security.txt\u003e (seen 2026-11-03)\n- robots.txt: \u003chttps://ridewithgps.com/robots.txt\u003e (seen 2026-11-03)\n- MCP registry search (empty): \u003chttps://registry.modelcontextprotocol.io/v0/servers?search=ridewithgps\u003e (seen 2026-11-03)\n- RDAP for ridewithgps.com: \u003chttps://rdap.verisign.com/com/v1/domain/ridewithgps.com\u003e (seen 2026-11-03)\n\n## Score history\n\nEvery move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/ride-with-gps/history.json\n\n- 2026-11-03: graded 45.2 E (methodology 0.7)\n\n## Who's behind it (provenance 74/100, checked 2026-11-03)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Ride with GPS, Inc. | 20/20 |\n| Domain age | ridewithgps.com, registered 2007-04-16 (19 years) | 15/15 |\n| Endpoint on the vendor's domain | ridewithgps.com | 15/15 |\n| Terms of service | read, states 2 of the 7 things a reader expects, and has 1 clause that costs points | 3.7/10 |\n| Privacy policy | read, states 7 of the 8 things a reader expects | 9.3/10 |\n| Status page | not found | 0/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n| People named | 4 named with their role, none with a public profile | 7/10 |\n| Support route | a support address, help pages | 5/5 |\n\nRide 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.\n\nAPI 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.\n\nridewithgps.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.\n\nstatus.ridewithgps.com answers 301 to the home page. /.well-known/security.txt returns 404.\n\nRDAP (Verisign) gives ridewithgps.com a creation date of 16 April 2007.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service** (https://ridewithgps.com/api/v1/doc/terms), read 2026-11-03, dated 2026-09-11, states 2 of the 7 things a reader expects.\n\n- To know. Says the terms or the service can change without notice (costs points). \"We may make changes without advance notice when needed for security, privacy, legal compliance, abuse prevention, or the health of the service.\"\n- To know. Says access can be ended without notice or for any reason. \"We may act without advance notice when prompt action is needed to protect users, Ride with GPS, or others.\"\n- Gives the date it was last updated. Last updated 2026-09-11.\n- Not found in the text. Names the governing law or courts.\n- Not found in the text. States a limit on its liability.\n- Not found in the text. Says how changes to the terms are announced.\n- Not found in the text. Lists what users may not do.\n- Not found in the text. Refers to a service level or uptime commitment.\n- Also in the text (2026-11-03). The document is the API terms, which supplement the main Terms of Service where the warranty disclaimers and liability limits sit. \"The API is provided under the warranty disclaimers and limitations of liability in the Ride with GPS Terms of Service.\"\n- Also in the text (2026-11-03). Commercial use of the API needs no paid plan, commercial agreement or prior approval. \"You do not need a paid Ride with GPS plan, a commercial agreement, or prior approval.\"\n- Also in the text (2026-11-03). There are no fixed request rate limits at present, and the vendor may introduce them later. \"We do not currently impose fixed request rate limits.\"\n\n**Privacy policy** (https://ridewithgps.com/privacy), read 2026-11-03, dated 2026-07-31, states 7 of the 8 things a reader expects.\n\n- Gives the date it was last updated. Last updated 2026-07-31.\n- Says how long data is kept. For as long as needed, with no period named.\n- Says whether personal data is sold or shared for advertising. Says it does not sell personal data.\n- Not found in the text. Says where data is transferred or stored.\n- Also in the text (2026-11-03). Content and accounts may be restricted or removed by automated systems with limited human involvement, occasionally in error. \"These systems may operate with limited human involvement and may occasionally remove content in error.\"\n\n## Humans behind the project (researched 2026-11-03 from public pages, not part of the grade)\n\n### Key people\n\n- Zack Ham, Founder and CEO\n- Cullen King, Founder and CTO\n- Kevin Prentice, Director of Business Operations\n- Helene Ridella, Director of Operations\n- Note: The about page, read 3 November 2026, names Zack Ham (Founder \u0026 CEO), Cullen King (Founder \u0026 CTO), Kevin Prentice (Director of Business Operations) and Helene Ridella (Director of Operations), gives 2007 as the founding year and says the company remains founder-owned. llms.txt adds Portland, Oregon. No personal LinkedIn, X or GitHub account is linked from a first-hand page, so none is recorded. Investors were looked for on the about page, llms.txt, the terms and privacy policy and the news page link; the about page says everything the company makes goes back into the platform and names no investor, so none is listed.\n- Ride with GPS, Inc.: X https://x.com/ridewithgps\n\n### Getting support\n\n- Support email: developers@ridewithgps.com\n- Support email: info@ridewithgps.com\n- Support email: organizations@ridewithgps.com\n- Help: https://support.ridewithgps.com/\n- Help: https://ridewithgps.com/contact\n- Help: https://ridewithgps.com/api/v1/doc\n- Sources: https://ridewithgps.com/about, https://ridewithgps.com/llms.txt, https://ridewithgps.com/api/v1/doc, https://ridewithgps.com/privacy, https://ridewithgps.com/terms, https://ridewithgps.com/organizations, https://apps.apple.com/us/app/ride-with-gps-bike-navigation/id893687399\n\n## Live (updated 2026-11-04 15:54 UTC)\n\n- security.txt: none\n- Always current: https://www.anchorterminal.com/api/v1/live/ride-with-gps.json\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Prices\n\n| Item | Price | Unit | Note |\n| --- | --- | --- | --- |\n| Basic plan | $9.99 | per month (plan) | $59.99 a year; the API itself is free |\n| Premium plan | $12.99 | per month (plan) | $79.99 a year, 7-day trial |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- Public OpenAPI 3.0.1 file with 34 paths and 61 operations, plus an llms.txt that states the plans and prices\n- API terms of 11 September 2026 allow commercial use with no fee, approval or attribution\n- 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\n- HMAC-SHA256 signed webhooks for route and trip changes, with a 100-notification batch and item URLs to fetch\n- Change log entries on 10 August, 3 September, 11 September, 6 October and 14 October 2026\n\n## Weaknesses\n\n- No status page or incident history; status.ridewithgps.com redirects to the home page\n- No rate limit figures, no 429 documented, and no idempotency keys on the 30 write operations\n- 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\n- The 23 March 2026 change to route activity_types was breaking, with a migration map but no notice period\n- Member, event, experience and point-of-interest endpoints need an organisation account priced by email\n\n\n\n## Before you call it (notes for agents)\n\n1. 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\n2. Append .json to endpoints or set `content-type: application/json`, and read the root key named after the resource (`route`, `trip`)\n3. 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\n4. 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\n5. 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\n\n## Connect\n\nFirst request:\n\n```bash\ncurl -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\"\n```\n\nThrough letme: https://letme.dev/ride-with-gps (letme picks it for hobbies.events, the top-graded tool for the job). letme answers with the pick and how to call it direct. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| Strava MCP Connector + API | E | 45.8 | 1125 | hobbies.activities, hobbies.routes | no | https://www.anchorterminal.com/tools/strava.md |\n| Ticketmaster Discovery API | E | 42.9 | 1176 | hobbies.events | no | https://www.anchorterminal.com/tools/ticketmaster.md |\n| Chess.com Published-Data API | E | 40.8 | 1207 | same category (Hobbies, sport \u0026 recreation) | no | https://www.anchorterminal.com/tools/chess-com.md |\n| Rebrickable | F | 34.7 | 1255 | same category (Hobbies, sport \u0026 recreation) | no | https://www.anchorterminal.com/tools/rebrickable.md |\n| Ravelry | F | 16.5 | 1311 | same category (Hobbies, sport \u0026 recreation) | no | https://www.anchorterminal.com/tools/ravelry.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- Public OpenAPI 3.0.1 file with 34 paths and 61 operations, 30 of them writes, on 3 November 2026; no 429 and one example in the file (source: \u003chttps://ridewithgps.com/api/v1/openapi.yaml\u003e)\n- The API Terms of Service, effective 11 September 2026, say anyone may use the API with an account and a client, commercial use is allowed, no attribution is required, and no fixed request limits apply today, with webhooks preferred to polling (source: \u003chttps://ridewithgps.com/api/v1/doc/terms\u003e)\n- The dated API change log records experiences endpoints on 14 October 2026, route and trip updates on 6 October, GPX, TCX, FIT and KML downloads on 3 September, uploads and tasks on 30 July, and a breaking change to route activity_types on 23 March 2026 with a migration map and no notice window (source: \u003chttps://ridewithgps.com/api/v1/doc/change_log\u003e)\n- Webhooks for route and trip create, update, delete, pin and unpin, signed with HMAC-SHA256 in x-rwgps-signature, up to 100 notifications a request, no retries and a 1-second response window (source: \u003chttps://ridewithgps.com/api/v1/doc/webhooks\u003e)\n- Club member, experience and point-of-interest endpoints are restricted to organisation accounts, which are priced by email (source: \u003chttps://ridewithgps.com/organizations\u003e)\n- No status page, since status.ridewithgps.com redirects to the home page. No security.txt (404). No entry in the official MCP registry (source: \u003chttps://registry.modelcontextprotocol.io/v0/servers?search=ridewithgps\u003e)\n- The terms of service of 1 July 2026 name Ride with GPS, Inc, a Delaware corporation, under Oregon law; the App Store seller is Ride with GPS LLC (source: \u003chttps://ridewithgps.com/terms\u003e)\n\n- #2 of 6 in 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## Compare\n\n- [Ride with GPS API vs Ticketmaster Discovery API](https://www.anchorterminal.com/compare/ride-with-gps-vs-ticketmaster.md): E 45.2 vs E 42.9\n- [Ride with GPS API vs Strava MCP Connector + API](https://www.anchorterminal.com/compare/ride-with-gps-vs-strava.md): E 45.2 vs E 45.8\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on ridewithgps.com or one of its subdomains. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"ride-with-gps\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/ride-with-gps\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/ride-with-gps.svg\" alt=\"Ride with GPS API on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Ride with GPS API on Anchor Terminal](https://www.anchorterminal.com/badges/ride-with-gps.svg)](https://www.anchorterminal.com/tools/ride-with-gps)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/ride-with-gps\"\u003eRide with GPS API on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Ride with GPS API is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/ride-with-gps-dark.png\n- Light: https://www.anchorterminal.com/assets/share/ride-with-gps-light.png\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": "https://www.anchorterminal.com/categories/hobbies"
      },
      {
        "name": "Ride with GPS API",
        "url": ""
      }
    ],
    "description": "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.",
    "facts": [
      "rank #1139 of 1349",
      "OAuth or key auth",
      "0 desk reviews"
    ],
    "h1": "Ride with GPS API",
    "image": "https://www.anchorterminal.com/assets/og/tools-ride-with-gps.png",
    "path": "/tools/ride-with-gps",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Ride with GPS review (2026): pricing, alternatives and grade E",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/tools/ride-with-gps"
  },
  "tokens": {
    "markdown": 7250,
    "slim": 1780
  },
  "version": 1
}
