{
  "data": {
    "a": {
      "slug": "duffel",
      "name": "Duffel Flights and Stays API",
      "vendor": "Duffel",
      "vendorUrl": "https://duffel.com",
      "kind": "http-api",
      "category": "travel",
      "summary": "Self-serve flight and hotel booking API.",
      "url": "https://www.anchorterminal.com/tools/duffel",
      "markdownUrl": "https://www.anchorterminal.com/tools/duffel.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/duffel.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/duffel.json",
      "repo": "https://github.com/duffelhq/duffel-api-javascript",
      "license": "MIT (SDK)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.duffel.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@duffel/api"
        },
        {
          "registry": "pypi",
          "name": "duffel-api"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer access token from the dashboard (Developers, then Access tokens), plus a `Duffel-Version: v2` header on every call. Test and live tokens are separate and come from the same page. Every response carries an `x-request-id` for support.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go with no set-up cost. Flights are $3.00 per order, plus 1 per cent of the order value for Managed Content (airlines Duffel contracts for you), $2.00 per paid ancillary, 2 per cent on currency conversion and $0.005 per search once you pass a 1,500 to 1 search to book ratio. Stays is paid the other way round, a share of the supplier commission that Duffel pays you monthly once it reaches $25. Enterprise is bespoke (https://duffel.com/pricing).",
      "priceSummary": "$3 / tx",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 55,
        "npmWeekly": 87322,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://duffel.com/docs",
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "usage-priced",
        "typescript",
        "webhooks",
        "enterprise",
        "uk"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.7,
        "grade": "B",
        "agentReady": false,
        "rank": 230,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 92,
          "payments": 40,
          "reliability": 70,
          "schema": 59,
          "security": 60,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Self-serve sign-up and test mode with no card or contract. No OpenAPI document, llms.txt or official MCP server.",
        "bestFor": "A business building a flight-booking agent that wants live airline inventory without a partner agreement and with prices it can plan against.",
        "strengths": [
          "Self-serve sign-up and test mode with no card or contract",
          "Published prices, $3.00 an order, $2.00 a paid ancillary, $0.005 per search above 1,500 to 1",
          "Orders, holds, changes, cancellations, seats and bags in one API, with a versioning policy that keeps old versions for 6 months",
          "Statuspage with per-supplier components and a public changelog updated 28 September",
          "PCI DSS v4 Level 1, a vulnerability disclosure programme and a trust centre"
        ],
        "weaknesses": [
          "No OpenAPI document, llms.txt or official MCP server",
          "Default rate limit of 60 requests a minute, which Duffel says can change without notice",
          "Searches above 1,500 per order cost $0.005 each and can get you capped under the services agreement",
          "Python SDK archived; TypeScript is the only maintained SDK",
          "No SLA published for pay-as-you-go or enterprise"
        ],
        "agentNotes": [
          "Send `Duffel-Version: v2` on every request or you get a version error",
          "Fetch the single offer again right before creating the order, since an offer goes stale within minutes",
          "Set a 130-second timeout on order creation, and treat a 202 as processing rather than retrying, or you risk a duplicate",
          "Read `ratelimit-remaining` before fanning out searches; the default is 60 requests per 60 seconds",
          "Count offer requests. Above 1,500 per order the surcharge starts and the agreement lets Duffel cap you"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.7
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 92,
          "payments": 40,
          "reliability": 70,
          "schema": 59,
          "security": 60,
          "transparency": 63
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "npm install @duffel/api",
        "http": "curl -X POST https://api.duffel.com/air/offer_requests?return_offers=true \\\n  -H \"Authorization: Bearer $DUFFEL_ACCESS_TOKEN\" -H \"Duffel-Version: v2\" \\\n  -H \"Content-Type: application/json\" -H \"Accept-Encoding: gzip\" \\\n  -d '{\"data\":{\"slices\":[{\"origin\":\"LHR\",\"destination\":\"JFK\",\"departure_date\":\"2026-11-10\"}],\"passengers\":[{\"type\":\"adult\"}],\"cabin_class\":\"economy\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/duffel"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Flight order",
          "unit": "tx",
          "usd": 3,
          "note": "per confirmed order, billed monthly"
        },
        {
          "item": "Managed Content",
          "unit": "pct",
          "usd": 1,
          "note": "of total order value, airlines Duffel contracts for you"
        },
        {
          "item": "Paid ancillary",
          "unit": "tx",
          "usd": 2,
          "note": "bags, seats and similar"
        },
        {
          "item": "Excess search",
          "unit": "call",
          "usd": 0.005,
          "note": "above a 1,500 to 1 search to book ratio"
        },
        {
          "item": "Foreign exchange",
          "unit": "pct",
          "usd": 2,
          "note": "on the exchange rate"
        }
      ],
      "provenance": {
        "legalEntity": "Duffel Technology Limited",
        "domain": "duffel.com",
        "domainRegistered": "2000-05-02",
        "domainNote": "duffel.com was registered in 2000, well before Duffel Technology Limited (company 11188295) existed, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://duffel.com/services-agreement",
        "privacy": "https://duffel.com/privacy-policy",
        "statusPage": "https://www.duffelstatus.com",
        "changelog": "https://changelog.duffel.com",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Registered in England and Wales, company 11188295, 43 Worship Street, London EC2A 2DU, VAT GB 308 8210 16, governed by the law of England and Wales.",
          "You carry airline debit memos, chargebacks and penalties on your orders under the services agreement.",
          "duffel.com/.well-known/security.txt returns 404."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/duffel.json",
      "live": {
        "slug": "duffel",
        "probe": {
          "target": "https://api.duffel.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:09.279290827Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 78,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 72,
          "p95ms24h": 136,
          "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://www.duffelstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:00.969072161Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "duffelhq/duffel-api-javascript",
            "version": "v4.31.0",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:09:31.348598589Z"
          },
          {
            "registry": "npm",
            "name": "@duffel/api",
            "version": "4.31.0",
            "seenAt": "2026-10-08T16:09:27.946038988Z"
          },
          {
            "registry": "pypi",
            "name": "duffel-api",
            "version": "0.6.2",
            "released": "2023-10-02",
            "seenAt": "2026-10-08T16:09:31.154417537Z"
          }
        ],
        "githubStars": 59,
        "npmWeekly": 97933,
        "pypiWeekly": 921,
        "securityTxt": {
          "url": "https://duffel.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:09.51521985Z"
        },
        "domain": {
          "domain": "duffel.com",
          "registered": "2000-05-02",
          "source": "https://rdap.verisign.com/com/v1/domain/duffel.com",
          "checkedAt": "2026-10-04T13:06:44.746625158Z"
        },
        "pages": [
          {
            "url": "https://changelog.duffel.com",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:08.325859118Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "75a7bddb7ffc"
          },
          {
            "url": "https://duffel.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:20:00.481272997Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "39d641ebc750"
          },
          {
            "url": "https://duffel.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:20:02.561645302Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1ce367e797bc"
          },
          {
            "url": "https://duffel.com/services-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:20:04.550314659Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "627df7899683"
          }
        ],
        "updatedAt": "2026-10-08T21:12:09.279290827Z"
      }
    },
    "answer": "Duffel Flights and Stays API scores 66.7 (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": "Duffel",
        "b": "Skyscanner Limited",
        "name": "Vendor"
      },
      {
        "a": "https://api.duffel.com",
        "b": "https://partners.api.skyscanner.net",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "$3 per transaction",
        "b": "free",
        "name": "Price for travel flights"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDK)",
        "b": "Proprietary service. The API terms are in the partner contract and are not public",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-06-17",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-17",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "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": "55 stars, 87k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "4/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Duffel Flights and Stays API scores 66.7 (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, Duffel Flights and Stays API or Skyscanner Travel APIs?"
      },
      {
        "answer": "Skyscanner Travel APIs, at free against $3 per transaction for Duffel Flights and Stays API. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for travel flights, Duffel Flights and Stays API or Skyscanner Travel APIs?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Duffel Flights and Stays API and Skyscanner Travel APIs need an API key?"
      },
      {
        "answer": "Yes. Duffel Flights and Stays API has a hosted endpoint at https://api.duffel.com and Skyscanner Travel APIs at https://partners.api.skyscanner.net.",
        "question": "Can an agent call Duffel Flights and Stays API and Skyscanner Travel APIs without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 35",
          "Agent ergonomics, 80 against 50",
          "Security \u0026 auth, 60 against 48",
          "Payments \u0026 pricing, 40 against 25",
          "Maintenance \u0026 community, 92 against 60",
          "Transparency \u0026 trust, 75 against 52"
        ],
        "also": null,
        "goodFor": "A business building a flight-booking agent that wants live airline inventory without a partner agreement and with prices it can plan against.",
        "slug": "duffel",
        "watchFor": "No OpenAPI document, llms.txt or official MCP server"
      },
      {
        "aheadOn": null,
        "also": null,
        "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-duffel.json",
        "title": "Booking.com Demand API vs Duffel Flights and Stays API",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-duffel"
      },
      {
        "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/duffel-vs-expedia-rapid.json",
        "title": "Duffel Flights and Stays API vs Expedia Group Rapid API",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-expedia-rapid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-hotelbeds.json",
        "title": "Duffel Flights and Stays API vs Hotelbeds Hotel Booking API",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-hotelbeds"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-ratehawk.json",
        "title": "Duffel Flights and Stays API vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-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-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/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-flightclaw.json",
        "title": "Duffel Flights and Stays API vs FlightClaw",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp.json",
        "title": "Duffel Flights and Stays API vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp"
      },
      {
        "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-liteapi.json",
        "title": "Duffel Flights and Stays API vs LiteAPI (Nuitee Connect)",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-liteapi"
      },
      {
        "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-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-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-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": 35,
        "duffel": 70,
        "edge": "duffel",
        "key": "reliability",
        "name": "Reliability",
        "skyscanner": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "duffel": 59,
        "edge": "duffel",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "skyscanner": 56,
        "weight": 13
      },
      {
        "by": 30,
        "duffel": 80,
        "edge": "duffel",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "skyscanner": 50,
        "weight": 13
      },
      {
        "by": 12,
        "duffel": 60,
        "edge": "duffel",
        "key": "security",
        "name": "Security \u0026 auth",
        "skyscanner": 48,
        "weight": 14
      },
      {
        "by": 15,
        "duffel": 40,
        "edge": "duffel",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "skyscanner": 25,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "duffel": 92,
        "edge": "duffel",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "skyscanner": 60,
        "weight": 7
      },
      {
        "by": 23,
        "duffel": 75,
        "edge": "duffel",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "skyscanner": 52,
        "weight": 7
      }
    ],
    "summary": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category. Both do travel flights.",
    "verdicts": {
      "duffel": "Self-serve sign-up and test mode with no card or contract. No OpenAPI document, llms.txt or official MCP server.",
      "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/duffel-vs-skyscanner",
    "json": "https://www.anchorterminal.com/compare/duffel-vs-skyscanner.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/duffel-vs-skyscanner.md",
    "slim": "https://www.anchorterminal.com/compare/duffel-vs-skyscanner.min.md"
  },
  "markdown": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Skyscanner Travel APIs's 45.6 (E), and leads in every scored category. Both do travel flights.\n\n- Duffel Flights and Stays API: grade B, 66.7/100, rank #230 of 722. Markdown https://www.anchorterminal.com/tools/duffel.md · JSON https://www.anchorterminal.com/api/v1/tools/duffel.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### Duffel Flights and Stays API (B)\n\nGood for: A business building a flight-booking agent that wants live airline inventory without a partner agreement and with prices it can plan against.\n\nAhead on:\n- Reliability, 70 against 35\n- Agent ergonomics, 80 against 50\n- Security \u0026 auth, 60 against 48\n- Payments \u0026 pricing, 40 against 25\n- Maintenance \u0026 community, 92 against 60\n- Transparency \u0026 trust, 75 against 52\n\nWatch for: No OpenAPI document, llms.txt or official MCP server\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\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 | Duffel Flights and Stays API | Skyscanner Travel APIs | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 35 | Duffel Flights and Stays API +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 59 | 56 | Duffel Flights and Stays API +3 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 50 | Duffel Flights and Stays API +30 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 48 | Duffel Flights and Stays API +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 25 | Duffel Flights and Stays API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 92 | 60 | Duffel Flights and Stays API +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 52 | Duffel Flights and Stays API +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.7 · B** | **45.6 · E** | |\n\n## Facts side by side\n\n| Fact | Duffel Flights and Stays API | Skyscanner Travel APIs |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Duffel | Skyscanner Limited |\n| Hosted endpoint | `https://api.duffel.com` | `https://partners.api.skyscanner.net` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Free |\n| Price for travel flights | $3 per transaction | free |\n| x402 | no | no |\n| Licence | MIT (SDK) | Proprietary service. The API terms are in the partner contract and are not public |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-28 | 2026-10-01 |\n| Terms last updated | 2026-06-17 | no document linked |\n| Privacy policy last updated | 2026-06-17 | no date given |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\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 | 55 stars, 87k npm/wk | none |\n| Agent reviews | 4/5 (2) | none |\n\n## Verdicts\n\n**Duffel Flights and Stays API.** Self-serve sign-up and test mode with no card or contract. No OpenAPI document, llms.txt or official MCP server.\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### Duffel Flights and Stays API\n\n1. Send `Duffel-Version: v2` on every request or you get a version error\n2. Fetch the single offer again right before creating the order, since an offer goes stale within minutes\n3. Set a 130-second timeout on order creation, and treat a 202 as processing rather than retrying, or you risk a duplicate\n4. Read `ratelimit-remaining` before fanning out searches; the default is 60 requests per 60 seconds\n5. Count offer requests. Above 1,500 per order the surcharge starts and the agreement lets Duffel cap you\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, Duffel Flights and Stays API or Skyscanner Travel APIs?\n\nDuffel Flights and Stays API scores 66.7 (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, Duffel Flights and Stays API or Skyscanner Travel APIs?\n\nSkyscanner Travel APIs, at free against $3 per transaction for Duffel Flights and Stays API. These are the vendors' published prices for the job.\n\n### Do Duffel Flights and Stays API and Skyscanner Travel APIs need an API key?\n\nBoth need an API key.\n\n### Can an agent call Duffel Flights and Stays API and Skyscanner Travel APIs without installing anything?\n\nYes. Duffel Flights and Stays API has a hosted endpoint at https://api.duffel.com and Skyscanner Travel APIs at https://partners.api.skyscanner.net.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/duffel-vs-skyscanner.json, and with the fewest tokens: https://www.anchorterminal.com/compare/duffel-vs-skyscanner.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"duffel\", \"b\": \"skyscanner\"}`. From a terminal: `anchor compare duffel skyscanner`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/duffel.json and https://www.anchorterminal.com/api/v1/tools/skyscanner.json\n\n## Other comparisons with Duffel Flights and Stays API or Skyscanner Travel APIs\n\n- [Booking.com Demand API vs Duffel Flights and Stays API](https://www.anchorterminal.com/compare/booking-demand-api-vs-duffel.md)\n- [Booking.com Demand API vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/booking-demand-api-vs-skyscanner.md)\n- [Duffel Flights and Stays API vs Expedia Group Rapid API](https://www.anchorterminal.com/compare/duffel-vs-expedia-rapid.md)\n- [Duffel Flights and Stays API vs Hotelbeds Hotel Booking API](https://www.anchorterminal.com/compare/duffel-vs-hotelbeds.md)\n- [Duffel Flights and Stays API vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/duffel-vs-ratehawk.md)\n- [Expedia Group Rapid API vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/expedia-rapid-vs-skyscanner.md)\n- [Hotelbeds Hotel Booking API vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/hotelbeds-vs-skyscanner.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 FlightClaw](https://www.anchorterminal.com/compare/duffel-vs-flightclaw.md)\n- [Duffel Flights and Stays API vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp.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 LiteAPI (Nuitee Connect)](https://www.anchorterminal.com/compare/duffel-vs-liteapi.md)\n- [Duffel Flights and Stays API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/duffel-vs-travelport.md)\n- [FlightClaw vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/flightclaw-vs-skyscanner.md)\n- [Kiwi.com MCP Server vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner.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": "Duffel Flights and Stays API vs Skyscanner Travel APIs",
        "url": ""
      }
    ],
    "description": "Duffel Flights and Stays API scores 66.7 (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": [
      "Duffel Flights and Stays API B 66.7",
      "Skyscanner Travel APIs E 45.6",
      "scores"
    ],
    "h1": "Duffel Flights and Stays API vs Skyscanner Travel APIs",
    "image": "https://www.anchorterminal.com/assets/og/compare-duffel-vs-skyscanner.png",
    "path": "/compare/duffel-vs-skyscanner",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Duffel Flights and Stays API vs Skyscanner Travel APIs for AI agents",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/duffel-vs-skyscanner"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 730
  },
  "version": 1
}
