{
  "data": {
    "a": {
      "slug": "codat",
      "name": "Codat",
      "vendor": "Codat Limited",
      "vendorUrl": "https://codat.io",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Codat connects a business's accounting, banking and commerce software to financial products and banks through one REST API. Product APIs cover bill pay, expenses, bank feeds and lending data, with official SDKs for TypeScript, Python and C#.",
      "url": "https://www.anchorterminal.com/tools/codat",
      "markdownUrl": "https://www.anchorterminal.com/tools/codat.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/codat.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/codat.json",
      "repo": "https://github.com/codatio/oas",
      "license": "Proprietary service under Codat's Master Services Agreement. The documentation repository codatio/codat-docs is Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.codat.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@codat/platform"
        },
        {
          "registry": "pypi",
          "name": "codat-platform"
        }
      ],
      "auth": "api-key",
      "authNotes": "An API key, Base64 encoded, in an `Authorization: Basic` header on every call to https://api.codat.io. An account comes through Codat's sales team. The docs say to get in touch to create one, and no self-serve signup was found. A client can hold up to 10 named keys, created and deleted in the Portal by Administrator or Developer users or through the /apiKeys endpoints. Keys have no scopes, so each one reaches every company the client has connected. End customers authorise their accounting package through Codat's Link flow.",
      "pricing": "paid",
      "pricingNotes": "No public price. codat.io/pricing returns 404 and the site's buttons ask for a meeting. The standard MSA sets a platform fee invoiced in advance and a unit fee per active company per month, both in an order form. The docs describe a free trial limited to 50 companies, no hourly syncs and 365 days, and a Codat Sandbox integration that is excluded from billing, but an account starts with a request to Codat (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs repository, the OpenAPI specs or the site (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 2690,
        "pypiWeekly": 222,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.codat.io/using-the-api/overview",
      "openapi": "https://raw.githubusercontent.com/codatio/oas/main/json/Codat-Platform.json",
      "capabilities": [
        "accounting.unified",
        "accounting.bills",
        "accounting.reports",
        "accounting.ledger",
        "accounting.invoices"
      ],
      "tags": [
        "hosted",
        "paid",
        "sales-led",
        "api-key",
        "openapi",
        "webhooks",
        "async-jobs",
        "idempotency",
        "sandbox",
        "typescript",
        "python",
        "csharp",
        "status-page",
        "soc2",
        "iso27001",
        "closed-source"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.3,
        "grade": "B",
        "agentReady": false,
        "rank": 280,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 75,
          "payments": 10,
          "reliability": 80,
          "schema": 77,
          "security": 49,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Public OpenAPI specs, an Idempotency-Key header on writes, Retry-After on 429 and a written three-month deprecation notice suit an agent that retries. Access is the limitation. No price or self-serve signup is published, the general Accounting API is closed to new clients, and API keys carry no scopes.",
        "bestFor": "Banks, lenders, bill pay, expense and card products that already have or will sign a Codat contract and need writes into many accounting packages.",
        "strengths": [
          "Public OpenAPI 3 specs for every API in codatio/oas, with long operation descriptions and per-integration response examples",
          "Idempotency-Key header on POST and PATCH, cached for 90 minutes, and released after a 429 so the same key can be retried",
          "429 responses carry Retry-After, and every response carries X-Rate-Limit-Limit, Remaining and Reset headers",
          "Breaking changes are posted at least three months ahead, with a deprecation calendar and quarterly emails",
          "Annual SOC 2 Type II and ISO 27001 audits and a private bug bounty, per codat.io/security"
        ],
        "weaknesses": [
          "No public price. The pricing page returns 404 and fees are set in an order form",
          "No self-serve signup found. The docs and the site ask new users to get in touch",
          "The general Accounting API spec says it is relevant only to existing clients, and the status page labels it Legacy",
          "API keys have no scopes or read-only mode, and one key reaches every connected company",
          "Two complete API outages in July 2026, of 14 and 12 minutes, and intermittent Xero failures from 22 to 29 July",
          "The Java and Go SDKs were archived in April and May 2026"
        ],
        "agentNotes": [
          "Send `Authorization: Basic \u003cbase64 of the API key\u003e` to https://api.codat.io. The Portal shows the ready-made header value",
          "Send a new GUID as `Idempotency-Key` on every POST and PATCH, and reuse the same key when retrying after a 429",
          "Treat writes as asynchronous on most APIs. Keep the push operation key and wait for the `{dataType}.write.successful` or `.unsuccessful` webhook",
          "Call the Get model (options) endpoint for the connection before a create or update, because required fields differ by accounting package",
          "Filter with `query=modifiedDate\u003e...` and keep `pageSize` at 100. The daily quota is 1,000 requests times one plus the number of active connected companies"
        ],
        "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": 64.3
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 75,
          "payments": 10,
          "reliability": 80,
          "schema": 77,
          "security": 49,
          "transparency": 59
        },
        "provenanceScore": 82
      },
      "connect": {
        "install": "npm install @codat/platform",
        "http": "curl https://api.codat.io/companies \\\n  -H \"Authorization: Basic $CODAT_ENCODED_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/codat"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Codat Limited",
        "domain": "codat.io",
        "domainRegistered": "2016-10-17",
        "endpointOnVendorDomain": true,
        "terms": "https://codat.io/msa-standard/",
        "privacy": "https://codat.io/privacy-policy/",
        "statusPage": "https://status.codat.io",
        "changelog": "https://docs.codat.io/updates",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The standard MSA (version 2.0, 5 September 2022) names Codat Limited, registered in England and Wales, number 10480375, 6-7 St. Cross Street, London EC1N 8UB, for clients in the UK and the rest of the world outside the USA. The privacy notice also names Codat, Inc., a Delaware corporation.",
          "codat.io/legals lists two agreements, the Master Services Agreement (standard and enterprise versions) and the Start-up Plan terms. The standard MSA is the one recorded here.",
          "The Codat Global Privacy Notice was last updated in April 2025. It is written mainly for website visitors, and the MSA points to the same page for the sub-processor list.",
          "codat.io, app.codat.io and api.codat.io all return 404 for /.well-known/security.txt. codat.io/security has a disclosure form.",
          "RDAP for codat.io gives a registration date of 2016-10-17."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/codat.json",
      "live": {
        "slug": "codat",
        "probe": {
          "target": "https://api.codat.io",
          "method": "get",
          "lastAt": "2026-10-08T21:53:19.352174507Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 59,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 68,
          "p95ms24h": 157,
          "samples24h": 48,
          "samples30d": 48,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.codat.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:57:47.277600975Z"
        },
        "pages": [
          {
            "url": "https://docs.codat.io/updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:26.233949031Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "07529b659c92"
          },
          {
            "url": "https://codat.io/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:28.10988641Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e89a28b3e19e"
          },
          {
            "url": "https://codat.io/msa-standard/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:25.833678794Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a5936b16dc49"
          }
        ],
        "updatedAt": "2026-10-08T21:57:47.277600975Z"
      }
    },
    "answer": "Codat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing.",
    "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:53:39.663777172Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 451,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 446,
          "p95ms24h": 486,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "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:53:39.663777172Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Codat Limited",
        "b": "Zoho",
        "name": "Vendor"
      },
      {
        "a": "https://api.codat.io",
        "b": "https://www.zohoapis.com/books/v3",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Codat's Master Services Agreement. The documentation repository codatio/codat-docs is Apache-2.0",
        "b": "Proprietary service under Zoho's Terms of Service",
        "name": "Licence"
      },
      {
        "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": "2022-09-05",
        "b": "2022-03-02",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-01",
        "b": "2025-12-22",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.7k npm/wk, 222 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Codat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Codat or Zoho Books?"
      },
      {
        "answer": "Codat needs an API key. Zoho Books uses an OAuth sign-in.",
        "question": "Do Codat and Zoho Books need an API key?"
      },
      {
        "answer": "Yes. Codat has a hosted endpoint at https://api.codat.io and Zoho Books at https://www.zohoapis.com/books/v3.",
        "question": "Can an agent call Codat and Zoho Books without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 71",
          "Schema \u0026 documentation, 77 against 71",
          "Agent ergonomics, 81 against 51",
          "Maintenance \u0026 community, 75 against 56"
        ],
        "also": null,
        "goodFor": "Banks, lenders, bill pay, expense and card products that already have or will sign a Codat contract and need writes into many accounting packages.",
        "slug": "codat",
        "watchFor": "No public price. The pricing page returns 404 and fees are set in an order form"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 68 against 49",
          "Payments \u0026 pricing, 30 against 10"
        ],
        "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-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-freeagent.json",
        "title": "Codat vs FreeAgent API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-freeagent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-freshbooks.json",
        "title": "Codat vs FreshBooks API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-freshbooks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-odoo.json",
        "title": "Codat vs Odoo External API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-odoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-quickbooks-online.json",
        "title": "Codat vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/codat-vs-quickbooks-online"
      },
      {
        "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/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-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-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-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-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-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/xero-vs-zoho-books.json",
        "title": "Xero API + MCP vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/xero-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-invoice-ninja.json",
        "title": "Codat vs Invoice Ninja API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-invoice-ninja"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-codat.json",
        "title": "Apideck Accounting API + MCP vs Codat",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-codat"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting.json",
        "title": "Codat vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-rutter.json",
        "title": "Codat vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-rutter"
      }
    ],
    "scores": [
      {
        "by": 9,
        "codat": 80,
        "edge": "codat",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zoho-books": 71
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "codat": 77,
        "edge": "codat",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zoho-books": 71
      },
      {
        "by": 30,
        "codat": 81,
        "edge": "codat",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zoho-books": 51
      },
      {
        "by": 19,
        "codat": 49,
        "edge": "zoho-books",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zoho-books": 68
      },
      {
        "by": 20,
        "codat": 10,
        "edge": "zoho-books",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zoho-books": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "codat": 75,
        "edge": "codat",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zoho-books": 56
      },
      {
        "by": 4,
        "codat": 71,
        "edge": "zoho-books",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zoho-books": 75
      }
    ],
    "summary": "Codat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing. Both do accounting ledger.",
    "verdicts": {
      "codat": "Public OpenAPI specs, an Idempotency-Key header on writes, Retry-After on 429 and a written three-month deprecation notice suit an agent that retries. Access is the limitation. No price or self-serve signup is published, the general Accounting API is closed to new clients, and API keys carry no scopes.",
      "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/codat-vs-zoho-books",
    "json": "https://www.anchorterminal.com/compare/codat-vs-zoho-books.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/codat-vs-zoho-books.md",
    "slim": "https://www.anchorterminal.com/compare/codat-vs-zoho-books.min.md"
  },
  "markdown": "Codat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing. Both do accounting ledger.\n\n- Codat: grade B, 64.3/100, rank #280 of 722. Markdown https://www.anchorterminal.com/tools/codat.md · JSON https://www.anchorterminal.com/api/v1/tools/codat.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### Codat (B)\n\nGood for: Banks, lenders, bill pay, expense and card products that already have or will sign a Codat contract and need writes into many accounting packages.\n\nAhead on:\n- Reliability, 80 against 71\n- Schema \u0026 documentation, 77 against 71\n- Agent ergonomics, 81 against 51\n- Maintenance \u0026 community, 75 against 56\n\nWatch for: No public price. The pricing page returns 404 and fees are set in an order form\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\nAhead on:\n- Security \u0026 auth, 68 against 49\n- Payments \u0026 pricing, 30 against 10\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 | Codat | Zoho Books | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 71 | Codat +9 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 71 | Codat +6 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 51 | Codat +30 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 68 | Zoho Books +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 30 | Zoho Books +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 56 | Codat +19 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 75 | Zoho Books +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.3 · B** | **61.1 · C** | |\n\n## Facts side by side\n\n| Fact | Codat | Zoho Books |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Codat Limited | Zoho |\n| Hosted endpoint | `https://api.codat.io` | `https://www.zohoapis.com/books/v3` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Codat's Master Services Agreement. The documentation repository codatio/codat-docs is Apache-2.0 | Proprietary service under Zoho's Terms of Service |\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 | 2022-09-05 | 2022-03-02 |\n| Privacy policy last updated | 2025-04-01 | 2025-12-22 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | 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 | not found in the text |\n| Popularity | 2.7k npm/wk, 222 PyPI/wk | none |\n\n## Verdicts\n\n**Codat.** Public OpenAPI specs, an Idempotency-Key header on writes, Retry-After on 429 and a written three-month deprecation notice suit an agent that retries. Access is the limitation. No price or self-serve signup is published, the general Accounting API is closed to new clients, and API keys carry no scopes.\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### Codat\n\n1. Send `Authorization: Basic \u003cbase64 of the API key\u003e` to https://api.codat.io. The Portal shows the ready-made header value\n2. Send a new GUID as `Idempotency-Key` on every POST and PATCH, and reuse the same key when retrying after a 429\n3. Treat writes as asynchronous on most APIs. Keep the push operation key and wait for the `{dataType}.write.successful` or `.unsuccessful` webhook\n4. Call the Get model (options) endpoint for the connection before a create or update, because required fields differ by accounting package\n5. Filter with `query=modifiedDate\u003e...` and keep `pageSize` at 100. The daily quota is 1,000 requests times one plus the number of active connected companies\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, Codat or Zoho Books?\n\nCodat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing.\n\n### Do Codat and Zoho Books need an API key?\n\nCodat needs an API key. Zoho Books uses an OAuth sign-in.\n\n### Can an agent call Codat and Zoho Books without installing anything?\n\nYes. Codat has a hosted endpoint at https://api.codat.io 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/codat-vs-zoho-books.json, and with the fewest tokens: https://www.anchorterminal.com/compare/codat-vs-zoho-books.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"codat\", \"b\": \"zoho-books\"}`. From a terminal: `anchor compare codat zoho-books`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/codat.json and https://www.anchorterminal.com/api/v1/tools/zoho-books.json\n\n## Other comparisons with Codat or Zoho Books\n\n- [Apideck Accounting API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books.md)\n- [Codat vs FreeAgent API](https://www.anchorterminal.com/compare/codat-vs-freeagent.md)\n- [Codat vs FreshBooks API](https://www.anchorterminal.com/compare/codat-vs-freshbooks.md)\n- [Codat vs Odoo External API](https://www.anchorterminal.com/compare/codat-vs-odoo.md)\n- [Codat vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/codat-vs-quickbooks-online.md)\n- [Codat vs Xero API + MCP](https://www.anchorterminal.com/compare/codat-vs-xero.md)\n- [FreeAgent API vs Zoho Books](https://www.anchorterminal.com/compare/freeagent-vs-zoho-books.md)\n- [FreshBooks API vs Zoho Books](https://www.anchorterminal.com/compare/freshbooks-vs-zoho-books.md)\n- [Merge Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books.md)\n- [Odoo External API vs Zoho Books](https://www.anchorterminal.com/compare/odoo-vs-zoho-books.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 Zoho Books](https://www.anchorterminal.com/compare/rutter-vs-zoho-books.md)\n- [Xero API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/xero-vs-zoho-books.md)\n- [Codat vs Invoice Ninja API](https://www.anchorterminal.com/compare/codat-vs-invoice-ninja.md)\n- [Invoice Ninja API vs Zoho Books](https://www.anchorterminal.com/compare/invoice-ninja-vs-zoho-books.md)\n- [Apideck Accounting API + MCP vs Codat](https://www.anchorterminal.com/compare/apideck-accounting-vs-codat.md)\n- [Codat vs Merge Accounting API](https://www.anchorterminal.com/compare/codat-vs-merge-accounting.md)\n- [Codat vs Rutter Accounting API](https://www.anchorterminal.com/compare/codat-vs-rutter.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": "Codat vs Zoho Books",
        "url": ""
      }
    ],
    "description": "Codat scores 64.3 (B) on agent readiness against Zoho Books's 61.1 (C), and leads in 4 of 7 scored categories. Zoho Books leads on security \u0026 auth and payments \u0026 pricing. Both do accounting ledger. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Codat B 64.3",
      "Zoho Books C 61.1",
      "scores"
    ],
    "h1": "Codat vs Zoho Books",
    "image": "https://www.anchorterminal.com/assets/og/compare-codat-vs-zoho-books.png",
    "path": "/compare/codat-vs-zoho-books",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Codat vs Zoho Books for AI agents, B 64.3 vs C 61.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/codat-vs-zoho-books"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 630
  },
  "version": 1
}
