{
  "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 Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation.",
    "b": {
      "slug": "travelport",
      "name": "Travelport TripServices APIs",
      "vendor": "Travelport",
      "vendorUrl": "https://www.travelport.com",
      "kind": "http-api",
      "category": "travel",
      "summary": "Travelport TripServices is a set of REST JSON APIs on the Travelport global distribution system. It searches, prices, books, tickets, exchanges and cancels flights, books and cancels hotel stays, and authorises payment cards, for travel sellers under contract.",
      "url": "https://www.anchorterminal.com/tools/travelport",
      "markdownUrl": "https://www.anchorterminal.com/tools/travelport.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/travelport.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/travelport.json",
      "license": "Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.travelport.net",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 with the password grant. A POST to `https://auth.travelport.net/oauth/token` (pre-production `https://auth.pp.travelport.net/oauth/token`) with `username`, `password`, `client_id` and `client_secret` returns a Bearer token valid for 24 hours. Every call also carries `XAUTH_TRAVELPORT_ACCESSGROUP` or `TVP-PCC-CORE`, which sets the point of sale and the content the caller may reach. Trial credentials are requested on a form at my.travelport.com and arrive by email. Production credentials come after a contract through sales and certification, and are managed in the Credential Access Manager in MyTravelport, which creates, rotates and disables primary and managed identities. No scopes were found.",
      "pricing": "paid",
      "pricingNotes": "No public price. The API and SDK Terms of Use say charges are set in each Developer Contract and invoiced monthly, and the docs send new customers to sales. A trial with no payment exists for building against realistic air shopping, requested through a form that asks for a name, work email and company. Production access is per contracted API after certification (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer portal, the three OpenAPI files or the terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.travelport.com/",
      "llmsTxt": "https://developer.travelport.com/llms.txt",
      "openapi": "https://developer.travelport.com/_bundle/apis/flights/@11.36/index.yaml",
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "enterprise",
        "sales-led",
        "oauth",
        "openapi",
        "llms-txt",
        "gds",
        "ndc",
        "trial"
      ],
      "lastRelease": "2026-08-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.9,
        "grade": "E",
        "agentReady": false,
        "rank": 653,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 20,
          "reliability": 19,
          "schema": 84,
          "security": 47,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission.",
        "bestFor": "A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.",
        "strengths": [
          "Public OpenAPI 3.0 files for Flights (101 operations), Stays (22) and Pay (2), with an llms.txt and a Markdown copy of every docs page",
          "One API family covers search, price, book, ticket, exchange, refund and void for flights, plus hotel search, booking and cancellation",
          "Trial credentials need no payment, and a separate pre-production host mirrors the production paths",
          "Dated Flights release notes, with four releases between 16 July and 12 August 2026",
          "Credential Access Manager rotates and disables identities, and managed identities give third parties their own credentials"
        ],
        "weaknesses": [
          "The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport",
          "No public price. Charges sit in a Developer Contract reached through sales, and production needs certification with 15 days' notice",
          "No status page, SLA or API rate limit was found. The only published limit is 50 token requests a second per IP",
          "Tokens come from the OAuth password grant with a username, password, client id and client secret, and no scopes were found",
          "No idempotency key, no SDK and no MCP server. Some failures arrive as HTTP 200 with an error object in the body"
        ],
        "agentNotes": [
          "Request one token and cache it for 24 hours. Travelport declines certification for refreshing more often than every 23 hours without a stated reason",
          "Send `Accept-Encoding: gzip, deflate` and `XAUTH_TRAVELPORT_ACCESSGROUP` (or `TVP-PCC-CORE`) on every call. Production traffic without compression is refused",
          "Send `offersPerPage` on a journey-based search, or later calls can't reference its results. Cached searches last 12 minutes for GDS content and 34 for NDC",
          "Commit a workbench within 30 minutes or it expires, and read `Result/Error` in the body even on HTTP 200",
          "Get written authorisation for agent access before production. The terms bar automated tools and speculative or duplicate bookings"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.9
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 20,
          "reliability": 19,
          "schema": 84,
          "security": 47,
          "transparency": 47
        },
        "provenanceScore": 57
      },
      "connect": {
        "http": "curl -X POST https://auth.pp.travelport.net/oauth/token \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=password\u0026username=$TP_USERNAME\u0026password=$TP_PASSWORD\u0026client_id=$TP_CLIENT_ID\u0026client_secret=$TP_CLIENT_SECRET\""
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/travelport"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Travelport, LP",
        "domain": "travelport.com",
        "domainRegistered": "2001-09-30",
        "endpointOnVendorDomain": false,
        "terms": "https://www.travelport.com/legal-policies/api-sdk-policies-terms-of-use",
        "privacy": "https://www.travelport.com/legal-policies/privacy",
        "statusPage": "",
        "changelog": "https://developer.travelport.com/docs/flights/general/flights-api-release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The API and SDK Terms of Use are incorporated into each Developer Contract, which names the contracting Travelport company and sets the charges. The contract itself is not public. Trial and pre-production access falls under the Terms of Service for Travelport test system access on the developer portal, governed by the law of Georgia, USA.",
          "The privacy link is the Travelport Privacy Notice for the GDS, last updated 3 January 2025, which covers traveller data processed in the Apollo, Galileo and Worldspan systems. It names Travelport, LP for the Data Privacy Framework, with offices in Langley, Berkshire and Atlanta, Georgia.",
          "The APIs answer on api.travelport.net and auth.travelport.net, a second domain named in Travelport's own docs. RDAP gives travelport.net a registration date of 2000-01-12 with Amazon Registrar, and travelport.com 2001-09-30 with CSC Corporate Domains.",
          "No status page is linked from the developer portal or the support page. status.travelport.com did not answer our request.",
          "www.travelport.com/.well-known/security.txt and the developer portal's both return 404. A Responsible Disclosure Policy dated June 2025 takes reports at responsibledisclosure@travelport.com and says there is no bug bounty.",
          "The portal's /changelog page is empty. Dated release notes are kept per API, and the Flights page was last modified on 16 September 2026."
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/travelport.json",
      "live": {
        "slug": "travelport",
        "probe": {
          "target": "https://api.travelport.net",
          "method": "get",
          "lastAt": "2026-10-08T21:12:23.884869501Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 132,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 132,
          "p95ms24h": 194,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "updatedAt": "2026-10-08T21:12:23.884869501Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Duffel",
        "b": "Travelport",
        "name": "Vendor"
      },
      {
        "a": "https://api.duffel.com",
        "b": "https://api.travelport.net",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$3 per transaction",
        "b": "not published",
        "name": "Price for travel flights"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDK)",
        "b": "Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-08-12",
        "name": "Last release"
      },
      {
        "a": "2026-06-17",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-17",
        "b": "2025-01-03",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "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 Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, Duffel Flights and Stays API or Travelport TripServices APIs?"
      },
      {
        "answer": "Duffel Flights and Stays API needs an API key. Travelport TripServices APIs uses an OAuth sign-in.",
        "question": "Do Duffel Flights and Stays API and Travelport TripServices APIs need an API key?"
      },
      {
        "answer": "Yes. Duffel Flights and Stays API has a hosted endpoint at https://api.duffel.com and Travelport TripServices APIs at https://api.travelport.net.",
        "question": "Can an agent call Duffel Flights and Stays API and Travelport TripServices APIs without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 19",
          "Agent ergonomics, 80 against 51",
          "Security \u0026 auth, 60 against 47",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 92 against 56",
          "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": [
          "Schema \u0026 documentation, 84 against 59"
        ],
        "also": null,
        "goodFor": "A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.",
        "slug": "travelport",
        "watchFor": "The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport"
      }
    ],
    "job": {
      "capability": "travel.flights",
      "name": "Travel flights"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-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-travelport.json",
        "title": "Booking.com Demand API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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-travelport.json",
        "title": "Expedia Group Rapid API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-travelport.json",
        "title": "Hotelbeds Hotel Booking API vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liteapi-vs-travelport.json",
        "title": "LiteAPI (Nuitee Connect) vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ratehawk-vs-travelport.json",
        "title": "ETG API (RateHawk) vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/ratehawk-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-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-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-travelport.json",
        "title": "FlightClaw vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.json",
        "title": "Kiwi.com MCP Server vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-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": 51,
        "duffel": 70,
        "edge": "duffel",
        "key": "reliability",
        "name": "Reliability",
        "travelport": 19,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 25,
        "duffel": 59,
        "edge": "travelport",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "travelport": 84,
        "weight": 13
      },
      {
        "by": 29,
        "duffel": 80,
        "edge": "duffel",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "travelport": 51,
        "weight": 13
      },
      {
        "by": 13,
        "duffel": 60,
        "edge": "duffel",
        "key": "security",
        "name": "Security \u0026 auth",
        "travelport": 47,
        "weight": 14
      },
      {
        "by": 20,
        "duffel": 40,
        "edge": "duffel",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "travelport": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 36,
        "duffel": 92,
        "edge": "duffel",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "travelport": 56,
        "weight": 7
      },
      {
        "by": 23,
        "duffel": 75,
        "edge": "duffel",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "travelport": 52,
        "weight": 7
      }
    ],
    "summary": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation. 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.",
      "travelport": "Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/duffel-vs-travelport",
    "json": "https://www.anchorterminal.com/compare/duffel-vs-travelport.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/duffel-vs-travelport.md",
    "slim": "https://www.anchorterminal.com/compare/duffel-vs-travelport.min.md"
  },
  "markdown": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation. 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- Travelport TripServices APIs: grade E, 45.9/100, rank #653 of 722. Markdown https://www.anchorterminal.com/tools/travelport.md · JSON https://www.anchorterminal.com/api/v1/tools/travelport.json\n\n## Which one, for what\n\n### 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 19\n- Agent ergonomics, 80 against 51\n- Security \u0026 auth, 60 against 47\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 92 against 56\n- Transparency \u0026 trust, 75 against 52\n\nWatch for: No OpenAPI document, llms.txt or official MCP server\n\n### Travelport TripServices APIs (E)\n\nGood for: A travel agency, travel management company or travel platform that will sign a GDS contract and wants GDS, NDC and low-cost air content with full servicing plus hotels.\n\nAhead on:\n- Schema \u0026 documentation, 84 against 59\n\nWatch for: The API and SDK Terms of Use forbid any automated process or tool, such as a bot, without written authorisation from Travelport\n\n\n## Score by category\n\n| Category | Weight | Duffel Flights and Stays API | Travelport TripServices APIs | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 19 | Duffel Flights and Stays API +51 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 59 | 84 | Travelport TripServices APIs +25 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 51 | Duffel Flights and Stays API +29 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 47 | Duffel Flights and Stays API +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Duffel Flights and Stays API +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 92 | 56 | Duffel Flights and Stays API +36 |\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.9 · E** | |\n\n## Facts side by side\n\n| Fact | Duffel Flights and Stays API | Travelport TripServices APIs |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Duffel | Travelport |\n| Hosted endpoint | `https://api.duffel.com` | `https://api.travelport.net` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth |\n| Pricing | Pay per use | Paid |\n| Price for travel flights | $3 per transaction | not published |\n| x402 | no | no |\n| Licence | MIT (SDK) | Proprietary service under a Developer Contract and Travelport's API and SDK Terms of Use |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-09-28 | 2026-08-12 |\n| Terms last updated | 2026-06-17 | no date given |\n| Privacy policy last updated | 2026-06-17 | 2025-01-03 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 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**Travelport TripServices APIs.** Public OpenAPI 3.0 files, Markdown docs and an llms.txt cover search, pricing, booking, ticketing, exchanges and hotel stays, with dated release notes through August 2026. Production needs a sales contract and certification with 15 days' notice. No price, API rate limit, status page or SLA is published, and the terms bar automated tools without written permission.\n\n## Before you call either\n\n### 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### Travelport TripServices APIs\n\n1. Request one token and cache it for 24 hours. Travelport declines certification for refreshing more often than every 23 hours without a stated reason\n2. Send `Accept-Encoding: gzip, deflate` and `XAUTH_TRAVELPORT_ACCESSGROUP` (or `TVP-PCC-CORE`) on every call. Production traffic without compression is refused\n3. Send `offersPerPage` on a journey-based search, or later calls can't reference its results. Cached searches last 12 minutes for GDS content and 34 for NDC\n4. Commit a workbench within 30 minutes or it expires, and read `Result/Error` in the body even on HTTP 200\n5. Get written authorisation for agent access before production. The terms bar automated tools and speculative or duplicate bookings\n\n## Questions\n\n### Which is better for AI agents, Duffel Flights and Stays API or Travelport TripServices APIs?\n\nDuffel Flights and Stays API scores 66.7 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation.\n\n### Do Duffel Flights and Stays API and Travelport TripServices APIs need an API key?\n\nDuffel Flights and Stays API needs an API key. Travelport TripServices APIs uses an OAuth sign-in.\n\n### Can an agent call Duffel Flights and Stays API and Travelport TripServices APIs without installing anything?\n\nYes. Duffel Flights and Stays API has a hosted endpoint at https://api.duffel.com and Travelport TripServices APIs at https://api.travelport.net.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/duffel-vs-travelport.json, and with the fewest tokens: https://www.anchorterminal.com/compare/duffel-vs-travelport.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"duffel\", \"b\": \"travelport\"}`. From a terminal: `anchor compare duffel travelport`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/duffel.json and https://www.anchorterminal.com/api/v1/tools/travelport.json\n\n## Other comparisons with Duffel Flights and Stays API or Travelport TripServices 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 Travelport TripServices APIs](https://www.anchorterminal.com/compare/booking-demand-api-vs-travelport.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 Travelport TripServices APIs](https://www.anchorterminal.com/compare/expedia-rapid-vs-travelport.md)\n- [Hotelbeds Hotel Booking API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/hotelbeds-vs-travelport.md)\n- [LiteAPI (Nuitee Connect) vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/liteapi-vs-travelport.md)\n- [ETG API (RateHawk) vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/ratehawk-vs-travelport.md)\n- [Duffel Flights and Stays API vs 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 Skyscanner Travel APIs](https://www.anchorterminal.com/compare/duffel-vs-skyscanner.md)\n- [FlightClaw vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/flightclaw-vs-travelport.md)\n- [Kiwi.com MCP Server vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.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": "Duffel Flights and Stays API vs Travelport TripServices APIs",
        "url": ""
      }
    ],
    "description": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Travelport TripServices APIs's 45.9 (E), and leads in 6 of 7 scored categories. Travelport TripServices APIs leads on schema \u0026 documentation. Both do travel flights. Category scores, facts, verdicts and…",
    "facts": [
      "Duffel Flights and Stays API B 66.7",
      "Travelport TripServices APIs E 45.9",
      "scores"
    ],
    "h1": "Duffel Flights and Stays API vs Travelport TripServices APIs",
    "image": "https://www.anchorterminal.com/assets/og/compare-duffel-vs-travelport.png",
    "path": "/compare/duffel-vs-travelport",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Duffel Flights and Stays API vs Travelport TripServices APIs",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/duffel-vs-travelport"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 730
  },
  "version": 1
}
