{
  "data": {
    "a": {
      "slug": "airwallex",
      "name": "Airwallex Spend and Issuing",
      "vendor": "Airwallex",
      "vendorUrl": "https://www.airwallex.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "Airwallex is a multi-currency business account with company cards, expense management and bill pay. Its REST API issues and controls cards, reads card transactions and expenses, and creates vendors, purchase orders and bills. A CLI and MCP server use OAuth.",
      "url": "https://www.anchorterminal.com/tools/airwallex",
      "markdownUrl": "https://www.anchorterminal.com/tools/airwallex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/airwallex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/airwallex.json",
      "repo": "https://github.com/airwallex/airwallex-marketplace",
      "license": "Proprietary service under Airwallex's service agreement and API terms. The plugin and skills repository is Apache-2.0 and `@airwallex/node-sdk` is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.airwallex.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@airwallex/node-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Access is self-serve in the sandbox and for an Airwallex customer in production. A user with the Owner, Admin or Developer role creates a key in the web app under Developer, then API keys. Scoped keys grant Read or Write per resource and can be tied to IP ranges, and admin keys are unrestricted. A key and client ID exchange at `POST /api/v1/authentication/login` for a bearer token that lasts 30 minutes. Spend resources need organisation-level permissions. The CLI, the MCP servers and partner apps use OAuth 2.0 with 64 scopes, and only Owner, Admin and Finance Admin users can consent. The service agreement says Airwallex must first approve API access, and the CLI guide says card and Issuing commands may need support to enable them.",
      "pricing": "freemium",
      "pricingNotes": "No separate API fee is published. The US pricing page lists Explore at $0 with up to 10 free Spend users, Grow at $12 per active Spend user a month up to 250 users, and Accelerate on request. It lists direct Spend API integration with an ERP under Accelerate and sends platform API and embedded finance use to sales. A sandbox account opens at once from a signup form with no payment card or contract, so an agent's owner can start there. Card, FX and transfer fees are on a separate fee schedule (checked 2026-10-08).",
      "priceSummary": "$12 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the API reference pages read or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 7,
        "npmWeekly": 44464,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.airwallex.com/docs/",
      "llmsTxt": "https://www.airwallex.com/docs/llms.txt",
      "capabilities": [
        "spend.transactions",
        "spend.cards",
        "spend.expenses",
        "spend.bills",
        "spend.procurement"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "cli",
        "llms-txt",
        "webhooks",
        "sandbox",
        "multi-currency",
        "soc2",
        "pci-dss",
        "iso27001",
        "status-page",
        "security-txt",
        "bug-bounty"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.3,
        "grade": "B",
        "agentReady": false,
        "rank": 187,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 66,
          "payments": 25,
          "reliability": 77,
          "schema": 69,
          "security": 84,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Scoped API keys split read from write per resource, tokens last 30 minutes, and the sandbox opens at once with no contract. No OpenAPI spec was found, every Spend endpoint read is marked beta, the pricing page lists direct Spend API integration under the custom-priced Accelerate plan, and no SLA was found.",
        "bestFor": "A company already banking with Airwallex in several currencies that wants an agent to issue cards with limits, read card transactions and expenses, load vendors, purchase orders and bills, and sync status to an ERP.",
        "strengths": [
          "Scoped API keys grant Read or Write per resource, can be limited to listed IP ranges, and exchange for bearer tokens that last 30 minutes",
          "A sandbox account opens at once from a signup form, with the full API except Connected Accounts and simulation endpoints for card transactions",
          "Rate limits are published with numbers, 100 requests a second per account and 20 per endpoint in production, with backoff guidance for 429",
          "Create calls such as `POST /api/v1/issuing/cards/create` and `POST /api/v1/spend/bills/create` require a `request_id`, so a retried request isn't applied twice",
          "status.airwallex.com has separate Spend, Issuing, API Gateway and Sandbox components, and none was named in an incident between 27 April and 8 October 2026"
        ],
        "weaknesses": [
          "No OpenAPI spec was found. The reference is a Markdown page per endpoint, and the CLI prints one endpoint's schema at a time",
          "Each Spend endpoint we read (expenses, vendors, bills, purchase orders) is marked beta, and the pricing page lists direct Spend API integration under the custom-priced Accelerate plan",
          "The Spend API reads expenses and sets sync status. No endpoint was found to attach a receipt, code a card expense or approve one",
          "The only server SDK is `@airwallex/node-sdk`, still in beta and last published on 31 December 2025",
          "No SLA was found, and the Security Audit Logs API is open to selected accounts only and covers logins, user changes and key changes, not API calls"
        ],
        "agentNotes": [
          "Exchange `x-client-id` and `x-api-key` at `POST /api/v1/authentication/login` once, then reuse the bearer token for 30 minutes. The login endpoint allows 100 requests a minute per key",
          "Create Spend keys with organisation-level permissions. With a key linked to several accounts, send `x-login-as` at login or the token carries no account permissions",
          "Send a fresh UUID as `request_id` on every create call and reuse the same value when retrying after a timeout",
          "Expect two pagination styles. Spend and card transaction events use the `page` bookmark with `page_after` and `page_before`. Cards and legacy transactions use `page_num` and `has_more`",
          "Card and expense lists default to the last 30 days. Pass both created-at bounds to read further back, and fetch a card singly to see its `authorization_controls`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.3
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 66,
          "payments": 25,
          "reliability": 77,
          "schema": 69,
          "security": 84,
          "transparency": 64
        },
        "provenanceScore": 92
      },
      "connect": {
        "install": "curl -fsSL https://static.airwallex.com/developer-tools/airwallex-cli/install.sh | sh",
        "http": "curl -X POST https://api.sandbox.airwallex.com/api/v1/authentication/login \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-api-key: {{YOUR_API_KEY}}' \\\n  -H 'x-client-id: {{YOUR_CLIENT_ID}}'",
        "claudeCode": "claude mcp add-json airwallex '{ \"type\": \"http\", \"url\": \"https://mcp.airwallex.com/mcp\" }'",
        "config": {
          "mcpServers": {
            "airwallex": {
              "type": "http",
              "url": "https://mcp.airwallex.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/airwallex"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Explore plan",
          "unit": "seat-month",
          "usd": 0,
          "note": "Up to 10 free Spend users. No separate API fee is published"
        },
        {
          "item": "Grow plan",
          "unit": "seat-month",
          "usd": 12,
          "note": "Per active Spend user, up to 250. Accelerate, which lists direct Spend API integration, is priced on request"
        }
      ],
      "provenance": {
        "legalEntity": "Airwallex US, LLC",
        "domain": "airwallex.com",
        "domainRegistered": "2015-11-08",
        "endpointOnVendorDomain": true,
        "terms": "https://www.airwallex.com/us/terms/application-programming-interface-terms",
        "privacy": "https://www.airwallex.com/us/terms/privacy-policy-airwallex",
        "statusPage": "https://status.airwallex.com",
        "changelog": "https://www.airwallex.com/docs/api/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms and privacy policy cited are the US ones. The US privacy policy names Airwallex US, LLC among the entities responsible, and the site footer gives Airwallex US, LLC (NMLS #1928093) as the licensed money transmitter. Other regions have their own entities and documents.",
          "The API terms (API Developer Terms and Conditions) are dated 20 June 2025. The service agreement was last updated on 2 December 2025 and took effect on 1 January 2026. The Spend Management Terms are dated 6 December 2023.",
          "The API answers at api.airwallex.com and api.sandbox.airwallex.com, and the MCP servers at mcp.airwallex.com and mcp.sandbox.airwallex.com.",
          "www.airwallex.com/.well-known/security.txt lists bugbounty@airwallex.com and security@airwallex.com and an expiry of 30 June 2030. The timestamp has a space inside it, which isn't the RFC 9116 format.",
          "The US privacy policy shows no last-updated line in the text we read. The global policy at /terms/privacy-policy is dated 26 February 2026.",
          "RDAP for airwallex.com gives a registration date of 2015-11-08."
        ],
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/airwallex.json",
      "live": {
        "slug": "airwallex",
        "probe": {
          "target": "https://api.airwallex.com",
          "method": "get",
          "lastAt": "2026-10-08T22:39:40.039292724Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 49,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 45,
          "p95ms24h": 77,
          "samples24h": 36,
          "samples30d": 36,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 36,
              "ok": 36
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.airwallex.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T22:39:08.025281626Z"
        },
        "updatedAt": "2026-10-08T22:39:40.039292724Z"
      }
    },
    "answer": "Airwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation.",
    "b": {
      "slug": "brex",
      "name": "Brex",
      "vendor": "Brex LLC",
      "vendorUrl": "https://www.brex.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "Brex is a spend platform with corporate cards, expense management, bill pay, travel and business accounts. Its REST Developer API reads and writes cards, expenses, spend limits, vendors and transfers, and a hosted MCP server is in beta.",
      "url": "https://www.anchorterminal.com/tools/brex",
      "markdownUrl": "https://www.anchorterminal.com/tools/brex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/brex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/brex.json",
      "license": "Proprietary service under the Brex Platform Agreement and the Brex Access Agreement",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.brex.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve for a Brex customer. An account admin or card admin accepts the Developer API agreement in the dashboard, then creates a user token with chosen scopes at Settings \u003e Developer. The token is sent as a Bearer header, is shown once, can be revoked, and expires after 90 days without a call. Partners acting for other Brex accounts apply to Brex for a client ID and secret and use the OAuth 2.0 authorisation code grant, with one-hour access tokens and refresh tokens. The MCP server takes OAuth with dynamic client registration, where each employee signs in with their own permissions, or an admin's user token.",
      "pricing": "freemium",
      "pricingNotes": "No separate API fee. brex.com/pricing lists Brex API access under Essentials at $0 per user per month, with Premium at $12 per user per month and Enterprise priced on request. Access needs an approved Brex business account, so an agent can't start without one. There is no customer sandbox, and the staging server is for approved partners only. The Access Agreement lets Brex introduce API fees on 30 days' notice (checked 2026-10-08).",
      "priceSummary": "$12 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 43,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.brex.com",
      "llmsTxt": "https://developer.brex.com/llms.txt",
      "openapi": "https://developer.brex.com/_bundle/openapi/team_api.yaml",
      "capabilities": [
        "spend.transactions",
        "spend.expenses",
        "spend.cards",
        "spend.bills"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "soc2",
        "pci-dss"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.7,
        "grade": "C",
        "agentReady": false,
        "rank": 391,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 66,
          "payments": 25,
          "reliability": 60,
          "schema": 80,
          "security": 72,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-02 and 2026-09. The changelog records the List expenses maximum `limit` cut from 1,000 to 100 in February 2026, and `GET /v2/users/{id}/limit` removed from the Team API in September 2026 without a deprecated label in the entry. The Team API is at version 1.0, and the launch-stages page says breaking changes to generally available APIs come as new versions with deprecation timelines. Both changes are documented in the month they shipped, and notice by email couldn't be checked, so the smallest deduction applies (https://developer.brex.com/changelog)."
        ],
        "verdict": "User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026.",
        "bestFor": "A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.",
        "strengths": [
          "Ten public OpenAPI 3 specs covering 115 operations, plus llms.txt and a Markdown twin of every docs page",
          "User tokens take scopes chosen at creation, most with a read-only variant, and card numbers need the separate `cards.pan` scope",
          "Every POST and PUT accepts an `Idempotency-Key`, and Create transfer and Create card require one",
          "API access is listed on the Essentials plan at $0 per user per month",
          "The hosted MCP server uses OAuth with dynamic client registration and each employee's own Brex permissions"
        ],
        "weaknesses": [
          "The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it",
          "No customer sandbox. The docs say staging isn't a sandbox and won't accept customer tokens",
          "No official SDK. The docs list three community libraries that Brex doesn't support",
          "status.brex.com logs API request errors from 16:01 to 20:34 UTC on 4 August 2026 and invalidated developer tokens on 21 September 2026",
          "The MCP server is beta with 43 tools, and approvals and card management aren't available through it"
        ],
        "agentNotes": [
          "Ask an account admin or card admin for a user token with only the scopes the task needs, and prefer the `.readonly` variants. A token unused for 90 days expires.",
          "Send a stored `Idempotency-Key` on every POST and PUT. Create transfer and Create card reject requests without one.",
          "Only settled transactions are returned. Poll card and cash transactions with `posted_at_start` and a lookback of at least one day.",
          "Keep under 1,000 requests in 60 seconds per client and account, and back off exponentially with jitter on 429.",
          "Send only ASCII in free-text fields, and quote the `X-Brex-Trace-Id` response header when reporting an error."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.7
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 66,
          "payments": 25,
          "reliability": 60,
          "schema": 80,
          "security": 72,
          "transparency": 47
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -i -X GET \\\n  https://api.brex.com/v2/users/me \\\n  -H 'Authorization: Bearer \u003cYOUR_TOKEN_FROM_STEP_1_HERE\u003e'",
        "claudeCode": "claude mcp add --transport http brex https://api.brex.com/mcp",
        "config": {
          "mcpServers": {
            "brex": {
              "headers": {
                "Authorization": "Bearer YOUR_BREX_ACCESS_TOKEN"
              },
              "type": "http",
              "url": "https://api.brex.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/brex"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Essentials plan",
          "unit": "seat-month",
          "usd": 0,
          "note": "Brex API access listed on this plan"
        },
        {
          "item": "Premium plan",
          "unit": "seat-month",
          "usd": 12,
          "note": "Enterprise is priced on request"
        }
      ],
      "provenance": {
        "legalEntity": "Brex LLC",
        "domain": "brex.com",
        "domainRegistered": "1998-10-22",
        "endpointOnVendorDomain": true,
        "terms": "https://www.brex.com/legal/platform-agreement",
        "privacy": "https://www.brex.com/legal/privacy",
        "statusPage": "https://status.brex.com",
        "changelog": "https://developer.brex.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Platform Agreement defines Brex as Brex LLC, a wholly owned subsidiary of Capital One, N.A., and the pricing page footer gives addresses in San Francisco and Salt Lake City.",
          "API use is also governed by the Brex Access Agreement at https://www.brex.com/legal/developer-portal, which an admin accepts in the dashboard before creating a token.",
          "The API and the MCP server answer at api.brex.com and the authorisation server at accounts-api.brex.com, both brex.com subdomains. The former host platform.brexapis.com still works per the docs.",
          "www.brex.com/.well-known/security.txt returns 404. brex.com/trust/responsible-disclosure has a disclosure policy and a form run with Bugcrowd.",
          "RDAP for brex.com gives a registration date of 1998-10-22."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/brex.json",
      "live": {
        "slug": "brex",
        "probe": {
          "target": "https://api.brex.com",
          "method": "get",
          "lastAt": "2026-10-08T22:39:43.308943618Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 448,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 434,
          "p95ms24h": 523,
          "samples24h": 79,
          "samples30d": 79,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 79,
              "ok": 79
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.brex.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T22:39:09.695324214Z"
        },
        "securityTxt": {
          "url": "https://brex.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:43.637271768Z"
        },
        "pages": [
          {
            "url": "https://developer.brex.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:07.265606865Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "953aa59e7531"
          },
          {
            "url": "https://www.brex.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:48.465771046Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b6066f1a37fc"
          },
          {
            "url": "https://www.brex.com/legal/platform-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:45.950905207Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "86931ef51c0f"
          }
        ],
        "updatedAt": "2026-10-08T22:39:43.308943618Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Airwallex",
        "b": "Brex LLC",
        "name": "Vendor"
      },
      {
        "a": "https://api.airwallex.com",
        "b": "https://api.brex.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Airwallex's service agreement and API terms. The plugin and skills repository is Apache-2.0 and `@airwallex/node-sdk` is MIT",
        "b": "Proprietary service under the Brex Platform Agreement and the Brex Access Agreement",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "43",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2025-06-20",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "7 stars, 44k npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Airwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, Airwallex Spend and Issuing or Brex?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Airwallex Spend and Issuing and Brex need an API key?"
      },
      {
        "answer": "Yes. Airwallex Spend and Issuing has a hosted endpoint at https://api.airwallex.com and Brex at https://api.brex.com.",
        "question": "Can an agent call Airwallex Spend and Issuing and Brex without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 77 against 60",
          "Security \u0026 auth, 84 against 72",
          "Transparency \u0026 trust, 78 against 67"
        ],
        "also": [
          "No incidents deducted, where Brex loses 3 points for them"
        ],
        "goodFor": "A company already banking with Airwallex in several currencies that wants an agent to issue cards with limits, read card transactions and expenses, load vendors, purchase orders and bills, and sync status to an ERP.",
        "slug": "airwallex",
        "watchFor": "No OpenAPI spec was found. The reference is a Markdown page per endpoint, and the CLI prints one endpoint's schema at a time"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 80 against 69"
        ],
        "also": null,
        "goodFor": "A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.",
        "slug": "brex",
        "watchFor": "The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it"
      }
    ],
    "job": {
      "capability": "spend.transactions",
      "name": "Spend transactions"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-bill.json",
        "title": "Airwallex Spend and Issuing vs BILL",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-bill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-expensify.json",
        "title": "Airwallex Spend and Issuing vs Expensify",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-expensify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-mercury.json",
        "title": "Airwallex Spend and Issuing vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-pleo.json",
        "title": "Airwallex Spend and Issuing vs Pleo API + MCP",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-pleo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-ramp.json",
        "title": "Airwallex Spend and Issuing vs Ramp",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-ramp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-spendesk.json",
        "title": "Airwallex Spend and Issuing vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-spendesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-brex.json",
        "title": "BILL vs Brex",
        "url": "https://www.anchorterminal.com/compare/bill-vs-brex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-expensify.json",
        "title": "Brex vs Expensify",
        "url": "https://www.anchorterminal.com/compare/brex-vs-expensify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-mercury.json",
        "title": "Brex vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/brex-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-pleo.json",
        "title": "Brex vs Pleo API + MCP",
        "url": "https://www.anchorterminal.com/compare/brex-vs-pleo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-ramp.json",
        "title": "Brex vs Ramp",
        "url": "https://www.anchorterminal.com/compare/brex-vs-ramp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-spendesk.json",
        "title": "Brex vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/brex-vs-spendesk"
      }
    ],
    "scores": [
      {
        "airwallex": 77,
        "brex": 60,
        "by": 17,
        "edge": "airwallex",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "airwallex": 69,
        "brex": 80,
        "by": 11,
        "edge": "brex",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "airwallex": 69,
        "brex": 70,
        "by": 1,
        "edge": "brex",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "airwallex": 84,
        "brex": 72,
        "by": 12,
        "edge": "airwallex",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "airwallex": 25,
        "brex": 25,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "airwallex": 66,
        "brex": 66,
        "by": 0,
        "edge": "",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "airwallex": 78,
        "brex": 67,
        "by": 11,
        "edge": "airwallex",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Airwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions.",
    "verdicts": {
      "airwallex": "Scoped API keys split read from write per resource, tokens last 30 minutes, and the sandbox opens at once with no contract. No OpenAPI spec was found, every Spend endpoint read is marked beta, the pricing page lists direct Spend API integration under the custom-priced Accelerate plan, and no SLA was found.",
      "brex": "User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/airwallex-vs-brex",
    "json": "https://www.anchorterminal.com/compare/airwallex-vs-brex.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/airwallex-vs-brex.md",
    "slim": "https://www.anchorterminal.com/compare/airwallex-vs-brex.min.md"
  },
  "markdown": "Airwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions.\n\n- Airwallex Spend and Issuing: grade B, 68.3/100, rank #187 of 722. Markdown https://www.anchorterminal.com/tools/airwallex.md · JSON https://www.anchorterminal.com/api/v1/tools/airwallex.json\n- Brex: grade C, 60.7/100, rank #391 of 722. Markdown https://www.anchorterminal.com/tools/brex.md · JSON https://www.anchorterminal.com/api/v1/tools/brex.json\n\n## Which one, for what\n\n### Airwallex Spend and Issuing (B)\n\nGood for: A company already banking with Airwallex in several currencies that wants an agent to issue cards with limits, read card transactions and expenses, load vendors, purchase orders and bills, and sync status to an ERP.\n\nAhead on:\n- Reliability, 77 against 60\n- Security \u0026 auth, 84 against 72\n- Transparency \u0026 trust, 78 against 67\n\nAlso in its favour:\n- No incidents deducted, where Brex loses 3 points for them\n\nWatch for: No OpenAPI spec was found. The reference is a Markdown page per endpoint, and the CLI prints one endpoint's schema at a time\n\n### Brex (C)\n\nGood for: A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.\n\nAhead on:\n- Schema \u0026 documentation, 80 against 69\n\nWatch for: The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it\n\n\n## Score by category\n\n| Category | Weight | Airwallex Spend and Issuing | Brex | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 77 | 60 | Airwallex Spend and Issuing +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 80 | Brex +11 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 70 | Brex +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 84 | 72 | Airwallex Spend and Issuing +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 25 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 66 | 66 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 67 | Airwallex Spend and Issuing +11 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **68.3 · B** | **60.7 · C** | |\n\n## Facts side by side\n\n| Fact | Airwallex Spend and Issuing | Brex |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Airwallex | Brex LLC |\n| Hosted endpoint | `https://api.airwallex.com` | `https://api.brex.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Airwallex's service agreement and API terms. The plugin and skills repository is Apache-2.0 and `@airwallex/node-sdk` is MIT | Proprietary service under the Brex Platform Agreement and the Brex Access Agreement |\n| Tools exposed | none | 43 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-30 | 2026-10-01 |\n| Terms last updated | 2025-06-20 | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 7 stars, 44k npm/wk | none |\n\n## Verdicts\n\n**Airwallex Spend and Issuing.** Scoped API keys split read from write per resource, tokens last 30 minutes, and the sandbox opens at once with no contract. No OpenAPI spec was found, every Spend endpoint read is marked beta, the pricing page lists direct Spend API integration under the custom-priced Accelerate plan, and no SLA was found.\n\n**Brex.** User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026.\n\n## Before you call either\n\n### Airwallex Spend and Issuing\n\n1. Exchange `x-client-id` and `x-api-key` at `POST /api/v1/authentication/login` once, then reuse the bearer token for 30 minutes. The login endpoint allows 100 requests a minute per key\n2. Create Spend keys with organisation-level permissions. With a key linked to several accounts, send `x-login-as` at login or the token carries no account permissions\n3. Send a fresh UUID as `request_id` on every create call and reuse the same value when retrying after a timeout\n4. Expect two pagination styles. Spend and card transaction events use the `page` bookmark with `page_after` and `page_before`. Cards and legacy transactions use `page_num` and `has_more`\n5. Card and expense lists default to the last 30 days. Pass both created-at bounds to read further back, and fetch a card singly to see its `authorization_controls`\n\n### Brex\n\n1. Ask an account admin or card admin for a user token with only the scopes the task needs, and prefer the `.readonly` variants. A token unused for 90 days expires.\n2. Send a stored `Idempotency-Key` on every POST and PUT. Create transfer and Create card reject requests without one.\n3. Only settled transactions are returned. Poll card and cash transactions with `posted_at_start` and a lookback of at least one day.\n4. Keep under 1,000 requests in 60 seconds per client and account, and back off exponentially with jitter on 429.\n5. Send only ASCII in free-text fields, and quote the `X-Brex-Trace-Id` response header when reporting an error.\n\n## Questions\n\n### Which is better for AI agents, Airwallex Spend and Issuing or Brex?\n\nAirwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation.\n\n### Do Airwallex Spend and Issuing and Brex need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Airwallex Spend and Issuing and Brex without installing anything?\n\nYes. Airwallex Spend and Issuing has a hosted endpoint at https://api.airwallex.com and Brex at https://api.brex.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/airwallex-vs-brex.json, and with the fewest tokens: https://www.anchorterminal.com/compare/airwallex-vs-brex.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"airwallex\", \"b\": \"brex\"}`. From a terminal: `anchor compare airwallex brex`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/airwallex.json and https://www.anchorterminal.com/api/v1/tools/brex.json\n\n## Other comparisons with Airwallex Spend and Issuing or Brex\n\n- [Airwallex Spend and Issuing vs BILL](https://www.anchorterminal.com/compare/airwallex-vs-bill.md)\n- [Airwallex Spend and Issuing vs Expensify](https://www.anchorterminal.com/compare/airwallex-vs-expensify.md)\n- [Airwallex Spend and Issuing vs Mercury API](https://www.anchorterminal.com/compare/airwallex-vs-mercury.md)\n- [Airwallex Spend and Issuing vs Pleo API + MCP](https://www.anchorterminal.com/compare/airwallex-vs-pleo.md)\n- [Airwallex Spend and Issuing vs Ramp](https://www.anchorterminal.com/compare/airwallex-vs-ramp.md)\n- [Airwallex Spend and Issuing vs Spendesk API + MCP](https://www.anchorterminal.com/compare/airwallex-vs-spendesk.md)\n- [BILL vs Brex](https://www.anchorterminal.com/compare/bill-vs-brex.md)\n- [Brex vs Expensify](https://www.anchorterminal.com/compare/brex-vs-expensify.md)\n- [Brex vs Mercury API](https://www.anchorterminal.com/compare/brex-vs-mercury.md)\n- [Brex vs Pleo API + MCP](https://www.anchorterminal.com/compare/brex-vs-pleo.md)\n- [Brex vs Ramp](https://www.anchorterminal.com/compare/brex-vs-ramp.md)\n- [Brex vs Spendesk API + MCP](https://www.anchorterminal.com/compare/brex-vs-spendesk.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": "Airwallex Spend and Issuing vs Brex",
        "url": ""
      }
    ],
    "description": "Airwallex Spend and Issuing scores 68.3 (B) on agent readiness against Brex's 60.7 (C), and leads in 3 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Airwallex Spend and Issuing B 68.3",
      "Brex C 60.7",
      "scores"
    ],
    "h1": "Airwallex Spend and Issuing vs Brex",
    "image": "https://www.anchorterminal.com/assets/og/compare-airwallex-vs-brex.png",
    "path": "/compare/airwallex-vs-brex",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Airwallex Spend and Issuing vs Brex for AI agents, B 68.3 vs C 60.7",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/airwallex-vs-brex"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
