{
  "data": {
    "a": {
      "slug": "ratehawk",
      "name": "ETG API (RateHawk)",
      "vendor": "Emerging Travel Group",
      "vendorUrl": "https://www.ratehawk.com",
      "kind": "http-api",
      "category": "travel",
      "summary": "Hotel search and booking API from Emerging Travel Group, the company behind RateHawk and ZenHotels. Contracted partners search rates, prebook, book and cancel stays over REST, with B2B, Affiliate and Content APIs.",
      "url": "https://www.anchorterminal.com/tools/ratehawk",
      "markdownUrl": "https://www.anchorterminal.com/tools/ratehawk.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ratehawk.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ratehawk.json",
      "repo": "https://github.com/EmergingTravel/papi-sdk-python",
      "license": "Proprietary service under a signed partner agreement that is not published. The Python and PHP SDKs on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.ratehawk.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "papi-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access is by partner approval. A person registers at ratehawk.com/registration, picks API integration as the purpose, then asks an account manager for credentials, and the docs say the relevant agreement must be signed before the API is used. Keys are `\u003cKEY_ID\u003e:\u003cAPI_KEY\u003e` pairs sent as HTTP Basic auth, issued separately for sandbox, test and production. A production key follows a written certification that the docs put at 14 to 30 days. Each key has its own endpoint permissions and request limits, readable at `/api/b2b/v3/overview/`.",
      "pricing": "byo-plan",
      "pricingNotes": "No public price list. Partners buy at net rates under contract and pay from a deposit with a credit limit, at the hotel or by card, depending on the rate. The landing page calls the API key free, and the sandbox makes no real bookings or charges, but a key comes from an account manager after registration, so an agent cannot start without a person and an agreement (checked 2026-10-08).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the Swagger file or the API landing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": null,
        "pypiWeekly": 12,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.emergingtravel.com/",
      "llmsTxt": "https://docs.emergingtravel.com/llms.txt",
      "openapi": "https://api.ratehawk.com/openapi.json",
      "capabilities": [
        "travel.stays",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "openapi",
        "llms-txt",
        "sandbox",
        "sales-led",
        "certification",
        "status-page",
        "python",
        "php",
        "eu"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53,
        "grade": "D",
        "agentReady": false,
        "rank": 820,
        "ranked": true,
        "rankOf": 1171,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 65,
          "payments": 10,
          "reliability": 45,
          "schema": 85,
          "security": 41,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Hotel search and booking are documented in a public Swagger 2.0 file, an llms.txt index and a changelog with 64 dated entries in 2026. Access is by contract. Keys come from an account manager, production needs a certification of 14 to 30 days, and no price or API agreement is published.",
        "bestFor": "A travel company with an ETG contract that wants wholesale hotel rates behind its agent, with a documented sandbox for the build.",
        "strengths": [
          "Public Swagger 2.0 file at `https://api.ratehawk.com/openapi.json` with 48 operations and 171 definitions for the B2B and Content APIs",
          "`llms.txt` and a Markdown copy of every docs page at `index.md`, with robots.txt allowing AI crawlers by name",
          "Changelog with 64 dated entries in 2026, the latest on 5 October 2026",
          "Sandbox host with over 2,000 test hotels, named error scenarios and no real bookings or charges",
          "`partner_order_id` identifies a booking across retries, and the docs say how to handle `timeout`, `unknown` and 5xx during booking"
        ],
        "weaknesses": [
          "No self-serve key. Registration is followed by a request to an account manager, and the docs say an agreement must be signed before use",
          "No public price list or API agreement was found. Rates and request limits are set per contract",
          "The status page's orders monitor recorded downtime of an hour or more on four days between 21 July and 14 September 2026, with no written incident reports",
          "Both official SDKs (Python and PHP) last changed in 2021 and default to `api.worldota.net`, a host the docs call deprecated",
          "No `security.txt`, disclosure policy or security certification page was found on ratehawk.com, emergingtravel.com or the docs site"
        ],
        "agentNotes": [
          "Call `/api/b2b/v3/overview/` first. It lists the endpoints the key may use and each one's request limit.",
          "Keep sandbox IDs, keys and hashes inside `api-sandbox.ratehawk.com`. Sandbox region IDs are limited to 2011, 2395, 2734 and 6053839.",
          "Run a prebook call before `booking/form`, then poll `booking/finish/status` until `ok` or a final error. Treat `timeout`, `unknown` and 5xx as still in progress.",
          "Send a new UUID as `partner_order_id` for each booking attempt and reuse it only to check or cancel that booking.",
          "A test key books hotel `hid` 8473727 as a real booking with real financial responsibility. Cancel it afterwards."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 65,
          "payments": 10,
          "reliability": 45,
          "schema": 85,
          "security": 41,
          "transparency": 32
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl --user '\u003cKEY_ID\u003e:\u003cAPI_KEY\u003e' 'https://api-sandbox.ratehawk.com/api/b2b/v3/overview/'"
      },
      "letme": {
        "capability": "https://letme.dev/travel.stays",
        "tool": "https://letme.dev/ratehawk"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Leaside Services Limited",
        "domain": "ratehawk.com",
        "domainRegistered": "2006-08-24",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://www.ratehawk.com/legal/site/privacy-policy/",
        "statusPage": "https://status.emergingtravel.com",
        "changelog": "https://docs.emergingtravel.com/docs/changelog/2026/",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "No terms document for the API is published. The docs say the relevant agreement must be signed before use, and the only public terms we found are website terms of use on emergingtravel.com, so the terms field is left out.",
          "The RateHawk legal notice names Leaside Services Limited, a Cyprus company with registration number HE 342401, at Ifigeneias 17, Strovolos, Nicosia. The privacy notice (version 1.0, updated 8 May 2026) gives the same company an address in Limassol and lists eight other Emerging Travel entities as controllers by contract.",
          "The API answers at api.ratehawk.com and api-sandbox.ratehawk.com. Card tokenisation is at api.payota.net and the docs are at docs.emergingtravel.com, both outside ratehawk.com.",
          "`/.well-known/security.txt` returned 404 on www.ratehawk.com, api.ratehawk.com, www.emergingtravel.com and docs.emergingtravel.com.",
          "RDAP gives ratehawk.com a registration date of 2006-08-24 and emergingtravel.com 2007-02-25."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ratehawk.json",
      "live": {
        "slug": "ratehawk",
        "probe": {
          "target": "https://api.ratehawk.com",
          "method": "get",
          "lastAt": "2026-10-19T09:34:41.888363067Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 130,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 131,
          "p95ms24h": 287,
          "samples24h": 256,
          "samples30d": 2654,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 102,
              "ok": 102
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.emergingtravel.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-19T09:04:22.451228069Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "EmergingTravel/papi-sdk-python",
            "version": "v1.1.1",
            "released": "2021-01-19",
            "seenAt": "2026-10-19T04:15:46.11426226Z"
          },
          {
            "registry": "pypi",
            "name": "papi-sdk",
            "version": "1.1.1",
            "released": "2021-01-19",
            "seenAt": "2026-10-19T04:15:45.921701678Z"
          }
        ],
        "githubStars": 9,
        "pypiWeekly": 2,
        "securityTxt": {
          "url": "https://ratehawk.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-18T15:53:17.850435772Z"
        },
        "llmsTxt": {
          "url": "https://docs.emergingtravel.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-18T14:25:56.126773271Z"
        },
        "domain": {
          "domain": "ratehawk.com",
          "registered": "2006-08-24",
          "source": "https://rdap.verisign.com/com/v1/domain/ratehawk.com",
          "checkedAt": "2026-10-18T13:29:27.379886761Z"
        },
        "pages": [
          {
            "url": "https://docs.emergingtravel.com/docs/changelog/2026/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-18T23:28:31.981484056Z",
            "changedAt": "2026-10-12T19:50:03.065480915Z",
            "fingerprint": "9ed74e6c98cc"
          },
          {
            "url": "https://www.ratehawk.com/legal/site/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-18T23:47:18.114923829Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8a56c91f2df9"
          }
        ],
        "github": {
          "repo": "emergingtravel/papi-sdk-python",
          "checkedAt": "2026-10-19T06:08:26.858549441Z",
          "stars": 9,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2021-10-25T07:40:13Z",
          "openIssues": 1,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 5,
            "unanswered": 1,
            "medianDays": 0.9
          }
        },
        "updatedAt": "2026-10-19T09:34:41.888363067Z"
      }
    },
    "answer": "ETG API (RateHawk) scores 53 (D) on agent readiness against Trainline's 8.6 (F), and leads in every scored category.",
    "b": {
      "slug": "trainline",
      "name": "Trainline",
      "vendor": "Trainline.com Limited",
      "vendorUrl": "https://www.thetrainline.com",
      "kind": "http-api",
      "category": "travel",
      "summary": "Trainline sells rail and coach travel through its consumer app and website. Its Partner Solutions Global API supports travel sellers, while the in-app Travel Assistant helps passengers with booked journeys and post-sales questions.",
      "url": "https://www.anchorterminal.com/tools/trainline",
      "markdownUrl": "https://www.anchorterminal.com/tools/trainline.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/trainline.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/trainline.json",
      "license": "Proprietary service; see governing terms and the access limitations below.",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Global API onboarding requires a commercial partnership and integration process. Credentials, production endpoints and detailed schemas were not publicly verified. Consumer app login does not grant API access.",
      "pricing": "paid",
      "pricingNotes": "Tickets and consumer fees vary by journey. Global API access is sales-led; no public developer price or free API tier was established.",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 route established in the documentation reviewed on 19 October 2026.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-19"
      },
      "docsUrl": "https://tps.thetrainline.com/our-products/global-api/",
      "capabilities": [
        "travel.search",
        "travel.booking"
      ],
      "tags": [
        "travel",
        "http-api",
        "paid"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 8.6,
        "grade": "F",
        "agentReady": false,
        "rank": 1162,
        "ranked": true,
        "rankOf": 1171,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 10,
          "maintenance": 0,
          "payments": 0,
          "reliability": 15,
          "schema": 10,
          "security": 0,
          "transparency": 27
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-19"
        },
        "negative": 0,
        "verdict": "Official partner API covers booking and aftersales. Partner approval and integration required.",
        "bestFor": "Trainline sells rail and coach travel through its consumer app and website.",
        "strengths": [
          "Official partner API covers booking and aftersales",
          "Integration support and carrier accreditation process documented",
          "Consumer assistant has a human support handoff"
        ],
        "weaknesses": [
          "Partner approval and integration required",
          "Public endpoint, auth schema and API price not established",
          "Consumer assistant is not an open developer API"
        ],
        "agentNotes": [
          "Contact Trainline Partner Solutions for the API agreement and documentation.",
          "Keep ticket purchases and refunds behind the traveller’s approval."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 1.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 8.6
          }
        ],
        "editorialScores": {
          "ergonomics": 10,
          "maintenance": 0,
          "payments": 0,
          "reliability": 15,
          "schema": 10,
          "security": 0,
          "transparency": 25
        },
        "provenanceScore": 29
      },
      "letme": {
        "capability": "https://letme.dev/travel.search",
        "tool": "https://letme.dev/trainline"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Trainline.com Limited",
        "domain": "thetrainline.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "https://www.thetrainline.com/terms/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-10-19",
        "notes": [
          "Domain registration was not checked. No ownership claim was verified."
        ],
        "score": 29
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/trainline.json"
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Emerging Travel Group",
        "b": "Trainline.com Limited",
        "name": "Vendor"
      },
      {
        "a": "https://api.ratehawk.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under a signed partner agreement that is not published. The Python and PHP SDKs on GitHub are MIT",
        "b": "Proprietary service; see governing terms and the access limitations below.",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-08",
        "b": "2026-09-29",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 stars, 12 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "1.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "ETG API (RateHawk) scores 53 (D) on agent readiness against Trainline's 8.6 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, ETG API (RateHawk) or Trainline?"
      },
      {
        "answer": "ETG API (RateHawk) needs an API key. Trainline takes an API key or an OAuth sign-in.",
        "question": "Do ETG API (RateHawk) and Trainline need an API key?"
      },
      {
        "answer": "ETG API (RateHawk) has a hosted endpoint at https://api.ratehawk.com. No hosted endpoint is listed for Trainline.",
        "question": "Can an agent call ETG API (RateHawk) and Trainline without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 45 against 15",
          "Schema \u0026 documentation, 85 against 10",
          "Agent ergonomics, 69 against 10",
          "Security \u0026 auth, 41 against 0",
          "Payments \u0026 pricing, 10 against 0",
          "Maintenance \u0026 community, 65 against 0",
          "Transparency \u0026 trust, 56 against 27"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A travel company with an ETG contract that wants wholesale hotel rates behind its agent, with a documented sandbox for the build.",
        "slug": "ratehawk",
        "watchFor": "No self-serve key. Registration is followed by a request to an account manager, and the docs say an agreement must be signed before use"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Trainline sells rail and coach travel through its consumer app and website.",
        "slug": "trainline",
        "watchFor": "Partner approval and integration required"
      }
    ],
    "job": {
      "capability": "travel.search",
      "name": "Travel search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-ratehawk.json",
        "title": "Booking.com Demand API vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-ratehawk.json",
        "title": "Duffel Flights and Stays API vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-ratehawk.json",
        "title": "Expedia Group Rapid API vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-ratehawk.json",
        "title": "Hotelbeds Hotel Booking API vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-ratehawk.json",
        "title": "LetsFG vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liteapi-vs-ratehawk.json",
        "title": "LiteAPI (Nuitee Connect) vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ratehawk-vs-skyscanner.json",
        "title": "ETG API (RateHawk) vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/ratehawk-vs-skyscanner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ratehawk-vs-travelport.json",
        "title": "ETG API (RateHawk) vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/ratehawk-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-trainline.json",
        "title": "Booking.com Demand API vs Trainline",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-trainline.json",
        "title": "Duffel Flights and Stays API vs Trainline",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-trainline.json",
        "title": "Expedia Group Rapid API vs Trainline",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-trainline.json",
        "title": "FlightClaw vs Trainline",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-trainline.json",
        "title": "Hotelbeds Hotel Booking API vs Trainline",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk.json",
        "title": "Kiwi.com MCP Server vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline.json",
        "title": "Kiwi.com MCP Server vs Trainline",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-trainline.json",
        "title": "LetsFG vs Trainline",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liteapi-vs-trainline.json",
        "title": "LiteAPI (Nuitee Connect) vs Trainline",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lola-vs-ratehawk.json",
        "title": "Lola vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/lola-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lola-vs-trainline.json",
        "title": "Lola vs Trainline",
        "url": "https://www.anchorterminal.com/compare/lola-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyscanner-vs-trainline.json",
        "title": "Skyscanner Travel APIs vs Trainline",
        "url": "https://www.anchorterminal.com/compare/skyscanner-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/trainline-vs-travelport.json",
        "title": "Trainline vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/trainline-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-ratehawk.json",
        "title": "FlightClaw vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-ratehawk"
      }
    ],
    "scores": [
      {
        "by": 30,
        "edge": "ratehawk",
        "key": "reliability",
        "name": "Reliability",
        "ratehawk": 45,
        "trainline": 15,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 75,
        "edge": "ratehawk",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "ratehawk": 85,
        "trainline": 10,
        "weight": 13
      },
      {
        "by": 59,
        "edge": "ratehawk",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "ratehawk": 69,
        "trainline": 10,
        "weight": 13
      },
      {
        "by": 41,
        "edge": "ratehawk",
        "key": "security",
        "name": "Security \u0026 auth",
        "ratehawk": 41,
        "trainline": 0,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "ratehawk",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "ratehawk": 10,
        "trainline": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 65,
        "edge": "ratehawk",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "ratehawk": 65,
        "trainline": 0,
        "weight": 7
      },
      {
        "by": 29,
        "edge": "ratehawk",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "ratehawk": 56,
        "trainline": 27,
        "weight": 7
      }
    ],
    "summary": "ETG API (RateHawk) scores 53 (D) on agent readiness against Trainline's 8.6 (F), and leads in every scored category. Both do travel search.",
    "tutorials": [
      {
        "title": "Check a RateHawk sandbox integration before booking",
        "tool": "ratehawk",
        "url": "https://www.anchorterminal.com/tutorials/ratehawk/"
      }
    ],
    "verdicts": {
      "ratehawk": "Hotel search and booking are documented in a public Swagger 2.0 file, an llms.txt index and a changelog with 64 dated entries in 2026. Access is by contract. Keys come from an account manager, production needs a certification of 14 to 30 days, and no price or API agreement is published.",
      "trainline": "Official partner API covers booking and aftersales. Partner approval and integration required."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/ratehawk-vs-trainline",
    "json": "https://www.anchorterminal.com/compare/ratehawk-vs-trainline.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/ratehawk-vs-trainline.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/ratehawk-vs-trainline.min.md"
  },
  "markdown": "ETG API (RateHawk) scores 53 (D) on agent readiness against Trainline's 8.6 (F), and leads in every scored category. Both do travel search.\n\n- ETG API (RateHawk): grade D, 53/100, rank #820 of 1171. Markdown https://www.anchorterminal.com/tools/ratehawk.md · JSON https://www.anchorterminal.com/api/v1/tools/ratehawk.json\n- Trainline: grade F, 8.6/100, rank #1162 of 1171. Markdown https://www.anchorterminal.com/tools/trainline.md · JSON https://www.anchorterminal.com/api/v1/tools/trainline.json\n- Best travel search and booking APIs for AI agents: https://www.anchorterminal.com/best/travel/index.md\n- All 78 travel comparisons: https://www.anchorterminal.com/compare/travel/index.md\n\n## Which one, for what\n\n### ETG API (RateHawk) (D)\n\nGood for: A travel company with an ETG contract that wants wholesale hotel rates behind its agent, with a documented sandbox for the build.\n\nAhead on:\n- Reliability, 45 against 15\n- Schema \u0026 documentation, 85 against 10\n- Agent ergonomics, 69 against 10\n- Security \u0026 auth, 41 against 0\n- Payments \u0026 pricing, 10 against 0\n- Maintenance \u0026 community, 65 against 0\n- Transparency \u0026 trust, 56 against 27\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No self-serve key. Registration is followed by a request to an account manager, and the docs say an agreement must be signed before use\n\n### Trainline (F)\n\nGood for: Trainline sells rail and coach travel through its consumer app and website.\n\nWatch for: Partner approval and integration required\n\n\n## Score by category\n\n| Category | Weight | ETG API (RateHawk) | Trainline | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 15 | ETG API (RateHawk) +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 10 | ETG API (RateHawk) +75 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 10 | ETG API (RateHawk) +59 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 0 | ETG API (RateHawk) +41 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 0 | ETG API (RateHawk) +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 0 | ETG API (RateHawk) +65 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 27 | ETG API (RateHawk) +29 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **53 · D** | **8.6 · F** | |\n\n## Facts side by side\n\n| Fact | ETG API (RateHawk) | Trainline |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Emerging Travel Group | Trainline.com Limited |\n| Hosted endpoint | `https://api.ratehawk.com` | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under a signed partner agreement that is not published. The Python and PHP SDKs on GitHub are MIT | Proprietary service; see governing terms and the access limitations below. |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-05 | none |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | 2026-05-08 | 2026-09-29 |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 9 stars, 12 PyPI/wk | none |\n| Agent reviews | none | 1.8/5 (4) |\n\n## Verdicts\n\n**ETG API (RateHawk).** Hotel search and booking are documented in a public Swagger 2.0 file, an llms.txt index and a changelog with 64 dated entries in 2026. Access is by contract. Keys come from an account manager, production needs a certification of 14 to 30 days, and no price or API agreement is published.\n\n**Trainline.** Official partner API covers booking and aftersales. Partner approval and integration required.\n\n## Before you call either\n\n### ETG API (RateHawk)\n\n1. Call `/api/b2b/v3/overview/` first. It lists the endpoints the key may use and each one's request limit.\n2. Keep sandbox IDs, keys and hashes inside `api-sandbox.ratehawk.com`. Sandbox region IDs are limited to 2011, 2395, 2734 and 6053839.\n3. Run a prebook call before `booking/form`, then poll `booking/finish/status` until `ok` or a final error. Treat `timeout`, `unknown` and 5xx as still in progress.\n4. Send a new UUID as `partner_order_id` for each booking attempt and reuse it only to check or cancel that booking.\n5. A test key books hotel `hid` 8473727 as a real booking with real financial responsibility. Cancel it afterwards.\n\n### Trainline\n\n1. Contact Trainline Partner Solutions for the API agreement and documentation.\n2. Keep ticket purchases and refunds behind the traveller’s approval.\n\n## Tutorials\n\n- [Check a RateHawk sandbox integration before booking](https://www.anchorterminal.com/tutorials/ratehawk/), for ETG API (RateHawk)\n\n## Questions\n\n### Which is better for AI agents, ETG API (RateHawk) or Trainline?\n\nETG API (RateHawk) scores 53 (D) on agent readiness against Trainline's 8.6 (F), and leads in every scored category.\n\n### Do ETG API (RateHawk) and Trainline need an API key?\n\nETG API (RateHawk) needs an API key. Trainline takes an API key or an OAuth sign-in.\n\n### Can an agent call ETG API (RateHawk) and Trainline without installing anything?\n\nETG API (RateHawk) has a hosted endpoint at https://api.ratehawk.com. No hosted endpoint is listed for Trainline.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/ratehawk-vs-trainline.json, and with the fewest tokens: https://www.anchorterminal.com/compare/ratehawk-vs-trainline.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"ratehawk\", \"b\": \"trainline\"}`. From a terminal: `anchor compare ratehawk trainline`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/ratehawk.json and https://www.anchorterminal.com/api/v1/tools/trainline.json\n\n## Other comparisons with ETG API (RateHawk) or Trainline\n\n- [Booking.com Demand API vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/booking-demand-api-vs-ratehawk.md)\n- [Duffel Flights and Stays API vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/duffel-vs-ratehawk.md)\n- [Expedia Group Rapid API vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/expedia-rapid-vs-ratehawk.md)\n- [Hotelbeds Hotel Booking API vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/hotelbeds-vs-ratehawk.md)\n- [LetsFG vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/letsfg-vs-ratehawk.md)\n- [LiteAPI (Nuitee Connect) vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/liteapi-vs-ratehawk.md)\n- [ETG API (RateHawk) vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/ratehawk-vs-skyscanner.md)\n- [ETG API (RateHawk) vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/ratehawk-vs-travelport.md)\n- [Booking.com Demand API vs Trainline](https://www.anchorterminal.com/compare/booking-demand-api-vs-trainline.md)\n- [Duffel Flights and Stays API vs Trainline](https://www.anchorterminal.com/compare/duffel-vs-trainline.md)\n- [Expedia Group Rapid API vs Trainline](https://www.anchorterminal.com/compare/expedia-rapid-vs-trainline.md)\n- [FlightClaw vs Trainline](https://www.anchorterminal.com/compare/flightclaw-vs-trainline.md)\n- [Hotelbeds Hotel Booking API vs Trainline](https://www.anchorterminal.com/compare/hotelbeds-vs-trainline.md)\n- [Kiwi.com MCP Server vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk.md)\n- [Kiwi.com MCP Server vs Trainline](https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline.md)\n- [LetsFG vs Trainline](https://www.anchorterminal.com/compare/letsfg-vs-trainline.md)\n- [LiteAPI (Nuitee Connect) vs Trainline](https://www.anchorterminal.com/compare/liteapi-vs-trainline.md)\n- [Lola vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/lola-vs-ratehawk.md)\n- [Lola vs Trainline](https://www.anchorterminal.com/compare/lola-vs-trainline.md)\n- [Skyscanner Travel APIs vs Trainline](https://www.anchorterminal.com/compare/skyscanner-vs-trainline.md)\n- [Trainline vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/trainline-vs-travelport.md)\n- [FlightClaw vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/flightclaw-vs-ratehawk.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-19",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ETG API (RateHawk) vs Trainline",
        "url": ""
      }
    ],
    "description": "ETG scores 53 (D) to Trainline's 8.6 (F) for travel search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ETG API (RateHawk) D 53",
      "Trainline F 8.6",
      "scores"
    ],
    "h1": "ETG API (RateHawk) vs Trainline",
    "image": "https://www.anchorterminal.com/assets/og/compare-ratehawk-vs-trainline.png",
    "path": "/compare/ratehawk-vs-trainline",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ETG vs Trainline for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-19",
    "url": "https://www.anchorterminal.com/compare/ratehawk-vs-trainline"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 580
  },
  "version": 1
}
