{
  "data": {
    "a": {
      "slug": "letsfg",
      "name": "LetsFG",
      "vendor": "LetsFG",
      "vendorUrl": "https://letsfg.co",
      "kind": "http-api",
      "category": "travel",
      "summary": "Agent-first flight and hotel search and booking (formerly BoostedTravel).",
      "url": "https://www.anchorterminal.com/tools/letsfg",
      "markdownUrl": "https://www.anchorterminal.com/tools/letsfg.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/letsfg.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/letsfg.json",
      "repo": "https://github.com/LetsFG/LetsFG",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://letsfg.co/developers/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "letsfg-mcp"
        },
        {
          "registry": "pypi",
          "name": "letsfg"
        }
      ],
      "auth": "mixed",
      "authNotes": "Two lanes. The hosted MCP uses OAuth 2.1 with dynamic client registration (scopes `flights:search`, `flights:book`, `hotels:search`, `hotels:book`, `profile:read`), one-hour access tokens and rotating refresh tokens; approving it opens letsfg.co/connect, and a card is only asked for at the first booking through a 0.00 Revolut set-up. The REST API takes an `X-API-Key` (`letsfg_...`) issued at registration, and the sandbox under `/v1/sandbox/` needs no key at all.",
      "pricing": "freemium",
      "pricingNotes": "Search is billed look-to-book. Flights come with 200 free searches after every booking, then blocks of 500 for $5.00 ($0.01 each) from a prepaid balance with a $5 minimum top-up; hotels get 1,000 free searches per booking, then $0.005 each. A search that returns nothing or fails doesn't count. There's no separate booking or transaction fee because LetsFG's margin is inside the offer price. For hotels that's the supplier's cost plus 6.4 per cent (Revolut Pay or an EEA card) or 8.3 per cent (a card issued elsewhere); the flight margin isn't published. Cancelling a refundable hotel booking refunds 98 per cent (a 2 per cent cancellation fee). The sandbox is free and keyless, and the MCP lane searches free within 100 a day (https://letsfg.co/developers, https://github.com/LetsFG/LetsFG/blob/main/skills/hotel-search/SKILL.md).",
      "priceSummary": "$0.01 / call",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 24,
      "popularity": {
        "githubStars": 2100,
        "npmWeekly": 157,
        "pypiWeekly": 260,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://letsfg.co/developers/api/docs",
      "llmsTxt": "https://letsfg.co/llms.txt",
      "openapi": "https://letsfg.co/developers/api/openapi.json",
      "registryName": "io.github.LetsFG/letsfg",
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "open-source",
        "python",
        "typescript",
        "freemium",
        "free-tier",
        "no-card",
        "prepaid",
        "eu"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64,
        "grade": "B",
        "agentReady": false,
        "rank": 287,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 88,
          "payments": 65,
          "reliability": 55,
          "schema": 83,
          "security": 66,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -7,
        "negativeNotes": [
          "-4, 2026-09-02 and 2026-09-08. Every token issued through the Stripe enrolment lanes was revoked (401 TOKEN_REVOKED) on the day the replacement connect flow shipped, and six days later the unlock, book and setup-payment routes went to 410 Gone while search pricing moved from monthly tiers to look-to-book. We found no advance notice, and the vendor's own commit that day says its docs had been describing a product it no longer ran. The 410 bodies name the replacement, so we deduct at the lower end. https://github.com/LetsFG/LetsFG/blob/main/docs/api-onboarding.md",
          "-3, current as of 2026-10-01. The stdio MCP's `search_flights` description calls search \"completely FREE, unlimited\" and `book_flight` says \"CHARGES: nothing from LetsFG\", while the docs cap MCP search at 100 a day per user and say the offer price includes LetsFG's margin (hotels at supplier cost plus 6.4 per cent, 8.3 per cent on non-EEA cards). https://github.com/LetsFG/LetsFG/blob/main/sdk/mcp/src/index.ts"
        ],
        "verdict": "Hosted MCP with OAuth 2.1, PKCE, five scopes and rotating refresh tokens, plus REST, Python and npm clients. Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions.",
        "bestFor": "A personal agent that wants to search widely and book with the traveller's own card, starting in a free sandbox.",
        "strengths": [
          "Hosted MCP with OAuth 2.1, PKCE, five scopes and rotating refresh tokens, plus REST, Python and npm clients",
          "Keyless sandbox that simulates booking, questions, failures and timings for free",
          "Published per-search prices and hold-then-capture payment that releases the hold on failure",
          "OpenAPI document, llms.txt and an errors page that maps each code to an action",
          "Named, verifiable legal entity with a privacy policy that lists retention periods and processors"
        ],
        "weaknesses": [
          "Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions",
          "September's Stripe-to-Revolut migration revoked tokens and retired routes with no notice we could find",
          "Tool descriptions call search unlimited and booking free of LetsFG charges, while search is capped and the margin is in the price",
          "No incident history or SLA; the status page shows connector health only",
          "Hotel results take about a minute and refundable hotel cancellations keep 2 per cent"
        ],
        "agentNotes": [
          "Start on `/v1/sandbox/` with no key; the booking states, questions and timings match production",
          "After `book_flight`, poll `get_flight_booking` every 20 to 30 seconds and answer questions before `expires_at_ms`; an unanswered price change fails the booking and releases the hold",
          "Honour `retry_after_seconds` on a 429. Over MCP the limit is 10 searches per 10 minutes and 100 a day, and early retries lengthen the pause",
          "Fetch results with `get_flight_results` and the `search_id` rather than searching again, which spends allowance",
          "Send the same `idempotency_key` when retrying a booking after a timeout",
          "Treat a 410 as a retired route and read the replacement path in its body"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 88,
          "payments": 65,
          "reliability": 55,
          "schema": 83,
          "security": 66,
          "transparency": 68
        },
        "provenanceScore": 61
      },
      "connect": {
        "install": "pip install letsfg",
        "http": "curl -X POST https://letsfg.co/developers/api/v1/sandbox/flights/search \\\n  -H \"X-API-Key: $LETSFG_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"origin\":\"LHR\",\"destination\":\"JFK\",\"date_from\":\"2026-11-10\",\"adults\":1,\"currency\":\"USD\"}'",
        "claudeCode": "claude mcp add --transport http letsfg https://letsfg.co/developers/api/mcp",
        "config": {
          "mcpServers": {
            "letsfg": {
              "args": [
                "-y",
                "letsfg-mcp"
              ],
              "command": "npx",
              "env": {
                "LETSFG_API_KEY": "${LETSFG_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/letsfg"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Flight search above allowance",
          "unit": "call",
          "usd": 0.01,
          "note": "sold in blocks of 500 for $5.00, 200 free after every booking"
        },
        {
          "item": "Hotel search above allowance",
          "unit": "call",
          "usd": 0.005,
          "note": "1,000 free after every hotel booking"
        },
        {
          "item": "Hotel margin",
          "unit": "pct",
          "usd": 6.4,
          "note": "inside the offer price over supplier cost; 8.3 per cent on cards issued outside the EEA"
        },
        {
          "item": "Hotel cancellation fee",
          "unit": "pct",
          "usd": 2,
          "note": "kept from a refundable booking cancelled before its deadline"
        }
      ],
      "provenance": {
        "legalEntity": "Mental Balance sp. z o.o.",
        "domain": "letsfg.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://letsfg.co/terms",
        "privacy": "https://letsfg.co/privacy",
        "statusPage": "https://letsfg.co/developers/connectors/health",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "Mental Balance Sp. z o.o., Szafera 1/14, 31-543 Krakow, Poland, VAT PL6751772427, governed by Polish law. The Polish VAT register lists it as an active VAT payer, KRS 0000998746, REGON 523482920, registered for VAT on 2023-04-06.",
          "The official MCP registry entry (io.github.LetsFG/letsfg, 2026.5.77) now carries the LetsFG name.",
          "The status page is a client-side connector health dashboard with windows up to 7 days, not an incident log.",
          "The .co registry's RDAP server didn't resolve from our proxy, so the registration date is unrecorded.",
          "letsfg.co/.well-known/security.txt returned 404 on 30 September; SECURITY.md in the repository names security@letsfg.co."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/letsfg.json",
      "live": {
        "slug": "letsfg",
        "probe": {
          "target": "https://letsfg.co/developers/api/v1",
          "method": "get",
          "lastAt": "2026-10-08T21:12:13.844603635Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 96,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 133,
          "p95ms24h": 308,
          "samples24h": 271,
          "samples30d": 1955,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 239,
              "ok": 239
            }
          ]
        },
        "vendorStatus": {
          "page": "https://letsfg.co/developers/connectors/health",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:45.004787918Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "LetsFG/LetsFG",
            "version": "v2026.5.103",
            "released": "2026-10-02",
            "seenAt": "2026-10-08T16:18:45.134348866Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.LetsFG/letsfg",
            "version": "2026.5.77",
            "seenAt": "2026-10-08T02:42:52.272076636Z"
          },
          {
            "registry": "npm",
            "name": "letsfg-mcp",
            "version": "2026.5.78",
            "seenAt": "2026-10-08T16:18:43.133274082Z"
          },
          {
            "registry": "pypi",
            "name": "letsfg",
            "version": "2026.5.103",
            "released": "2026-10-02",
            "seenAt": "2026-10-08T16:18:44.420232478Z"
          }
        ],
        "githubStars": 2122,
        "npmWeekly": 473,
        "pypiWeekly": 561,
        "securityTxt": {
          "url": "https://letsfg.co/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:45.916001288Z"
        },
        "llmsTxt": {
          "url": "https://letsfg.co/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:34.484633785Z"
        },
        "domain": {
          "domain": "letsfg.co",
          "checkedAt": "2026-10-04T13:08:11.061821195Z"
        },
        "pages": [
          {
            "url": "https://letsfg.co/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:32.943195847Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bc9de8636e2c"
          },
          {
            "url": "https://letsfg.co/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:35.219954776Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d6d29822c2bc"
          }
        ],
        "updatedAt": "2026-10-08T21:12:13.844603635Z"
      }
    },
    "answer": "LetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "travelport",
      "name": "Travelport TripServices APIs",
      "vendor": "Travelport",
      "vendorUrl": "https://www.travelport.com",
      "kind": "http-api",
      "category": "travel",
      "summary": "Travelport TripServices is a set of REST JSON APIs on the Travelport global distribution system. It searches, prices, books, tickets, exchanges and cancels flights, books and cancels hotel stays, and authorises payment cards, for travel sellers under contract.",
      "url": "https://www.anchorterminal.com/tools/travelport",
      "markdownUrl": "https://www.anchorterminal.com/tools/travelport.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/travelport.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/travelport.json",
      "license": "Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.travelport.net",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 with the password grant. A POST to `https://auth.travelport.net/oauth/token` (pre-production `https://auth.pp.travelport.net/oauth/token`) with `username`, `password`, `client_id` and `client_secret` returns a Bearer token valid for 24 hours. Every call also carries `XAUTH_TRAVELPORT_ACCESSGROUP` or `TVP-PCC-CORE`, which sets the point of sale and the content the caller may reach. Trial credentials are requested on a form at my.travelport.com and arrive by email. Production credentials come after a contract through sales and certification, and are managed in the Credential Access Manager in MyTravelport, which creates, rotates and disables primary and managed identities. No scopes were found.",
      "pricing": "paid",
      "pricingNotes": "No public price. The API and SDK Terms of Use say charges are set in each Developer Contract and invoiced monthly, and the docs send new customers to sales. A trial with no payment exists for building against realistic air shopping, requested through a form that asks for a name, work email and company. Production access is per contracted API after certification (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer portal, the three OpenAPI files or the terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.travelport.com/",
      "llmsTxt": "https://developer.travelport.com/llms.txt",
      "openapi": "https://developer.travelport.com/_bundle/apis/flights/@11.36/index.yaml",
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "enterprise",
        "sales-led",
        "oauth",
        "openapi",
        "llms-txt",
        "gds",
        "ndc",
        "trial"
      ],
      "lastRelease": "2026-08-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.9,
        "grade": "E",
        "agentReady": false,
        "rank": 653,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 20,
          "reliability": 19,
          "schema": 84,
          "security": 47,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission.",
        "bestFor": "A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.",
        "strengths": [
          "Public OpenAPI 3.0 files for Flights (101 operations), Stays (22) and Pay (2), with an llms.txt and a Markdown copy of every docs page",
          "One API family covers search, price, book, ticket, exchange, refund and void for flights, plus hotel search, booking and cancellation",
          "Trial credentials need no payment, and a separate pre-production host mirrors the production paths",
          "Dated Flights release notes, with four releases between 16 July and 12 August 2026",
          "Credential Access Manager rotates and disables identities, and managed identities give third parties their own credentials"
        ],
        "weaknesses": [
          "The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport",
          "No public price. Charges sit in a Developer Contract reached through sales, and production needs certification with 15 days' notice",
          "No status page, SLA or API rate limit was found. The only published limit is 50 token requests a second per IP",
          "Tokens come from the OAuth password grant with a username, password, client id and client secret, and no scopes were found",
          "No idempotency key, no SDK and no MCP server. Some failures arrive as HTTP 200 with an error object in the body"
        ],
        "agentNotes": [
          "Request one token and cache it for 24 hours. Travelport declines certification for refreshing more often than every 23 hours without a stated reason",
          "Send `Accept-Encoding: gzip, deflate` and `XAUTH_TRAVELPORT_ACCESSGROUP` (or `TVP-PCC-CORE`) on every call. Production traffic without compression is refused",
          "Send `offersPerPage` on a journey-based search, or later calls can't reference its results. Cached searches last 12 minutes for GDS content and 34 for NDC",
          "Commit a workbench within 30 minutes or it expires, and read `Result/Error` in the body even on HTTP 200",
          "Get written authorisation for agent access before production. The terms bar automated tools and speculative or duplicate bookings"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.9
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 20,
          "reliability": 19,
          "schema": 84,
          "security": 47,
          "transparency": 47
        },
        "provenanceScore": 57
      },
      "connect": {
        "http": "curl -X POST https://auth.pp.travelport.net/oauth/token \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=password\u0026username=$TP_USERNAME\u0026password=$TP_PASSWORD\u0026client_id=$TP_CLIENT_ID\u0026client_secret=$TP_CLIENT_SECRET\""
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/travelport"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Travelport, LP",
        "domain": "travelport.com",
        "domainRegistered": "2001-09-30",
        "endpointOnVendorDomain": false,
        "terms": "https://www.travelport.com/legal-policies/api-sdk-policies-terms-of-use",
        "privacy": "https://www.travelport.com/legal-policies/privacy",
        "statusPage": "",
        "changelog": "https://developer.travelport.com/docs/flights/general/flights-api-release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The API and SDK Terms of Use are incorporated into each Developer Contract, which names the contracting Travelport company and sets the charges. The contract itself is not public. Trial and pre-production access falls under the Terms of Service for Travelport test system access on the developer portal, governed by the law of Georgia, USA.",
          "The privacy link is the Travelport Privacy Notice for the GDS, last updated 3 January 2025, which covers traveller data processed in the Apollo, Galileo and Worldspan systems. It names Travelport, LP for the Data Privacy Framework, with offices in Langley, Berkshire and Atlanta, Georgia.",
          "The APIs answer on api.travelport.net and auth.travelport.net, a second domain named in Travelport's own docs. RDAP gives travelport.net a registration date of 2000-01-12 with Amazon Registrar, and travelport.com 2001-09-30 with CSC Corporate Domains.",
          "No status page is linked from the developer portal or the support page. status.travelport.com did not answer our request.",
          "www.travelport.com/.well-known/security.txt and the developer portal's both return 404. A Responsible Disclosure Policy dated June 2025 takes reports at responsibledisclosure@travelport.com and says there is no bug bounty.",
          "The portal's /changelog page is empty. Dated release notes are kept per API, and the Flights page was last modified on 16 September 2026."
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/travelport.json",
      "live": {
        "slug": "travelport",
        "probe": {
          "target": "https://api.travelport.net",
          "method": "get",
          "lastAt": "2026-10-08T21:12:23.884869501Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 132,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 132,
          "p95ms24h": 194,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "updatedAt": "2026-10-08T21:12:23.884869501Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "LetsFG",
        "b": "Travelport",
        "name": "Vendor"
      },
      {
        "a": "https://letsfg.co/developers/api/v1",
        "b": "https://api.travelport.net",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$0.01 per call",
        "b": "not published",
        "name": "Price for travel flights"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use",
        "name": "Licence"
      },
      {
        "a": "24",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.LetsFG/letsfg",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-14",
        "b": "2026-08-12",
        "name": "Last release"
      },
      {
        "a": "2026-09-19",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-19",
        "b": "2025-01-03",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.1k stars, 157 npm/wk, 260 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "LetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, LetsFG or Travelport TripServices APIs?"
      },
      {
        "answer": "LetsFG takes an API key or an OAuth sign-in. Travelport TripServices APIs uses an OAuth sign-in.",
        "question": "Do LetsFG and Travelport TripServices APIs need an API key?"
      },
      {
        "answer": "Yes. LetsFG has a hosted endpoint at https://letsfg.co/developers/api/v1 and Travelport TripServices APIs at https://api.travelport.net.",
        "question": "Can an agent call LetsFG and Travelport TripServices APIs without installing anything?"
      },
      {
        "answer": "LetsFG is open source (MIT). No open-source release is listed for Travelport TripServices APIs.",
        "question": "Are LetsFG and Travelport TripServices APIs open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 55 against 19",
          "Agent ergonomics, 83 against 51",
          "Security \u0026 auth, 66 against 47",
          "Payments \u0026 pricing, 65 against 20",
          "Maintenance \u0026 community, 88 against 56",
          "Transparency \u0026 trust, 65 against 52"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "A personal agent that wants to search widely and book with the traveller's own card, starting in a free sandbox.",
        "slug": "letsfg",
        "watchFor": "Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where LetsFG loses 7 points for them"
        ],
        "goodFor": "A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.",
        "slug": "travelport",
        "watchFor": "The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport"
      }
    ],
    "job": {
      "capability": "travel.flights",
      "name": "Travel flights"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-letsfg.json",
        "title": "Booking.com Demand API vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-travelport.json",
        "title": "Booking.com Demand API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-letsfg.json",
        "title": "Expedia Group Rapid API vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-travelport.json",
        "title": "Expedia Group Rapid API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-letsfg.json",
        "title": "Hotelbeds Hotel Booking API vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-travelport.json",
        "title": "Hotelbeds Hotel Booking API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-travelport"
      },
      {
        "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-travelport.json",
        "title": "LiteAPI (Nuitee Connect) vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-travelport"
      },
      {
        "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/duffel-vs-letsfg.json",
        "title": "Duffel Flights and Stays API vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-travelport.json",
        "title": "Duffel Flights and Stays API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-letsfg.json",
        "title": "FlightClaw vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-travelport.json",
        "title": "FlightClaw vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg.json",
        "title": "Kiwi.com MCP Server vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.json",
        "title": "Kiwi.com MCP Server vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-liteapi.json",
        "title": "LetsFG vs LiteAPI (Nuitee Connect)",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-liteapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.json",
        "title": "LetsFG vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyscanner-vs-travelport.json",
        "title": "Skyscanner Travel APIs vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/skyscanner-vs-travelport"
      }
    ],
    "scores": [
      {
        "by": 36,
        "edge": "letsfg",
        "key": "reliability",
        "letsfg": 55,
        "name": "Reliability",
        "travelport": 19,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "travelport",
        "key": "schema",
        "letsfg": 83,
        "name": "Schema \u0026 documentation",
        "travelport": 84,
        "weight": 13
      },
      {
        "by": 32,
        "edge": "letsfg",
        "key": "ergonomics",
        "letsfg": 83,
        "name": "Agent ergonomics",
        "travelport": 51,
        "weight": 13
      },
      {
        "by": 19,
        "edge": "letsfg",
        "key": "security",
        "letsfg": 66,
        "name": "Security \u0026 auth",
        "travelport": 47,
        "weight": 14
      },
      {
        "by": 45,
        "edge": "letsfg",
        "key": "payments",
        "letsfg": 65,
        "name": "Payments \u0026 pricing",
        "travelport": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "letsfg",
        "key": "maintenance",
        "letsfg": 88,
        "name": "Maintenance \u0026 community",
        "travelport": 56,
        "weight": 7
      },
      {
        "by": 13,
        "edge": "letsfg",
        "key": "transparency",
        "letsfg": 65,
        "name": "Transparency \u0026 trust",
        "travelport": 52,
        "weight": 7
      }
    ],
    "summary": "LetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Both do travel flights.",
    "verdicts": {
      "letsfg": "Hosted MCP with OAuth 2.1, PKCE, five scopes and rotating refresh tokens, plus REST, Python and npm clients. Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions.",
      "travelport": "Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/letsfg-vs-travelport",
    "json": "https://www.anchorterminal.com/compare/letsfg-vs-travelport.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/letsfg-vs-travelport.md",
    "slim": "https://www.anchorterminal.com/compare/letsfg-vs-travelport.min.md"
  },
  "markdown": "LetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Both do travel flights.\n\n- LetsFG: grade B, 64/100, rank #287 of 722. Markdown https://www.anchorterminal.com/tools/letsfg.md · JSON https://www.anchorterminal.com/api/v1/tools/letsfg.json\n- Travelport TripServices APIs: grade E, 45.9/100, rank #653 of 722. Markdown https://www.anchorterminal.com/tools/travelport.md · JSON https://www.anchorterminal.com/api/v1/tools/travelport.json\n\n## Which one, for what\n\n### LetsFG (B)\n\nGood for: A personal agent that wants to search widely and book with the traveller's own card, starting in a free sandbox.\n\nAhead on:\n- Reliability, 55 against 19\n- Agent ergonomics, 83 against 51\n- Security \u0026 auth, 66 against 47\n- Payments \u0026 pricing, 65 against 20\n- Maintenance \u0026 community, 88 against 56\n- Transparency \u0026 trust, 65 against 52\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n- Open source\n\nWatch for: Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions\n\n### Travelport TripServices APIs (E)\n\nGood for: A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.\n\nAlso in its favour:\n- No incidents deducted, where LetsFG loses 7 points for them\n\nWatch for: The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport\n\n\n## Score by category\n\n| Category | Weight | LetsFG | Travelport TripServices APIs | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 19 | LetsFG +36 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 84 | Travelport TripServices APIs +1 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 51 | LetsFG +32 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 47 | LetsFG +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 65 | 20 | LetsFG +45 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 56 | LetsFG +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 52 | LetsFG +13 |\n| Negative events | ≤15 | -7 | 0 | |\n| **Total** | | **64 · B** | **45.9 · E** | |\n\n## Facts side by side\n\n| Fact | LetsFG | Travelport TripServices APIs |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LetsFG | Travelport |\n| Hosted endpoint | `https://letsfg.co/developers/api/v1` | `https://api.travelport.net` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Paid |\n| Price for travel flights | $0.01 per call | not published |\n| x402 | no | no |\n| Licence | MIT | Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use |\n| Tools exposed | 24 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.LetsFG/letsfg` | not listed |\n| Last release | 2026-09-14 | 2026-08-12 |\n| Terms last updated | 2026-09-19 | no date given |\n| Privacy policy last updated | 2026-09-19 | 2025-01-03 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 2.1k stars, 157 npm/wk, 260 PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**LetsFG.** Hosted MCP with OAuth 2.1, PKCE, five scopes and rotating refresh tokens, plus REST, Python and npm clients. Tickets are bought by a LetsFG booking agent after the hold, 4 to 11 minutes per the docs, and bookings can pause with questions.\n\n**Travelport TripServices APIs.** Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission.\n\n## Before you call either\n\n### LetsFG\n\n1. Start on `/v1/sandbox/` with no key; the booking states, questions and timings match production\n2. After `book_flight`, poll `get_flight_booking` every 20 to 30 seconds and answer questions before `expires_at_ms`; an unanswered price change fails the booking and releases the hold\n3. Honour `retry_after_seconds` on a 429. Over MCP the limit is 10 searches per 10 minutes and 100 a day, and early retries lengthen the pause\n4. Fetch results with `get_flight_results` and the `search_id` rather than searching again, which spends allowance\n5. Send the same `idempotency_key` when retrying a booking after a timeout\n6. Treat a 410 as a retired route and read the replacement path in its body\n\n### Travelport TripServices APIs\n\n1. Request one token and cache it for 24 hours. Travelport declines certification for refreshing more often than every 23 hours without a stated reason\n2. Send `Accept-Encoding: gzip, deflate` and `XAUTH_TRAVELPORT_ACCESSGROUP` (or `TVP-PCC-CORE`) on every call. Production traffic without compression is refused\n3. Send `offersPerPage` on a journey-based search, or later calls can't reference its results. Cached searches last 12 minutes for GDS content and 34 for NDC\n4. Commit a workbench within 30 minutes or it expires, and read `Result/Error` in the body even on HTTP 200\n5. Get written authorisation for agent access before production. The terms bar automated tools and speculative or duplicate bookings\n\n## Questions\n\n### Which is better for AI agents, LetsFG or Travelport TripServices APIs?\n\nLetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories.\n\n### Do LetsFG and Travelport TripServices APIs need an API key?\n\nLetsFG takes an API key or an OAuth sign-in. Travelport TripServices APIs uses an OAuth sign-in.\n\n### Can an agent call LetsFG and Travelport TripServices APIs without installing anything?\n\nYes. LetsFG has a hosted endpoint at https://letsfg.co/developers/api/v1 and Travelport TripServices APIs at https://api.travelport.net.\n\n### Are LetsFG and Travelport TripServices APIs open source?\n\nLetsFG is open source (MIT). No open-source release is listed for Travelport TripServices APIs.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/letsfg-vs-travelport.json, and with the fewest tokens: https://www.anchorterminal.com/compare/letsfg-vs-travelport.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"letsfg\", \"b\": \"travelport\"}`. From a terminal: `anchor compare letsfg travelport`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/letsfg.json and https://www.anchorterminal.com/api/v1/tools/travelport.json\n\n## Other comparisons with LetsFG or Travelport TripServices APIs\n\n- [Booking.com Demand API vs LetsFG](https://www.anchorterminal.com/compare/booking-demand-api-vs-letsfg.md)\n- [Booking.com Demand API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/booking-demand-api-vs-travelport.md)\n- [Expedia Group Rapid API vs LetsFG](https://www.anchorterminal.com/compare/expedia-rapid-vs-letsfg.md)\n- [Expedia Group Rapid API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/expedia-rapid-vs-travelport.md)\n- [Hotelbeds Hotel Booking API vs LetsFG](https://www.anchorterminal.com/compare/hotelbeds-vs-letsfg.md)\n- [Hotelbeds Hotel Booking API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/hotelbeds-vs-travelport.md)\n- [LetsFG vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/letsfg-vs-ratehawk.md)\n- [LiteAPI (Nuitee Connect) vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/liteapi-vs-travelport.md)\n- [ETG API (RateHawk) vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/ratehawk-vs-travelport.md)\n- [Duffel Flights and Stays API vs LetsFG](https://www.anchorterminal.com/compare/duffel-vs-letsfg.md)\n- [Duffel Flights and Stays API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/duffel-vs-travelport.md)\n- [FlightClaw vs LetsFG](https://www.anchorterminal.com/compare/flightclaw-vs-letsfg.md)\n- [FlightClaw vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/flightclaw-vs-travelport.md)\n- [Kiwi.com MCP Server vs LetsFG](https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg.md)\n- [Kiwi.com MCP Server vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.md)\n- [LetsFG vs LiteAPI (Nuitee Connect)](https://www.anchorterminal.com/compare/letsfg-vs-liteapi.md)\n- [LetsFG vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.md)\n- [Skyscanner Travel APIs vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/skyscanner-vs-travelport.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LetsFG vs Travelport TripServices APIs",
        "url": ""
      }
    ],
    "description": "LetsFG scores 64 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Both do travel flights. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LetsFG B 64",
      "Travelport TripServices APIs E 45.9",
      "scores"
    ],
    "h1": "LetsFG vs Travelport TripServices APIs",
    "image": "https://www.anchorterminal.com/assets/og/compare-letsfg-vs-travelport.png",
    "path": "/compare/letsfg-vs-travelport",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LetsFG vs Travelport TripServices APIs for AI agents, B 64 vs E 45.9",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/letsfg-vs-travelport"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 680
  },
  "version": 1
}
