{
  "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 Skyscanner Travel APIs's 45.6 (E), and leads in every scored category.",
    "b": {
      "slug": "skyscanner",
      "name": "Skyscanner Travel APIs",
      "vendor": "Skyscanner Limited",
      "vendorUrl": "https://www.partners.skyscanner.net/product/travel-api",
      "kind": "http-api",
      "category": "travel",
      "summary": "Skyscanner's partner APIs for flight, hotel and car hire search, with live and indicative prices, hotel content and reviews, and deep links that send travellers to airlines and travel agents to book. Access is by application.",
      "url": "https://www.anchorterminal.com/tools/skyscanner",
      "markdownUrl": "https://www.anchorterminal.com/tools/skyscanner.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/skyscanner.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/skyscanner.json",
      "license": "Proprietary service. The API terms are in the partner contract and are not public",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://partners.api.skyscanner.net",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Partner approval. A business applies at https://www.partners.skyscanner.net/contact/travel-api, Skyscanner reviews each application within two weeks, and an account manager issues the key after a commercial agreement and onboarding on impact.com. The key goes in the `x-api-key` header on every call. Rate limits are set per key. No scopes, self-serve rotation or OAuth were found in the docs.",
      "pricing": "free",
      "pricingNotes": "No usage fee. Skyscanner's partner help centre says the Travel APIs carry no per-booking, monthly or yearly fee and that partners earn a revenue share on bookings, tracked through Impact. The share is not published. There is no sandbox, trial or test key, and access starts only after an approved application and a commercial agreement (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the API reference or the partner pages (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.skyscanner.net/docs/intro",
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "partner-only",
        "api-key",
        "metasearch",
        "flights",
        "hotels",
        "car-hire",
        "affiliate",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.6,
        "grade": "E",
        "agentReady": false,
        "rank": 655,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 60,
          "payments": 25,
          "reliability": 35,
          "schema": 56,
          "security": 48,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Thirteen documented search APIs cover flights, hotels and car hire behind one `x-api-key` header, with default rate limits published per endpoint and no usage fee. Access needs an approved application, an audience above 100,000 monthly users and a commercial agreement, and the usage guidelines bar live-price calls made without a user action. Booking happens on supplier sites.",
        "bestFor": "An established travel site or app with a large audience that wants metasearch prices across flights, hotels and car hire and is content to send users to suppliers to book.",
        "strengths": [
          "Thirteen APIs and 21 operations cover flights, hotels and car hire, with live and indicative prices, hotel content, reviews, geography and autosuggest",
          "Default rate limits are published per endpoint, per second, minute and hour, such as 100 flight search creates a minute and 500 polls",
          "Skyscanner states the Travel APIs carry no per-booking, monthly or yearly fee, and partners earn a revenue share on bookings",
          "The docs changelog is dated and current, with four entries between 14 July and 1 October 2026",
          "Public bug bounty on Bugcrowd and a security.txt on www.skyscanner.net that runs to November 2030"
        ],
        "weaknesses": [
          "Keys are issued only after an application review and a commercial agreement, with a stated minimum of 100,000 monthly active users",
          "The usage guidelines say live pricing calls are made only on user-generated requests, and automated calls without a user action are not permitted",
          "No booking, change or cancel calls. Every result carries a deep link and the traveller books on the supplier's site",
          "No downloadable OpenAPI file, SDK or code samples were found, and `llms.txt` on the docs host returns 403",
          "No status page, SLA or public API terms were found. The API terms sit in the partner's contract on impact.com"
        ],
        "agentNotes": [
          "Send the key in the `x-api-key` header on every call to `https://partners.api.skyscanner.net`. CORS is not supported, so call from a server",
          "Create a live search only when a user has given origin, destination and exact dates. Use the indicative price endpoints for open-ended questions",
          "Poll `/search/poll/{sessionToken}` until `status` is `RESULT_STATUS_COMPLETE`, and replace earlier results only when `action` is `RESULT_ACTION_REPLACED`",
          "Start a new session when a poll returns 400. Flight session tokens last about an hour and hotel sessions at most 15 minutes",
          "Pass each `deepLink` to the traveller unchanged, since altered encoding breaks Impact tracking, and never put personal data in `subid2`"
        ],
        "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.6
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 60,
          "payments": 25,
          "reliability": 35,
          "schema": 56,
          "security": 48,
          "transparency": 28
        },
        "provenanceScore": 76
      },
      "connect": {
        "http": "curl --request POST 'https://partners.api.skyscanner.net/apiservices/v3/flights/live/search/create' \\\n  --header 'x-api-key: your-api-key' \\\n  --data '{\"query\":{\"market\":\"UK\",\"locale\":\"en-GB\",\"currency\":\"GBP\",\"queryLegs\":[{\"originPlaceId\":{\"iata\":\"LHR\"},\"destinationPlaceId\":{\"iata\":\"SIN\"},\"date\":{\"year\":2024,\"month\":12,\"day\":22}}],\"adults\":1,\"cabinClass\":\"CABIN_CLASS_ECONOMY\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/skyscanner"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Skyscanner Limited",
        "domain": "skyscanner.net",
        "domainRegistered": "2002-07-03",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://www.skyscanner.net/media/privacy-policy",
        "statusPage": "",
        "changelog": "https://developers.skyscanner.net/docs/change-log",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy and terms of service name Skyscanner Limited, company number 04217916, registered in England and Wales.",
          "No `terms` URL is given. The partner help centre says the Skyscanner API Terms and Conditions are in the partner's contract on impact.com, and the only public terms are the website terms of service at https://www.skyscanner.net/media/terms-of-service.",
          "The privacy policy is Skyscanner's general one for its platforms and travellers. No separate privacy notice or DPA for API partners was found.",
          "The API answers at partners.api.skyscanner.net. Deep links pass through skyscanner.pxf.io, an Impact tracking domain.",
          "https://www.skyscanner.net/.well-known/security.txt lists security@skyscanner.net and the Bugcrowd programme and expires 2030-11-20. The same path returns 403 on developers.skyscanner.net and 404 on www.partners.skyscanner.net.",
          "No status page is linked from the developer docs or the partner site. Requests to status.skyscanner.net did not connect from our network.",
          "RDAP for skyscanner.net gives a registration date of 2002-07-03."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/skyscanner.json",
      "live": {
        "slug": "skyscanner",
        "probe": {
          "target": "https://partners.api.skyscanner.net",
          "method": "get",
          "lastAt": "2026-10-08T21:12:21.721422508Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 70,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 73,
          "p95ms24h": 100,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "updatedAt": "2026-10-08T21:12:21.721422508Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "LetsFG",
        "b": "Skyscanner Limited",
        "name": "Vendor"
      },
      {
        "a": "https://letsfg.co/developers/api/v1",
        "b": "https://partners.api.skyscanner.net",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "$0.01 per call",
        "b": "free",
        "name": "Price for travel flights"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary service. The API terms are in the partner contract and are not public",
        "name": "Licence"
      },
      {
        "a": "24",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "io.github.LetsFG/letsfg",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-14",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-09-19",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-19",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "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 Skyscanner Travel APIs's 45.6 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, LetsFG or Skyscanner Travel APIs?"
      },
      {
        "answer": "Skyscanner Travel APIs, at free against $0.01 per call for LetsFG. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for travel flights, LetsFG or Skyscanner Travel APIs?"
      },
      {
        "answer": "LetsFG takes an API key or an OAuth sign-in. Skyscanner Travel APIs needs an API key.",
        "question": "Do LetsFG and Skyscanner Travel APIs need an API key?"
      },
      {
        "answer": "Yes. LetsFG has a hosted endpoint at https://letsfg.co/developers/api/v1 and Skyscanner Travel APIs at https://partners.api.skyscanner.net.",
        "question": "Can an agent call LetsFG and Skyscanner Travel APIs without installing anything?"
      },
      {
        "answer": "LetsFG is open source (MIT). No open-source release is listed for Skyscanner Travel APIs.",
        "question": "Are LetsFG and Skyscanner Travel APIs open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 55 against 35",
          "Schema \u0026 documentation, 83 against 56",
          "Agent ergonomics, 83 against 50",
          "Security \u0026 auth, 66 against 48",
          "Payments \u0026 pricing, 65 against 25",
          "Maintenance \u0026 community, 88 against 60",
          "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": "An established travel site or app with a large audience that wants metasearch prices across flights, hotels and car hire and is content to send users to suppliers to book.",
        "slug": "skyscanner",
        "watchFor": "Keys are issued only after an application review and a commercial agreement, with a stated minimum of 100,000 monthly active users"
      }
    ],
    "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-skyscanner.json",
        "title": "Booking.com Demand API vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-skyscanner"
      },
      {
        "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-skyscanner.json",
        "title": "Expedia Group Rapid API vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-skyscanner"
      },
      {
        "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-skyscanner.json",
        "title": "Hotelbeds Hotel Booking API vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-skyscanner"
      },
      {
        "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-skyscanner.json",
        "title": "LiteAPI (Nuitee Connect) vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-skyscanner"
      },
      {
        "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/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-skyscanner.json",
        "title": "Duffel Flights and Stays API vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-skyscanner"
      },
      {
        "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-skyscanner.json",
        "title": "FlightClaw vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-skyscanner"
      },
      {
        "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-skyscanner.json",
        "title": "Kiwi.com MCP Server vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner"
      },
      {
        "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-travelport.json",
        "title": "LetsFG vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-travelport"
      },
      {
        "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": 20,
        "edge": "letsfg",
        "key": "reliability",
        "letsfg": 55,
        "name": "Reliability",
        "skyscanner": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "letsfg",
        "key": "schema",
        "letsfg": 83,
        "name": "Schema \u0026 documentation",
        "skyscanner": 56,
        "weight": 13
      },
      {
        "by": 33,
        "edge": "letsfg",
        "key": "ergonomics",
        "letsfg": 83,
        "name": "Agent ergonomics",
        "skyscanner": 50,
        "weight": 13
      },
      {
        "by": 18,
        "edge": "letsfg",
        "key": "security",
        "letsfg": 66,
        "name": "Security \u0026 auth",
        "skyscanner": 48,
        "weight": 14
      },
      {
        "by": 40,
        "edge": "letsfg",
        "key": "payments",
        "letsfg": 65,
        "name": "Payments \u0026 pricing",
        "skyscanner": 25,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "edge": "letsfg",
        "key": "maintenance",
        "letsfg": 88,
        "name": "Maintenance \u0026 community",
        "skyscanner": 60,
        "weight": 7
      },
      {
        "by": 13,
        "edge": "letsfg",
        "key": "transparency",
        "letsfg": 65,
        "name": "Transparency \u0026 trust",
        "skyscanner": 52,
        "weight": 7
      }
    ],
    "summary": "LetsFG scores 64 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category. 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.",
      "skyscanner": "Thirteen documented search APIs cover flights, hotels and car hire behind one `x-api-key` header, with default rate limits published per endpoint and no usage fee. Access needs an approved application, an audience above 100,000 monthly users and a commercial agreement, and the usage guidelines bar live-price calls made without a user action. Booking happens on supplier sites."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner",
    "json": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.md",
    "slim": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.min.md"
  },
  "markdown": "LetsFG scores 64 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category. 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- Skyscanner Travel APIs: grade E, 45.6/100, rank #655 of 722. Markdown https://www.anchorterminal.com/tools/skyscanner.md · JSON https://www.anchorterminal.com/api/v1/tools/skyscanner.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 35\n- Schema \u0026 documentation, 83 against 56\n- Agent ergonomics, 83 against 50\n- Security \u0026 auth, 66 against 48\n- Payments \u0026 pricing, 65 against 25\n- Maintenance \u0026 community, 88 against 60\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### Skyscanner Travel APIs (E)\n\nGood for: An established travel site or app with a large audience that wants metasearch prices across flights, hotels and car hire and is content to send users to suppliers to book.\n\nAlso in its favour:\n- No incidents deducted, where LetsFG loses 7 points for them\n\nWatch for: Keys are issued only after an application review and a commercial agreement, with a stated minimum of 100,000 monthly active users\n\n\n## Score by category\n\n| Category | Weight | LetsFG | Skyscanner Travel APIs | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 35 | LetsFG +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 56 | LetsFG +27 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 50 | LetsFG +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 48 | LetsFG +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 65 | 25 | LetsFG +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 60 | LetsFG +28 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 52 | LetsFG +13 |\n| Negative events | ≤15 | -7 | 0 | |\n| **Total** | | **64 · B** | **45.6 · E** | |\n\n## Facts side by side\n\n| Fact | LetsFG | Skyscanner Travel APIs |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LetsFG | Skyscanner Limited |\n| Hosted endpoint | `https://letsfg.co/developers/api/v1` | `https://partners.api.skyscanner.net` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Free |\n| Price for travel flights | $0.01 per call | free |\n| x402 | no | no |\n| Licence | MIT | Proprietary service. The API terms are in the partner contract and are not public |\n| Tools exposed | 24 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | `io.github.LetsFG/letsfg` | not listed |\n| Last release | 2026-09-14 | 2026-10-01 |\n| Terms last updated | 2026-09-19 | no document linked |\n| Privacy policy last updated | 2026-09-19 | no date given |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | 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**Skyscanner Travel APIs.** Thirteen documented search APIs cover flights, hotels and car hire behind one `x-api-key` header, with default rate limits published per endpoint and no usage fee. Access needs an approved application, an audience above 100,000 monthly users and a commercial agreement, and the usage guidelines bar live-price calls made without a user action. Booking happens on supplier sites.\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### Skyscanner Travel APIs\n\n1. Send the key in the `x-api-key` header on every call to `https://partners.api.skyscanner.net`. CORS is not supported, so call from a server\n2. Create a live search only when a user has given origin, destination and exact dates. Use the indicative price endpoints for open-ended questions\n3. Poll `/search/poll/{sessionToken}` until `status` is `RESULT_STATUS_COMPLETE`, and replace earlier results only when `action` is `RESULT_ACTION_REPLACED`\n4. Start a new session when a poll returns 400. Flight session tokens last about an hour and hotel sessions at most 15 minutes\n5. Pass each `deepLink` to the traveller unchanged, since altered encoding breaks Impact tracking, and never put personal data in `subid2`\n\n## Questions\n\n### Which is better for AI agents, LetsFG or Skyscanner Travel APIs?\n\nLetsFG scores 64 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category.\n\n### Which is cheaper for travel flights, LetsFG or Skyscanner Travel APIs?\n\nSkyscanner Travel APIs, at free against $0.01 per call for LetsFG. These are the vendors' published prices for the job.\n\n### Do LetsFG and Skyscanner Travel APIs need an API key?\n\nLetsFG takes an API key or an OAuth sign-in. Skyscanner Travel APIs needs an API key.\n\n### Can an agent call LetsFG and Skyscanner Travel APIs without installing anything?\n\nYes. LetsFG has a hosted endpoint at https://letsfg.co/developers/api/v1 and Skyscanner Travel APIs at https://partners.api.skyscanner.net.\n\n### Are LetsFG and Skyscanner Travel APIs open source?\n\nLetsFG is open source (MIT). No open-source release is listed for Skyscanner Travel APIs.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.json, and with the fewest tokens: https://www.anchorterminal.com/compare/letsfg-vs-skyscanner.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"letsfg\", \"b\": \"skyscanner\"}`. From a terminal: `anchor compare letsfg skyscanner`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/letsfg.json and https://www.anchorterminal.com/api/v1/tools/skyscanner.json\n\n## Other comparisons with LetsFG or Skyscanner Travel 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 Skyscanner Travel APIs](https://www.anchorterminal.com/compare/booking-demand-api-vs-skyscanner.md)\n- [Expedia Group Rapid API vs LetsFG](https://www.anchorterminal.com/compare/expedia-rapid-vs-letsfg.md)\n- [Expedia Group Rapid API vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/expedia-rapid-vs-skyscanner.md)\n- [Hotelbeds Hotel Booking API vs LetsFG](https://www.anchorterminal.com/compare/hotelbeds-vs-letsfg.md)\n- [Hotelbeds Hotel Booking API vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/hotelbeds-vs-skyscanner.md)\n- [LetsFG vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/letsfg-vs-ratehawk.md)\n- [LiteAPI (Nuitee Connect) vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/liteapi-vs-skyscanner.md)\n- [ETG API (RateHawk) vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/ratehawk-vs-skyscanner.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 Skyscanner Travel APIs](https://www.anchorterminal.com/compare/duffel-vs-skyscanner.md)\n- [FlightClaw vs LetsFG](https://www.anchorterminal.com/compare/flightclaw-vs-letsfg.md)\n- [FlightClaw vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/flightclaw-vs-skyscanner.md)\n- [Kiwi.com MCP Server vs LetsFG](https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg.md)\n- [Kiwi.com MCP Server vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner.md)\n- [LetsFG vs LiteAPI (Nuitee Connect)](https://www.anchorterminal.com/compare/letsfg-vs-liteapi.md)\n- [LetsFG vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/letsfg-vs-travelport.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 Skyscanner Travel APIs",
        "url": ""
      }
    ],
    "description": "LetsFG scores 64 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category. Both do travel flights. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LetsFG B 64",
      "Skyscanner Travel APIs E 45.6",
      "scores"
    ],
    "h1": "LetsFG vs Skyscanner Travel APIs",
    "image": "https://www.anchorterminal.com/assets/og/compare-letsfg-vs-skyscanner.png",
    "path": "/compare/letsfg-vs-skyscanner",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LetsFG vs Skyscanner Travel APIs for AI agents, B 64 vs E 45.6",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/letsfg-vs-skyscanner"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 780
  },
  "version": 1
}
