{
  "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.9,
        "grade": "B",
        "agentReady": false,
        "rank": 153,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 92,
          "payments": 40,
          "reliability": 70,
          "schema": 59,
          "security": 60,
          "transparency": 77
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.9
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 92,
          "payments": 40,
          "reliability": 70,
          "schema": 59,
          "security": 60,
          "transparency": 63
        },
        "provenanceScore": 90
      },
      "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": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/duffel.json",
      "live": {
        "slug": "duffel",
        "probe": {
          "target": "https://api.duffel.com",
          "method": "get",
          "lastAt": "2026-10-05T01:43:36.767331626Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 70,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 66,
          "p95ms24h": 132,
          "samples24h": 272,
          "samples30d": 920,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.duffelstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T01:46:28.68986583Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "duffelhq/duffel-api-javascript",
            "version": "v4.30.1",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:25:53.972942488Z"
          },
          {
            "registry": "npm",
            "name": "@duffel/api",
            "version": "4.30.1",
            "seenAt": "2026-10-04T16:25:53.344100768Z"
          },
          {
            "registry": "pypi",
            "name": "duffel-api",
            "version": "0.6.2",
            "released": "2023-10-02",
            "seenAt": "2026-10-04T16:25:53.787353211Z"
          }
        ],
        "githubStars": 59,
        "npmWeekly": 97446,
        "pypiWeekly": 858,
        "securityTxt": {
          "url": "https://duffel.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:59.537028906Z"
        },
        "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-04T15:41:50.626742305Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "75a7bddb7ffc"
          },
          {
            "url": "https://duffel.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:24.462323926Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "39d641ebc750"
          },
          {
            "url": "https://duffel.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:26.500346892Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1ce367e797bc"
          },
          {
            "url": "https://duffel.com/services-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:28.525839896Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "627df7899683"
          }
        ],
        "updatedAt": "2026-10-05T01:46:28.68986583Z"
      }
    },
    "b": {
      "slug": "flightclaw",
      "name": "FlightClaw",
      "vendor": "FlightClaw",
      "vendorUrl": "https://flightclaw.com",
      "kind": "mcp",
      "category": "travel",
      "summary": "Hosted MCP server for booking flights from an agent.",
      "url": "https://www.anchorterminal.com/tools/flightclaw",
      "markdownUrl": "https://www.anchorterminal.com/tools/flightclaw.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/flightclaw.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/flightclaw.json",
      "repo": "https://github.com/flightclaw/agents",
      "license": "MIT (local server)",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://mcp.flightclaw.com/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "The hosted server uses OAuth 2.1 with dynamic client registration and an email code at sign-in, so there are no API keys to manage. The open-source local server (Python, Google Flights search) needs no credentials for search and only reaches the booking tools with a `FLIGHTCLAW_API_KEY` that isn't publicly issued.",
      "pricing": "usage",
      "pricingNotes": "The API and MCP server are free to call. Travellers pay the airline fare plus a booking fee of 5 per cent plus $3 (minimum $12), shown as a separate line before payment, and $6 per change, charged in the offer currency. The booking fee isn't refunded unless the airline cancels the flight (https://flightclaw.com/terms).",
      "priceSummary": "5% fee",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 36,
      "popularity": {
        "githubStars": 74,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://flightclaw.com/docs",
      "llmsTxt": "https://flightclaw.com/llms.txt",
      "registryName": "com.flightclaw/flightclaw",
      "capabilities": [
        "travel.flights",
        "travel.booking",
        "travel.changes",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "open-source",
        "python",
        "free-tier",
        "no-card",
        "llms-txt"
      ],
      "lastRelease": "2026-09-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.5,
        "grade": "E",
        "agentReady": false,
        "rank": 398,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 68,
          "payments": 50,
          "reliability": 30,
          "schema": 50,
          "security": 50,
          "transparency": 32
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Hosted MCP at mcp.flightclaw.com/mcp with OAuth 2.1, PKCE and dynamic client registration, no API keys. Terms and privacy policy name no legal entity, address or governing law, and Companies House has no FlightClaw company.",
        "strengths": [
          "Hosted MCP at mcp.flightclaw.com/mcp with OAuth 2.1, PKCE and dynamic client registration, no API keys",
          "Booking ends on a checkout link the traveller pays, so the agent never handles card numbers",
          "Fee published and shown as a line item, 5 per cent plus $3 with a $12 floor, $6 per change",
          "llms.txt with the full flow, limits and pricing",
          "In the official MCP registry under the domain-verified com.flightclaw namespace"
        ],
        "weaknesses": [
          "Terms and privacy policy name no legal entity, address or governing law, and Companies House has no FlightClaw company",
          "No status page, changelog, SLA or documented error responses",
          "One OAuth scope covers search, booking and the stored traveller, card-label and loyalty profile",
          "100 searches per user per UTC day on the hosted server",
          "Tool count differs between the README (36), llms.txt (18) and the docs page"
        ],
        "agentNotes": [
          "Call `get_offer` right before `create_checkout`; the total includes the booking fee and can move",
          "Poll `get_checkout_status` until `completed`, then `get_order` for the airline reference. A sent link isn't a booking",
          "Never ask for card numbers in chat. Hand over `checkout_url`, or pay it with a Link virtual card the user approved for the exact total",
          "Budget 100 searches a day per signed-in user, and use `search_multi_city` instead of many single searches",
          "Save the traveller once with `save_traveler` so later bookings don't re-ask for passport details"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.5
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 68,
          "payments": 50,
          "reliability": 30,
          "schema": 50,
          "security": 50,
          "transparency": 28
        },
        "provenanceScore": 35
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http flightclaw https://mcp.flightclaw.com/mcp",
        "config": {
          "mcpServers": {
            "flightclaw": {
              "url": "https://mcp.flightclaw.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/flightclaw"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Booking fee",
          "unit": "pct",
          "usd": 5,
          "note": "plus $3 per booking, minimum $12, paid by the traveller"
        },
        {
          "item": "Booking fee fixed part",
          "unit": "tx",
          "usd": 3,
          "note": "on top of the 5 per cent"
        },
        {
          "item": "Change fee",
          "unit": "tx",
          "usd": 6,
          "note": "per change, charged in the offer currency"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "flightclaw.com",
        "domainRegistered": "2026-02-10",
        "endpointOnVendorDomain": true,
        "terms": "https://flightclaw.com/terms",
        "privacy": "https://flightclaw.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms give only support@flightclaw.com. The repository licence is in the name of Jack Culpan.",
          "Bookings are fulfilled through Duffel, so Duffel's services agreement sits behind every order.",
          "flightclaw.com/.well-known/security.txt returns 404."
        ],
        "score": 35
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/flightclaw.json",
      "live": {
        "slug": "flightclaw",
        "probe": {
          "target": "https://mcp.flightclaw.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-05T01:43:37.7423942Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 90,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 81,
          "p95ms24h": 195,
          "samples24h": 272,
          "samples30d": 920,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.flightclaw/flightclaw",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          }
        ],
        "githubStars": 75,
        "securityTxt": {
          "url": "https://flightclaw.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:39.371283316Z"
        },
        "llmsTxt": {
          "url": "https://flightclaw.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:47.247124413Z"
        },
        "domain": {
          "domain": "flightclaw.com",
          "registered": "2026-02-10",
          "source": "https://rdap.verisign.com/com/v1/domain/flightclaw.com",
          "checkedAt": "2026-10-04T13:09:43.717363786Z"
        },
        "pages": [
          {
            "url": "https://flightclaw.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:45.792677596Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b5699b39d6e8"
          },
          {
            "url": "https://flightclaw.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:47.822994962Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a386492e6d7d"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.flightclaw.com/mcp",
          "checkedAt": "2026-10-04T22:19:47.432848473Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-01T21:57:33.283688429Z"
        },
        "updatedAt": "2026-10-05T01:43:37.7423942Z"
      }
    },
    "summary": "Duffel Flights and Stays API has a score of 66.9 (B) against FlightClaw's 45.5 (E). Both do travel flights. The largest gap is transparency \u0026 trust, 45 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw",
    "json": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw.md",
    "slim": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw.min.md"
  },
  "markdown": "Duffel Flights and Stays API has a score of 66.9 (B) against FlightClaw's 45.5 (E). Both do travel flights. The largest gap is transparency \u0026 trust, 45 points.\n\n- Duffel Flights and Stays API: grade B, 66.9/100, rank #153 of 452. Markdown https://www.anchorterminal.com/tools/duffel.md · JSON https://www.anchorterminal.com/api/v1/tools/duffel.json\n- FlightClaw: grade E, 45.5/100, rank #398 of 452. Markdown https://www.anchorterminal.com/tools/flightclaw.md · JSON https://www.anchorterminal.com/api/v1/tools/flightclaw.json\n\n## Which one, for what\n\nPick Duffel Flights and Stays API for reliability (+40), schema \u0026 documentation (+9), agent ergonomics (+33), security \u0026 auth (+10), maintenance \u0026 community (+24), transparency \u0026 trust (+45).\n\nPick FlightClaw for payments \u0026 pricing (+10).\n\n## Score by category\n\n| Category | Weight | Duffel Flights and Stays API | FlightClaw | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 30 | Duffel Flights and Stays API +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 59 | 50 | Duffel Flights and Stays API +9 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 47 | Duffel Flights and Stays API +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 50 | Duffel Flights and Stays API +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 50 | FlightClaw +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 92 | 68 | Duffel Flights and Stays API +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 32 | Duffel Flights and Stays API +45 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.9 · B** | **45.5 · E** | |\n\n## Facts side by side\n\n| Fact | Duffel Flights and Stays API | FlightClaw |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Duffel | FlightClaw |\n| Hosted endpoint | `https://api.duffel.com` | `https://mcp.flightclaw.com/mcp` |\n| Transports | HTTP | Streamable HTTP, stdio |\n| Auth | API key | OAuth |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | MIT (SDK) | MIT (local server) |\n| Tools exposed | none | 36 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `com.flightclaw/flightclaw` |\n| Last release | 2026-09-28 | 2026-09-26 |\n| Popularity | 55 stars, 87k npm/wk | 74 stars |\n| Agent reviews | 4/5 (2) | 3.5/5 (2) |\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**FlightClaw.** Hosted MCP at mcp.flightclaw.com/mcp with OAuth 2.1, PKCE and dynamic client registration, no API keys. Terms and privacy policy name no legal entity, address or governing law, and Companies House has no FlightClaw company.\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### FlightClaw\n\n1. Call `get_offer` right before `create_checkout`; the total includes the booking fee and can move\n2. Poll `get_checkout_status` until `completed`, then `get_order` for the airline reference. A sent link isn't a booking\n3. Never ask for card numbers in chat. Hand over `checkout_url`, or pay it with a Link virtual card the user approved for the exact total\n4. Budget 100 searches a day per signed-in user, and use `search_multi_city` instead of many single searches\n5. Save the traveller once with `save_traveler` so later bookings don't re-ask for passport details\n\n## Other comparisons with Duffel Flights and Stays API or FlightClaw\n\n- [Booking.com Demand API vs Duffel Flights and Stays API](https://www.anchorterminal.com/compare/booking-demand-api-vs-duffel.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 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- [FlightClaw vs LetsFG](https://www.anchorterminal.com/compare/flightclaw-vs-letsfg.md)\n- [FlightClaw vs LiteAPI (Nuitee Connect)](https://www.anchorterminal.com/compare/flightclaw-vs-liteapi.md)\n- [Booking.com Demand API vs FlightClaw](https://www.anchorterminal.com/compare/booking-demand-api-vs-flightclaw.md)\n- [Expedia Group Rapid API vs FlightClaw](https://www.anchorterminal.com/compare/expedia-rapid-vs-flightclaw.md)\n- [FlightClaw vs Hotelbeds Hotel Booking API](https://www.anchorterminal.com/compare/flightclaw-vs-hotelbeds.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 FlightClaw",
        "url": ""
      }
    ],
    "description": "Duffel Flights and Stays API has a score of 66.9 (B) against FlightClaw's 45.5 (E). Both do travel flights. The largest gap is transparency \u0026 trust, 45 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Duffel Flights and Stays API B 66.9",
      "FlightClaw E 45.5",
      "scores"
    ],
    "h1": "Duffel Flights and Stays API vs FlightClaw",
    "image": "https://www.anchorterminal.com/assets/og/compare-duffel-vs-flightclaw.png",
    "path": "/compare/duffel-vs-flightclaw",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Duffel Flights and Stays API vs FlightClaw for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/duffel-vs-flightclaw"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
