{
  "data": {
    "a": {
      "slug": "xero",
      "name": "Xero API + MCP",
      "vendor": "Xero",
      "vendorUrl": "https://developer.xero.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Accounting API for Xero organisations, with contacts, invoices, bills, payments, bank transactions, manual journals, the balance sheet, profit and loss and trial balance, plus payroll in some regions.",
      "url": "https://www.anchorterminal.com/tools/xero",
      "markdownUrl": "https://www.anchorterminal.com/tools/xero.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/xero.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/xero.json",
      "repo": "https://github.com/XeroAPI/xero-mcp-server",
      "license": "MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.xero.com/api.xro/2.0",
      "packages": [
        {
          "registry": "npm",
          "name": "xero-node"
        },
        {
          "registry": "pypi",
          "name": "xero-python"
        },
        {
          "registry": "npm",
          "name": "@xeroapi/xero-mcp-server"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code (PKCE for public clients), or client credentials through a \"custom connection\" that is tied to one organisation. Access tokens last 1,800 seconds and refresh tokens up to 60 days. Every call carries a Bearer token and an `xero-tenant-id` header naming the organisation. Apps created from 29 April 2026 must use the granular scopes (accounting.invoices, accounting.reports.profitandloss.read and so on) rather than the old bundled ones. The MCP server takes a client id and secret for a custom connection, or a ready-made bearer token.",
      "pricing": "freemium",
      "pricingNotes": "Developer Platform plans are priced in Australian dollars and billed monthly on connected organisations. Starter is free with 5 connections and 1,000 API calls a day per organisation. Core is AUD 35 a month for 50 connections, Plus AUD 245 for 1,000 and Advanced AUD 1,445 for 10,000, each with 5,000 calls a day per organisation and an egress allowance of 10, 50 or 250 GB (AUD 2.40 a GB over). Plus and above need App Certification, Advanced and Enterprise a security assessment. Enterprise is priced on application. The model took effect on 2 March 2026 for existing developers and 4 December 2025 for new ones (https://developer.xero.com/pricing/).",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 51,
      "popularity": {
        "githubStars": 350,
        "npmWeekly": 394967,
        "pypiWeekly": 63610,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.xero.com/documentation/",
      "openapi": "https://github.com/XeroAPI/Xero-OpenAPI",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "oauth",
        "mcp",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.2,
        "grade": "B",
        "agentReady": false,
        "rank": 213,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 35,
          "reliability": 68,
          "schema": 79,
          "security": 64,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026. Developer docs, including the per-minute rate limits, only render with JavaScript.",
        "bestFor": "An agent keeping the books for UK, Australian or New Zealand businesses, or any team that wants read-only scopes and long deprecation notice.",
        "strengths": [
          "Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026",
          "Deprecations announced with 12 to 13 months' notice on a dated changelog",
          "Public OpenAPI specs, with an Idempotency-Key parameter on 101 accounting operations",
          "Free Starter tier for 5 connections and a Demo Company with sample data",
          "ISO 27001:2022, SOC 2 reports and a vulnerability disclosure programme"
        ],
        "weaknesses": [
          "Developer docs, including the per-minute rate limits, only render with JavaScript",
          "1,000 calls a day per organisation on the free tier, 5,000 on paid",
          "Official MCP server idle since 5 June 2026, with no CI, no annotations and no registry entry",
          "Prices in AUD only, and App Certification is needed above 50 connections",
          "No security.txt and no public subprocessor list"
        ],
        "agentNotes": [
          "Send xero-tenant-id on every call. The token alone doesn't name the organisation",
          "A bill is an Invoice with Type ACCPAY, a sales invoice is ACCREC. There's no separate bills endpoint",
          "Send an Idempotency-Key on creates so a retry after a timeout doesn't post twice",
          "Use If-Modified-Since and pageSize up to 100 to stay inside 1,000 calls a day on Starter",
          "Set XERO_SCOPES to read scopes only when the agent shouldn't write. The MCP still lists its write and delete tools"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.2
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 76,
          "payments": 35,
          "reliability": 68,
          "schema": 79,
          "security": 64,
          "transparency": 60
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl \"https://api.xero.com/api.xro/2.0/Invoices?Statuses=AUTHORISED\u0026page=1\" \\\n  -H \"Authorization: Bearer $XERO_ACCESS_TOKEN\" -H \"xero-tenant-id: $XERO_TENANT_ID\" -H \"Accept: application/json\"",
        "claudeCode": "claude mcp add xero -e XERO_CLIENT_ID=$XERO_CLIENT_ID -e XERO_CLIENT_SECRET=$XERO_CLIENT_SECRET -- npx -y @xeroapi/xero-mcp-server@latest",
        "config": {
          "mcpServers": {
            "xero": {
              "args": [
                "-y",
                "@xeroapi/xero-mcp-server@latest"
              ],
              "command": "npx",
              "env": {
                "XERO_CLIENT_ID": "${XERO_CLIENT_ID}",
                "XERO_CLIENT_SECRET": "${XERO_CLIENT_SECRET}",
                "XERO_SCOPES": "accounting.invoices accounting.contacts accounting.settings"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/xero"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Xero Limited",
        "domain": "xero.com",
        "domainRegistered": "1997-06-03",
        "endpointOnVendorDomain": true,
        "terms": "https://developer.xero.com/xero-developer-platform-terms-conditions/",
        "privacy": "https://www.xero.com/uk/legal/privacy/",
        "statusPage": "https://status.xero.com",
        "changelog": "https://developer.xero.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The developer terms name Xero Limited, New Zealand company 1830488. UK customers contract with Xero (UK) Limited, company 06071722, per the UK terms of use.",
          "The pricing page lists prices in AUD only. Overages are invoiced in arrears each calendar month under the commercial terms.",
          "Developer documentation pages return only metadata without JavaScript, so an agent can't read the rate limits or OAuth guides by fetching them. The OpenAPI specs on GitHub are the readable alternative."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/xero.json",
      "live": {
        "slug": "xero",
        "probe": {
          "target": "https://api.xero.com/api.xro/2.0",
          "method": "get",
          "lastAt": "2026-10-08T21:12:26.177917712Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 154,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 162,
          "p95ms24h": 308,
          "samples24h": 271,
          "samples30d": 1955,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 239,
              "ok": 239
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.xero.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:31.104360717Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@xeroapi/xero-mcp-server",
            "version": "0.0.17",
            "seenAt": "2026-10-08T16:35:23.132344952Z"
          },
          {
            "registry": "npm",
            "name": "xero-node",
            "version": "20.0.0",
            "seenAt": "2026-10-08T16:35:22.141327565Z"
          },
          {
            "registry": "pypi",
            "name": "xero-python",
            "version": "15.2.0",
            "released": "2026-09-04",
            "seenAt": "2026-10-08T16:35:22.946932673Z"
          }
        ],
        "githubStars": 372,
        "npmWeekly": 413652,
        "pypiWeekly": 70036,
        "securityTxt": {
          "url": "https://xero.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:41.602473738Z"
        },
        "domain": {
          "domain": "xero.com",
          "registered": "1997-06-03",
          "source": "https://rdap.verisign.com/com/v1/domain/xero.com",
          "checkedAt": "2026-10-04T13:09:35.716650808Z"
        },
        "pages": [
          {
            "url": "https://developer.xero.com/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:23.322473763Z",
            "changedAt": "2026-10-08T18:17:23.322473763Z",
            "fingerprint": "83fa4ea02d9b"
          },
          {
            "url": "https://developer.xero.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:26.156777262Z",
            "changedAt": "2026-10-07T18:04:10.37666473Z",
            "fingerprint": "10b42d8abb1a"
          },
          {
            "url": "https://www.xero.com/uk/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:43.803758415Z",
            "changedAt": "2026-10-07T18:14:36.070598475Z",
            "fingerprint": "657febf361be"
          },
          {
            "url": "https://developer.xero.com/xero-developer-platform-terms-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:27.767450012Z",
            "changedAt": "2026-10-05T15:55:00.303495189Z",
            "fingerprint": "f6af5803e050"
          }
        ],
        "updatedAt": "2026-10-08T21:12:26.177917712Z"
      }
    },
    "answer": "Xero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories.",
    "b": {
      "slug": "zoho-books",
      "name": "Zoho Books",
      "vendor": "Zoho",
      "vendorUrl": "https://www.zoho.com/books/",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Zoho Books is hosted accounting software from Zoho for small and mid-sized businesses. Agents reach it through the REST API v3, covering invoices, bills, payments, banking, journals and the chart of accounts behind OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/zoho-books",
      "markdownUrl": "https://www.anchorterminal.com/tools/zoho-books.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zoho-books.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zoho-books.json",
      "license": "Proprietary service under Zoho's Terms of Service",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://www.zohoapis.com/books/v3",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 only. A person registers a client in the Zoho developer console (a server-based application, or a self client for one's own organisation) and approves scopes, which narrow to one module and one operation. The access token lasts one hour and goes in `Authorization: Zoho-oauthtoken \u003ctoken\u003e`. The refresh token lasts until revoked. Every call also needs `organization_id`. Each data centre has its own accounts host and API domain. Registration is self-serve, with no app review or sales approval found for use inside one's own organisation.",
      "pricing": "freemium",
      "pricingNotes": "Free plan for one user and one accountant with 1,000 API requests a day, open to businesses with yearly revenue under $50,000. Paid plans cost $15 to $240 an organisation a month billed yearly in the US edition ($20 to $275 monthly) and have a 14-day trial. The plan sets the daily API cap, up to 10,000. No sandbox organisation was found, so an agent starts on the Free plan or a trial (https://www.zoho.com/us/books/pricing/, checked 2026-10-08).",
      "priceSummary": "$15 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI files or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.zoho.com/books/api/v3/introduction/",
      "llmsTxt": "https://www.zoho.com/us/books/help/llms.txt",
      "openapi": "https://www.zoho.com/books/api/v3/openapi-all.zip",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "oauth",
        "openapi",
        "mcp",
        "webhooks",
        "free-tier",
        "status-page",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.1,
        "grade": "C",
        "agentReady": false,
        "rank": 377,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 30,
          "reliability": 71,
          "schema": 71,
          "security": 68,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The public OpenAPI files cover 885 operations with OAuth scopes per module and operation, and the Free plan allows 1,000 API requests a day. No report endpoint, official SDK, SLA or dated API changelog was found, and the documented token calls put the client secret in the URL.",
        "bestFor": "Small businesses already on Zoho that want an agent to raise invoices, record bills and payments, reconcile bank transactions and post journals with narrow scopes.",
        "strengths": [
          "OpenAPI 3.0.0 files for 45 resources and 885 operations download from the docs as `openapi-all.zip`",
          "OAuth scopes narrow to one module and one operation, such as `ZohoBooks.invoices.READ`",
          "Every API reference operation has a Markdown twin, such as `/books/api/v3/invoices/create-an-invoice.md`",
          "The Free plan includes 1,000 API requests a day per the plan comparison",
          "The API Usage dashboard lists recent calls by user, module, IP address and application"
        ],
        "weaknesses": [
          "No profit and loss, balance sheet or other report endpoint appears in the API docs or the OpenAPI files",
          "The documented token and refresh calls put the client secret and refresh token in the URL query string",
          "Daily caps are low, 1,000 requests on Free and 10,000 on the top three plans",
          "No official SDK, SLA, API deprecation policy or dated API changelog found in the reviewed pages",
          "429 is documented without a Retry-After header or backoff guidance"
        ],
        "agentNotes": [
          "Send `organization_id` as a query parameter on every call. Read it from `GET /organizations` first",
          "Use the `api_domain` returned with the token, since each of the nine data centres has its own host (zohoapis.com, zohoapis.eu, zohoapis.in and others)",
          "Send `Authorization: Zoho-oauthtoken \u003ctoken\u003e` and refresh hourly. Each user keeps at most 20 refresh tokens and the oldest is deleted",
          "Stay under 100 requests a minute and the plan's daily cap. Codes 44, 45 and 1070 on a 429 mean minute, day and concurrency limits",
          "To repeat an update safely, send `X-Unique-Identifier-Key`, `X-Unique-Identifier-Value` and `X-Upsert` with a unique custom field. Creates have no idempotency key"
        ],
        "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": 61.1
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 56,
          "payments": 30,
          "reliability": 71,
          "schema": 71,
          "security": 68,
          "transparency": 54
        },
        "provenanceScore": 95
      },
      "connect": {
        "http": "curl -X GET 'https://www.zohoapis.com/books/v3/organizations' \\\n  -H \"Authorization: Zoho-oauthtoken $ZOHO_ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/zoho-books"
      },
      "sameCompany": [
        "zoho-zeptomail",
        "zoho-crm",
        "zoho-recruit",
        "zoho-people"
      ],
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Standard",
          "unit": "month",
          "usd": 15,
          "note": "per organisation, billed yearly; $20 billed monthly; 3 users, 2,000 API requests a day"
        },
        {
          "item": "Professional",
          "unit": "month",
          "usd": 40,
          "note": "per organisation, billed yearly; $50 billed monthly; 5 users, 5,000 API requests a day"
        },
        {
          "item": "Premium",
          "unit": "month",
          "usd": 60,
          "note": "per organisation, billed yearly; $70 billed monthly; 10 users, 10,000 API requests a day"
        },
        {
          "item": "Elite",
          "unit": "month",
          "usd": 120,
          "note": "per organisation, billed yearly; $150 billed monthly; 10 users, 10,000 API requests a day"
        },
        {
          "item": "Ultimate",
          "unit": "month",
          "usd": 240,
          "note": "per organisation, billed yearly; $275 billed monthly; 15 users, 10,000 API requests a day"
        },
        {
          "item": "Additional user",
          "unit": "seat-month",
          "usd": 2.5,
          "note": "billed yearly; $3 billed monthly; paid plans only"
        }
      ],
      "provenance": {
        "legalEntity": "Zoho Corporation Private Limited",
        "domain": "zoho.com",
        "domainRegistered": "2004-01-16",
        "domainNote": "API calls go to www.zohoapis.com and its regional equivalents, a Zoho domain other than zoho.com.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zoho.com/terms.html",
        "privacy": "https://www.zoho.com/privacy.html",
        "statusPage": "https://status.zoho.com",
        "changelog": "https://www.zoho.com/books/whats-new.html",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service (last updated 2 March 2022) are the service agreement for Zoho's online services. The contracting entity depends on the customer's region, Zoho Corporation Private Limited for India and Zoho Corporation for the United States (https://www.zoho.com/legal/zoho-contracting-entities.html).",
          "A separate Zoho Developer Agreement at https://www.zoho.com/developer/terms.html covers the developer tools.",
          "The privacy policy was last updated on 22 December 2025 and covers Zoho's websites and the products on them.",
          "security.txt at www.zoho.com gives a bug bounty contact, security@zohocorp.com, a policy link and an expiry of 30 June 2028.",
          "The changelog link is the product What's New page, newest entry 31 July 2026. No dated API changelog was found.",
          "RDAP for zoho.com gives a registration date of 2004-01-16."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zoho-books.json",
      "live": {
        "slug": "zoho-books",
        "probe": {
          "target": "https://www.zohoapis.com/books/v3",
          "method": "get",
          "lastAt": "2026-10-08T21:12:26.720239875Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 427,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 448,
          "p95ms24h": 486,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.zoho.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:22.344999716Z"
        },
        "updatedAt": "2026-10-08T21:12:26.720239875Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Xero",
        "b": "Zoho",
        "name": "Vendor"
      },
      {
        "a": "https://api.xero.com/api.xro/2.0",
        "b": "https://www.zohoapis.com/books/v3",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary service under Zoho's Terms of Service",
        "name": "Licence"
      },
      {
        "a": "51",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "2025-12-04",
        "b": "2022-03-02",
        "name": "Terms last updated"
      },
      {
        "a": "2025-02-11",
        "b": "2025-12-22",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "350 stars, 395k npm/wk, 64k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Xero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories.",
        "question": "Which is better for AI agents, Xero API + MCP or Zoho Books?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Xero API + MCP and Zoho Books need an API key?"
      },
      {
        "answer": "Yes. Xero API + MCP has a hosted endpoint at https://api.xero.com/api.xro/2.0 and Zoho Books at https://www.zohoapis.com/books/v3.",
        "question": "Can an agent call Xero API + MCP and Zoho Books without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 71",
          "Agent ergonomics, 75 against 51",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 76 against 56"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "An agent keeping the books for UK, Australian or New Zealand businesses, or any team that wants read-only scopes and long deprecation notice.",
        "slug": "xero",
        "watchFor": "Developer docs, including the per-minute rate limits, only render with JavaScript"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Small businesses already on Zoho that want an agent to raise invoices, record bills and payments, reconcile bank transactions and post journals with narrow scopes.",
        "slug": "zoho-books",
        "watchFor": "No profit and loss, balance sheet or other report endpoint appears in the API docs or the OpenAPI files"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledger"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-xero.json",
        "title": "Apideck Accounting API + MCP vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books.json",
        "title": "Apideck Accounting API + MCP vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-xero.json",
        "title": "Codat vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/codat-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-zoho-books.json",
        "title": "Codat vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/codat-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-xero.json",
        "title": "FreeAgent API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-zoho-books.json",
        "title": "FreeAgent API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-xero.json",
        "title": "FreshBooks API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-zoho-books.json",
        "title": "FreshBooks API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-xero.json",
        "title": "Merge Accounting API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books.json",
        "title": "Merge Accounting API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-xero.json",
        "title": "Odoo External API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-zoho-books.json",
        "title": "Odoo External API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-xero.json",
        "title": "QuickBooks Online API + MCP vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books.json",
        "title": "QuickBooks Online API + MCP vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rutter-vs-xero.json",
        "title": "Rutter Accounting API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/rutter-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rutter-vs-zoho-books.json",
        "title": "Rutter Accounting API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/rutter-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-xero.json",
        "title": "Invoice Ninja API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-zoho-books.json",
        "title": "Invoice Ninja API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-zoho-books"
      }
    ],
    "scores": [
      {
        "by": 3,
        "edge": "zoho-books",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "xero": 68,
        "zoho-books": 71
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "xero",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "xero": 79,
        "zoho-books": 71
      },
      {
        "by": 24,
        "edge": "xero",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "xero": 75,
        "zoho-books": 51
      },
      {
        "by": 4,
        "edge": "zoho-books",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "xero": 64,
        "zoho-books": 68
      },
      {
        "by": 5,
        "edge": "xero",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "xero": 35,
        "zoho-books": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "xero",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "xero": 76,
        "zoho-books": 56
      },
      {
        "by": 3,
        "edge": "zoho-books",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "xero": 72,
        "zoho-books": 75
      }
    ],
    "summary": "Xero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Both do accounting ledger.",
    "verdicts": {
      "xero": "Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026. Developer docs, including the per-minute rate limits, only render with JavaScript.",
      "zoho-books": "The public OpenAPI files cover 885 operations with OAuth scopes per module and operation, and the Free plan allows 1,000 API requests a day. No report endpoint, official SDK, SLA or dated API changelog was found, and the documented token calls put the client secret in the URL."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/xero-vs-zoho-books",
    "json": "https://www.anchorterminal.com/compare/xero-vs-zoho-books.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/xero-vs-zoho-books.md",
    "slim": "https://www.anchorterminal.com/compare/xero-vs-zoho-books.min.md"
  },
  "markdown": "Xero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Both do accounting ledger.\n\n- Xero API + MCP: grade B, 67.2/100, rank #213 of 722. Markdown https://www.anchorterminal.com/tools/xero.md · JSON https://www.anchorterminal.com/api/v1/tools/xero.json\n- Zoho Books: grade C, 61.1/100, rank #377 of 722. Markdown https://www.anchorterminal.com/tools/zoho-books.md · JSON https://www.anchorterminal.com/api/v1/tools/zoho-books.json\n\n## Which one, for what\n\n### Xero API + MCP (B)\n\nGood for: An agent keeping the books for UK, Australian or New Zealand businesses, or any team that wants read-only scopes and long deprecation notice.\n\nAhead on:\n- Schema \u0026 documentation, 79 against 71\n- Agent ergonomics, 75 against 51\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 76 against 56\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Developer docs, including the per-minute rate limits, only render with JavaScript\n\n### Zoho Books (C)\n\nGood for: Small businesses already on Zoho that want an agent to raise invoices, record bills and payments, reconcile bank transactions and post journals with narrow scopes.\n\nWatch for: No profit and loss, balance sheet or other report endpoint appears in the API docs or the OpenAPI files\n\n\n## Score by category\n\n| Category | Weight | Xero API + MCP | Zoho Books | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 71 | Zoho Books +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 71 | Xero API + MCP +8 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 51 | Xero API + MCP +24 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 68 | Zoho Books +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 30 | Xero API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 56 | Xero API + MCP +20 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 75 | Zoho Books +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.2 · B** | **61.1 · C** | |\n\n## Facts side by side\n\n| Fact | Xero API + MCP | Zoho Books |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Xero | Zoho |\n| Hosted endpoint | `https://api.xero.com/api.xro/2.0` | `https://www.zohoapis.com/books/v3` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | Proprietary service under Zoho's Terms of Service |\n| Tools exposed | 51 | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-01 | 2026-10-07 |\n| Terms last updated | 2025-12-04 | 2022-03-02 |\n| Privacy policy last updated | 2025-02-11 | 2025-12-22 |\n| Customer content may train models | not found in the text | yes |\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 | yes | not found in the text |\n| Popularity | 350 stars, 395k npm/wk, 64k PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**Xero API + MCP.** Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026. Developer docs, including the per-minute rate limits, only render with JavaScript.\n\n**Zoho Books.** The public OpenAPI files cover 885 operations with OAuth scopes per module and operation, and the Free plan allows 1,000 API requests a day. No report endpoint, official SDK, SLA or dated API changelog was found, and the documented token calls put the client secret in the URL.\n\n## Before you call either\n\n### Xero API + MCP\n\n1. Send xero-tenant-id on every call. The token alone doesn't name the organisation\n2. A bill is an Invoice with Type ACCPAY, a sales invoice is ACCREC. There's no separate bills endpoint\n3. Send an Idempotency-Key on creates so a retry after a timeout doesn't post twice\n4. Use If-Modified-Since and pageSize up to 100 to stay inside 1,000 calls a day on Starter\n5. Set XERO_SCOPES to read scopes only when the agent shouldn't write. The MCP still lists its write and delete tools\n\n### Zoho Books\n\n1. Send `organization_id` as a query parameter on every call. Read it from `GET /organizations` first\n2. Use the `api_domain` returned with the token, since each of the nine data centres has its own host (zohoapis.com, zohoapis.eu, zohoapis.in and others)\n3. Send `Authorization: Zoho-oauthtoken \u003ctoken\u003e` and refresh hourly. Each user keeps at most 20 refresh tokens and the oldest is deleted\n4. Stay under 100 requests a minute and the plan's daily cap. Codes 44, 45 and 1070 on a 429 mean minute, day and concurrency limits\n5. To repeat an update safely, send `X-Unique-Identifier-Key`, `X-Unique-Identifier-Value` and `X-Upsert` with a unique custom field. Creates have no idempotency key\n\n## Questions\n\n### Which is better for AI agents, Xero API + MCP or Zoho Books?\n\nXero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories.\n\n### Do Xero API + MCP and Zoho Books need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Xero API + MCP and Zoho Books without installing anything?\n\nYes. Xero API + MCP has a hosted endpoint at https://api.xero.com/api.xro/2.0 and Zoho Books at https://www.zohoapis.com/books/v3.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/xero-vs-zoho-books.json, and with the fewest tokens: https://www.anchorterminal.com/compare/xero-vs-zoho-books.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"xero\", \"b\": \"zoho-books\"}`. From a terminal: `anchor compare xero zoho-books`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/xero.json and https://www.anchorterminal.com/api/v1/tools/zoho-books.json\n\n## Other comparisons with Xero API + MCP or Zoho Books\n\n- [Apideck Accounting API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-xero.md)\n- [Apideck Accounting API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books.md)\n- [Codat vs Xero API + MCP](https://www.anchorterminal.com/compare/codat-vs-xero.md)\n- [Codat vs Zoho Books](https://www.anchorterminal.com/compare/codat-vs-zoho-books.md)\n- [FreeAgent API vs Xero API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-xero.md)\n- [FreeAgent API vs Zoho Books](https://www.anchorterminal.com/compare/freeagent-vs-zoho-books.md)\n- [FreshBooks API vs Xero API + MCP](https://www.anchorterminal.com/compare/freshbooks-vs-xero.md)\n- [FreshBooks API vs Zoho Books](https://www.anchorterminal.com/compare/freshbooks-vs-zoho-books.md)\n- [Merge Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-xero.md)\n- [Merge Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books.md)\n- [Odoo External API vs Xero API + MCP](https://www.anchorterminal.com/compare/odoo-vs-xero.md)\n- [Odoo External API vs Zoho Books](https://www.anchorterminal.com/compare/odoo-vs-zoho-books.md)\n- [QuickBooks Online API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/quickbooks-online-vs-xero.md)\n- [QuickBooks Online API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/quickbooks-online-vs-zoho-books.md)\n- [Rutter Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/rutter-vs-xero.md)\n- [Rutter Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/rutter-vs-zoho-books.md)\n- [Invoice Ninja API vs Xero API + MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-xero.md)\n- [Invoice Ninja API vs Zoho Books](https://www.anchorterminal.com/compare/invoice-ninja-vs-zoho-books.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": "Xero API + MCP vs Zoho Books",
        "url": ""
      }
    ],
    "description": "Xero API + MCP scores 67.2 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Both do accounting ledger. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Xero API + MCP B 67.2",
      "Zoho Books C 61.1",
      "scores"
    ],
    "h1": "Xero API + MCP vs Zoho Books",
    "image": "https://www.anchorterminal.com/assets/og/compare-xero-vs-zoho-books.png",
    "path": "/compare/xero-vs-zoho-books",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Xero API + MCP vs Zoho Books for AI agents, B 67.2 vs C 61.1",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/xero-vs-zoho-books"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 630
  },
  "version": 1
}
