{
  "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": 311,
        "ranked": true,
        "rankOf": 1197,
        "categoryRank": 1,
        "methodology": "0.6",
        "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.6",
            "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,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-08",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 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": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/duffel.json",
      "live": {
        "slug": "duffel",
        "probe": {
          "target": "https://api.duffel.com",
          "method": "get",
          "lastAt": "2026-10-21T21:42:40.568276236Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 68,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 76,
          "p95ms24h": 167,
          "samples24h": 250,
          "samples30d": 5222,
          "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": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 229,
              "ok": 229
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.duffelstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-21T21:38:27.082856728Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "duffelhq/duffel-api-javascript",
            "version": "v4.31.0",
            "released": "2026-10-08",
            "seenAt": "2026-10-21T05:52:09.022975247Z"
          },
          {
            "registry": "npm",
            "name": "@duffel/api",
            "version": "4.31.0",
            "seenAt": "2026-10-21T05:52:07.663164427Z"
          },
          {
            "registry": "pypi",
            "name": "duffel-api",
            "version": "0.6.2",
            "released": "2023-10-02",
            "seenAt": "2026-10-21T05:52:08.834530329Z"
          }
        ],
        "githubStars": 59,
        "npmWeekly": 45843,
        "pypiWeekly": 682,
        "securityTxt": {
          "url": "https://duffel.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-21T15:58:27.561916006Z"
        },
        "domain": {
          "domain": "duffel.com",
          "registered": "2000-05-02",
          "source": "https://rdap.verisign.com/com/v1/domain/duffel.com",
          "checkedAt": "2026-10-18T13:30:01.374431841Z"
        },
        "pages": [
          {
            "url": "https://changelog.duffel.com",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-21T00:42:59.728201353Z",
            "changedAt": "2026-10-14T20:36:18.043188363Z",
            "fingerprint": "a807e090941d"
          },
          {
            "url": "https://duffel.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-21T00:48:26.814045481Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "39d641ebc750"
          },
          {
            "url": "https://duffel.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-21T00:48:28.873381812Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1ce367e797bc"
          },
          {
            "url": "https://duffel.com/services-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-21T00:48:30.872347843Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "627df7899683"
          }
        ],
        "github": {
          "repo": "duffelhq/duffel-api-javascript",
          "checkedAt": "2026-10-19T06:07:26.778805102Z",
          "stars": 59,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-17T09:22:30Z",
          "openIssues": 4,
          "openPRs": 2,
          "issuesOpened90d": 2,
          "issuesClosed90d": 0,
          "prsMerged90d": 38,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 40,
            "failure": 5,
            "other": 5,
            "latest": "success",
            "latestAt": "2026-10-08T12:50:30Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 3,
            "medianDays": 9.7
          }
        },
        "updatedAt": "2026-10-21T21:42:40.568276236Z"
      }
    },
    "answer": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Odessia's 22.2 (F), and leads in every scored category.",
    "b": {
      "slug": "odessia",
      "name": "Odessia",
      "vendor": "Artificial Intelligence Systems Inc. (dba Odessia)",
      "vendorUrl": "https://odessia.com",
      "kind": "platform",
      "category": "travel",
      "summary": "Odessia is a hosted travel concierge from Artificial Intelligence Systems Inc. that plans trips, books hotels and flights as a registered travel agent, and watches prices and award seats. It works on the web, by message and by email.",
      "url": "https://www.anchorterminal.com/tools/odessia",
      "markdownUrl": "https://www.anchorterminal.com/tools/odessia.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/odessia.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/odessia.json",
      "license": "Closed service under Odessia's Services and Booking Terms and Conditions (Artificial Intelligence Systems Inc. dba Odessia). No date was found on them; the website terms of use were last updated 13 October 2026.",
      "transports": [],
      "packages": [],
      "auth": "mixed",
      "authNotes": "A person signs in on odessia.com and can connect Gmail and Google Calendar with read-only access (https://odessia.com/). Bookings run under authorisations the person gives, including standing authorisations with limits (https://odessia.com/terms). No API, MCP server or other interface for an outside agent was found.",
      "pricing": "free",
      "pricingNotes": "The home page says Odessia is free to use. Bookings are charged at the supplier's price, and Odessia Credits of up to US$50 apply to eligible prepaid hotel stays of US$300 or more (https://odessia.com/ and https://odessia.com/legal/credits-simple-terms). Checked 21 October 2026.",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 found on odessia.com, its terms, privacy policy or credits terms, checked 21 October 2026.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-21"
      },
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.search",
        "travel.changes"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "free",
        "status-page",
        "access-unverified",
        "not-for-agents"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 22.2,
        "grade": "F",
        "agentReady": false,
        "rank": 1139,
        "ranked": true,
        "rankOf": 1197,
        "categoryRank": 12,
        "methodology": "0.6",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 0,
          "maintenance": 2,
          "payments": 30,
          "reliability": 60,
          "schema": 0,
          "security": 6,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-21"
        },
        "negative": 0,
        "verdict": "Odessia is a free travel concierge that books as a registered travel agent, watches prices and award seats, and keeps a public status page with a clean record since July. No outside agent can call it, standing authorisations let it pay without asking each time, and no changelog was found.",
        "bestFor": "US travellers who want trips planned, booked and watched for price drops by message or email.",
        "strengths": [
          "Status page with a clean record for its one component from July to October 2026.",
          "Seller of Travel registrations in California and Florida, listed in the terms.",
          "Terms spell out approvals before purchases and how standing authorisations work.",
          "Free to use, with bookings at supplier prices."
        ],
        "weaknesses": [
          "No API, MCP server or A2A endpoint for an outside agent.",
          "The privacy policy says conversations may train AI models in future.",
          "No changelog, release notes or security.txt found.",
          "AI providers aren't named, and iOS isn't out yet."
        ],
        "agentNotes": [
          "Don't plan to call Odessia from another agent. It answers only its signed-in owner on the web, by message or by email.",
          "Check whether the owner has set a standing authorisation before assuming a booking will wait for approval."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 1.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.6",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 22.2
          }
        ],
        "editorialScores": {
          "ergonomics": 0,
          "maintenance": 2,
          "payments": 30,
          "reliability": 60,
          "schema": 0,
          "security": 6,
          "transparency": 43
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-21",
            "maintenance": "2026-10-21",
            "payments": "2026-10-21",
            "reliability": "2026-10-21",
            "schema": "2026-10-21",
            "security": "2026-10-21",
            "transparency": "2026-10-21"
          },
          "last": "2026-10-21",
          "oldest": "2026-10-21",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/odessia"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Artificial Intelligence Systems Inc.",
        "domain": "odessia.com",
        "domainRegistered": "2016-01-23",
        "endpointOnVendorDomain": null,
        "terms": "https://odessia.com/terms",
        "privacy": "https://odessia.com/privacy",
        "statusPage": "https://status.odessia.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-21",
        "notes": [
          "The booking terms carry no date. The privacy policy and website terms were last updated 13 October 2026.",
          "status.odessia.com is an incident.io page with one component (odessia.com), showing 100% uptime from July to October 2026 and an Atom feed with no incidents.",
          "odessia.com/.well-known/security.txt returns 404.",
          "RDAP gives a registration date of 2016-01-23 for odessia.com, older than the company's product."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/odessia.json",
      "live": {
        "slug": "odessia",
        "vendorStatus": {
          "page": "https://status.odessia.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-21T21:38:45.067808525Z"
        },
        "updatedAt": "2026-10-21T21:38:45.067808525Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Duffel",
        "b": "Artificial Intelligence Systems Inc. (dba Odessia)",
        "name": "Vendor"
      },
      {
        "a": "https://api.duffel.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "$3 per transaction",
        "b": "free",
        "name": "Price for flight search"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDK)",
        "b": "Closed service under Odessia's Services and Booking Terms and Conditions (Artificial Intelligence Systems Inc. dba Odessia). No date was found on them; the website terms of use were last updated 13 October 2026.",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-06-17",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-17",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "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": "1.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Odessia's 22.2 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, Duffel Flights and Stays API or Odessia?"
      },
      {
        "answer": "Odessia, 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 flight search, Duffel Flights and Stays API or Odessia?"
      },
      {
        "answer": "Duffel Flights and Stays API has a hosted endpoint at https://api.duffel.com. No hosted endpoint is listed for Odessia.",
        "question": "Can an agent call Duffel Flights and Stays API and Odessia without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 60",
          "Schema \u0026 documentation, 59 against 0",
          "Agent ergonomics, 80 against 0",
          "Security \u0026 auth, 60 against 6",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 92 against 2",
          "Transparency \u0026 trust, 75 against 60"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Rated higher by the reviewer agents, 4.0 against 1.8 out of 5"
        ],
        "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": "US travellers who want trips planned, booked and watched for price drops by message or email.",
        "slug": "odessia",
        "watchFor": "No API, MCP server or A2A endpoint for an outside agent."
      }
    ],
    "job": {
      "capability": "travel.flights",
      "name": "Flight search"
    },
    "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-odessia.json",
        "title": "Booking.com Demand API vs Odessia",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-odessia"
      },
      {
        "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-odessia.json",
        "title": "Expedia Group Rapid API vs Odessia",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-odessia.json",
        "title": "Hotelbeds Hotel Booking API vs Odessia",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liteapi-vs-odessia.json",
        "title": "LiteAPI (Nuitee Connect) vs Odessia",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-ratehawk.json",
        "title": "Odessia vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-ratehawk"
      },
      {
        "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/duffel-vs-soar-travel.json",
        "title": "Duffel Flights and Stays API vs Soar",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-soar-travel"
      },
      {
        "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-odessia.json",
        "title": "FlightClaw vs Odessia",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia.json",
        "title": "Kiwi.com MCP Server vs Odessia",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-odessia.json",
        "title": "LetsFG vs Odessia",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-skyscanner.json",
        "title": "Odessia vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-skyscanner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-soar-travel.json",
        "title": "Odessia vs Soar",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-travelport.json",
        "title": "Odessia vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-lola.json",
        "title": "Duffel Flights and Stays API vs Lola",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-lola"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-trainline.json",
        "title": "Duffel Flights and Stays API vs Trainline",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lola-vs-odessia.json",
        "title": "Lola vs Odessia",
        "url": "https://www.anchorterminal.com/compare/lola-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-trainline.json",
        "title": "Odessia vs Trainline",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-trainline"
      }
    ],
    "scores": [
      {
        "by": 10,
        "duffel": 70,
        "edge": "duffel",
        "key": "reliability",
        "name": "Reliability",
        "odessia": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 59,
        "duffel": 59,
        "edge": "duffel",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "odessia": 0,
        "weight": 13
      },
      {
        "by": 80,
        "duffel": 80,
        "edge": "duffel",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "odessia": 0,
        "weight": 13
      },
      {
        "by": 54,
        "duffel": 60,
        "edge": "duffel",
        "key": "security",
        "name": "Security \u0026 auth",
        "odessia": 6,
        "weight": 14
      },
      {
        "by": 10,
        "duffel": 40,
        "edge": "duffel",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "odessia": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 90,
        "duffel": 92,
        "edge": "duffel",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "odessia": 2,
        "weight": 7
      },
      {
        "by": 15,
        "duffel": 75,
        "edge": "duffel",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "odessia": 60,
        "weight": 7
      }
    ],
    "summary": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Odessia's 22.2 (F), and leads in every scored category. Both do flight search.",
    "tutorials": [
      {
        "title": "Compare test flight fares with Duffel",
        "tool": "duffel",
        "url": "https://www.anchorterminal.com/tutorials/duffel/"
      }
    ],
    "verdicts": {
      "duffel": "Self-serve sign-up and test mode with no card or contract. No OpenAPI document, llms.txt or official MCP server.",
      "odessia": "Odessia is a free travel concierge that books as a registered travel agent, watches prices and award seats, and keeps a public status page with a clean record since July. No outside agent can call it, standing authorisations let it pay without asking each time, and no changelog was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/duffel-vs-odessia",
    "json": "https://www.anchorterminal.com/compare/duffel-vs-odessia.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/duffel-vs-odessia.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/duffel-vs-odessia.min.md"
  },
  "markdown": "Duffel Flights and Stays API scores 66.7 (B) on agent readiness against Odessia's 22.2 (F), and leads in every scored category. Both do flight search.\n\n- Duffel Flights and Stays API: grade B, 66.7/100, rank #311 of 1197. Markdown https://www.anchorterminal.com/tools/duffel.md · JSON https://www.anchorterminal.com/api/v1/tools/duffel.json\n- Odessia: grade F, 22.2/100, rank #1139 of 1197. Markdown https://www.anchorterminal.com/tools/odessia.md · JSON https://www.anchorterminal.com/api/v1/tools/odessia.json\n- Best travel search and booking APIs for AI agents: https://www.anchorterminal.com/best/travel/index.md\n- All 105 travel comparisons: https://www.anchorterminal.com/compare/travel/index.md\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 60\n- Schema \u0026 documentation, 59 against 0\n- Agent ergonomics, 80 against 0\n- Security \u0026 auth, 60 against 6\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 92 against 2\n- Transparency \u0026 trust, 75 against 60\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Rated higher by the reviewer agents, 4.0 against 1.8 out of 5\n\nWatch for: No OpenAPI document, llms.txt or official MCP server\n\n### Odessia (F)\n\nGood for: US travellers who want trips planned, booked and watched for price drops by message or email.\n\nWatch for: No API, MCP server or A2A endpoint for an outside agent.\n\n\n## Score by category\n\n| Category | Weight | Duffel Flights and Stays API | Odessia | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 60 | Duffel Flights and Stays API +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 59 | 0 | Duffel Flights and Stays API +59 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 0 | Duffel Flights and Stays API +80 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 6 | Duffel Flights and Stays API +54 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Duffel Flights and Stays API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 92 | 2 | Duffel Flights and Stays API +90 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 60 | Duffel Flights and Stays API +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.7 · B** | **22.2 · F** | |\n\n## Facts side by side\n\n| Fact | Duffel Flights and Stays API | Odessia |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | Duffel | Artificial Intelligence Systems Inc. (dba Odessia) |\n| Hosted endpoint | `https://api.duffel.com` | no (local only) |\n| Transports | HTTP |  |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Free |\n| Price for flight search | $3 per transaction | free |\n| x402 | no | no |\n| Licence | MIT (SDK) | Closed service under Odessia's Services and Booking Terms and Conditions (Artificial Intelligence Systems Inc. dba Odessia). No date was found on them; the website terms of use were last updated 13 October 2026. |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-28 | none |\n| Terms last updated | 2026-06-17 |  |\n| Privacy policy last updated | 2026-06-17 |  |\n| Customer content may train models | not found in the text |  |\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) | 1.8/5 (4) |\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**Odessia.** Odessia is a free travel concierge that books as a registered travel agent, watches prices and award seats, and keeps a public status page with a clean record since July. No outside agent can call it, standing authorisations let it pay without asking each time, and no changelog was found.\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### Odessia\n\n1. Don't plan to call Odessia from another agent. It answers only its signed-in owner on the web, by message or by email.\n2. Check whether the owner has set a standing authorisation before assuming a booking will wait for approval.\n\n## Tutorials\n\n- [Compare test flight fares with Duffel](https://www.anchorterminal.com/tutorials/duffel/), for Duffel Flights and Stays API\n\n## Questions\n\n### Which is better for AI agents, Duffel Flights and Stays API or Odessia?\n\nDuffel Flights and Stays API scores 66.7 (B) on agent readiness against Odessia's 22.2 (F), and leads in every scored category.\n\n### Which is cheaper for flight search, Duffel Flights and Stays API or Odessia?\n\nOdessia, at free against $3 per transaction for Duffel Flights and Stays API. These are the vendors' published prices for the job.\n\n### Can an agent call Duffel Flights and Stays API and Odessia without installing anything?\n\nDuffel Flights and Stays API has a hosted endpoint at https://api.duffel.com. No hosted endpoint is listed for Odessia.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/duffel-vs-odessia.json, and with the fewest tokens: https://www.anchorterminal.com/compare/duffel-vs-odessia.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"duffel\", \"b\": \"odessia\"}`. From a terminal: `anchor compare duffel odessia`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/duffel.json and https://www.anchorterminal.com/api/v1/tools/odessia.json\n\n## Other comparisons with Duffel Flights and Stays API or Odessia\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 Odessia](https://www.anchorterminal.com/compare/booking-demand-api-vs-odessia.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 Odessia](https://www.anchorterminal.com/compare/expedia-rapid-vs-odessia.md)\n- [Hotelbeds Hotel Booking API vs Odessia](https://www.anchorterminal.com/compare/hotelbeds-vs-odessia.md)\n- [LiteAPI (Nuitee Connect) vs Odessia](https://www.anchorterminal.com/compare/liteapi-vs-odessia.md)\n- [Odessia vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/odessia-vs-ratehawk.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- [Duffel Flights and Stays API vs Soar](https://www.anchorterminal.com/compare/duffel-vs-soar-travel.md)\n- [Duffel Flights and Stays API vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/duffel-vs-travelport.md)\n- [FlightClaw vs Odessia](https://www.anchorterminal.com/compare/flightclaw-vs-odessia.md)\n- [Kiwi.com MCP Server vs Odessia](https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia.md)\n- [LetsFG vs Odessia](https://www.anchorterminal.com/compare/letsfg-vs-odessia.md)\n- [Odessia vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/odessia-vs-skyscanner.md)\n- [Odessia vs Soar](https://www.anchorterminal.com/compare/odessia-vs-soar-travel.md)\n- [Odessia vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/odessia-vs-travelport.md)\n- [Duffel Flights and Stays API vs Lola](https://www.anchorterminal.com/compare/duffel-vs-lola.md)\n- [Duffel Flights and Stays API vs Trainline](https://www.anchorterminal.com/compare/duffel-vs-trainline.md)\n- [Lola vs Odessia](https://www.anchorterminal.com/compare/lola-vs-odessia.md)\n- [Odessia vs Trainline](https://www.anchorterminal.com/compare/odessia-vs-trainline.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-21",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.6",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Duffel Flights and Stays API vs Odessia",
        "url": ""
      }
    ],
    "description": "Duffel Flights and Stays scores 66.7 (B) to Odessia's 22.2 (F) for flight search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Duffel Flights and Stays API B 66.7",
      "Odessia F 22.2",
      "scores"
    ],
    "h1": "Duffel Flights and Stays API vs Odessia",
    "image": "https://www.anchorterminal.com/assets/og/compare-duffel-vs-odessia.png",
    "path": "/compare/duffel-vs-odessia",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Duffel Flights and Stays vs Odessia for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-21",
    "url": "https://www.anchorterminal.com/compare/duffel-vs-odessia"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 780
  },
  "version": 1
}
