{
  "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-08T20:21:10.345278295Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 62,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 70,
          "p95ms24h": 157,
          "samples24h": 32,
          "samples30d": 32,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 32,
              "ok": 32
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.codat.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T20:22:25.347559876Z"
        },
        "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-08T20:22:25.347559876Z"
      }
    },
    "answer": "Merge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics.",
    "b": {
      "slug": "merge-accounting",
      "name": "Merge Accounting API",
      "vendor": "Merge",
      "vendorUrl": "https://www.merge.dev",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified accounting API for invoices, payments, expenses, journal entries and financial statements across platforms including QuickBooks, Xero and NetSuite.",
      "url": "https://www.anchorterminal.com/tools/merge-accounting",
      "markdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/merge-accounting.json",
      "repo": "https://github.com/merge-api/merge-python-client",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.merge.dev/api/accounting/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "MergePythonClient"
        },
        {
          "registry": "npm",
          "name": "@mergeapi/merge-node-client"
        }
      ],
      "auth": "api-key",
      "authNotes": "Two headers on every call. `Authorization: Bearer \u003cAPI key\u003e` from the Merge dashboard (production or test keys) and `X-Account-Token` for the linked account, issued when a user finishes the Merge Link flow. There's an EU host at api-eu.merge.dev. Merge holds the OAuth tokens for the accounting platform, so your agent never sees them.",
      "pricing": "freemium",
      "pricingNotes": "The first 3 production linked accounts are free with no card. Launch is $650 a month for up to 10 production linked accounts and $65 a month for each one beyond that, with 100 requests a minute per linked account, up to 3 test linked accounts, sandbox accounts for the first 60 days and 3 days of logs. Professional (400 a minute, unlimited test linked accounts, sandbox accounts for the first 60 days, 30 days of logs, field-level scopes) and Enterprise (600 a minute, unlimited sandboxes, 90 days or more of logs, support and uptime SLAs) are priced on contract (https://www.merge.dev/pricing).",
      "priceSummary": "$650 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": 201025,
        "pypiWeekly": 234550,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.merge.dev/merge-unified/accounting/overview",
      "llmsTxt": "https://docs.merge.dev/llms.txt",
      "openapi": "https://docs.merge.dev/openapi/accounting.json",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "eu",
        "enterprise",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70,
        "grade": "BB",
        "agentReady": true,
        "rank": 143,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.",
        "bestFor": "A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.",
        "strengths": [
          "12 accounting platforms behind one set of common models, with writes",
          "Three production linked accounts free with no card",
          "llms.txt, Markdown twins of every docs page and a JSON OpenAPI spec",
          "Rate limits per linked account, so one busy customer doesn't starve the rest",
          "SOC 2 Type 2, ISO 27001:2022 and an EU host at api-eu.merge.dev"
        ],
        "weaknesses": [
          "Launch jumps from free to $650 a month at the fourth linked account",
          "No documented 429 handling, idempotency keys or safe-retry guidance for writes",
          "Merge's own MCP server for the Unified API has been idle since 0.1.4 in April 2025",
          "No deprecation policy, and the Python SDK shipped two major versions between May and July 2026",
          "Only 3 days of request logs on Launch"
        ],
        "agentNotes": [
          "Call GET /invoices/meta/post for the linked account first. Required fields differ by platform",
          "Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE",
          "Append .md to any docs URL for the Markdown twin",
          "Check sync_status before reading a freshly linked account. Common models fill in over the first sync",
          "Look the record up before retrying a POST that timed out. There's no idempotency key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 54
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl \"https://api.merge.dev/api/accounting/v1/invoices?type=ACCOUNTS_RECEIVABLE\u0026page_size=10\" \\\n  -H \"Authorization: Bearer $MERGE_API_KEY\" -H \"X-Account-Token: $MERGE_ACCOUNT_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/merge-accounting"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Launch plan",
          "unit": "month",
          "usd": 650,
          "note": "Up to 10 production linked accounts, first 3 free"
        },
        {
          "item": "Additional linked account on Launch",
          "unit": "account-month",
          "usd": 65
        }
      ],
      "provenance": {
        "legalEntity": "Merge API, Inc.",
        "domain": "merge.dev",
        "domainRegistered": "2020-02-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.merge.dev/legal/terms",
        "privacy": "https://www.merge.dev/legal/privacy-policy",
        "statusPage": "https://status.merge.dev",
        "changelog": "https://www.merge.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms name Merge API Inc. with California law and arbitration in San Francisco, but give no registered address. The privacy policy was last revised 20 August 2026.",
          "The status page runs on Sorry rather than Statuspage and lists the Unified API, Merge Link, data syncing and Agent Handler as components.",
          "A trust portal at trust.merge.dev holds the security documentation."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/merge-accounting.json",
      "live": {
        "slug": "merge-accounting",
        "probe": {
          "target": "https://api.merge.dev/api/accounting/v1",
          "method": "get",
          "lastAt": "2026-10-08T20:21:19.611169974Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 681,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.9,
          "p50ms24h": 578,
          "p95ms24h": 1738,
          "samples24h": 272,
          "samples30d": 1946,
          "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": 271
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 230,
              "ok": 230
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.merge.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:46.749569649Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "merge-api/merge-python-client",
            "version": "v4.2.1",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:20:23.169243825Z"
          },
          {
            "registry": "npm",
            "name": "@mergeapi/merge-node-client",
            "version": "4.0.4",
            "seenAt": "2026-10-08T16:20:22.273866901Z"
          },
          {
            "registry": "pypi",
            "name": "MergePythonClient",
            "version": "4.2.1",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:20:21.996008845Z"
          }
        ],
        "githubStars": 14,
        "npmWeekly": 205864,
        "pypiWeekly": 211112,
        "securityTxt": {
          "url": "https://merge.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:30.753415227Z"
        },
        "llmsTxt": {
          "url": "https://docs.merge.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:39.458493045Z"
        },
        "domain": {
          "domain": "merge.dev",
          "registered": "2020-02-09",
          "source": "https://pubapi.registry.google/rdap/domain/merge.dev",
          "checkedAt": "2026-10-04T13:08:11.061782068Z"
        },
        "pages": [
          {
            "url": "https://www.merge.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:08.263325763Z",
            "changedAt": "2026-10-06T16:15:59.61623974Z",
            "fingerprint": "f1874c8b7cc7"
          },
          {
            "url": "https://www.merge.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:15.873306545Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7d9e39ad53d3"
          },
          {
            "url": "https://www.merge.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:13.1375087Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "94b13e9b9b9d"
          },
          {
            "url": "https://www.merge.dev/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:13.984068418Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d729c69b95ee"
          }
        ],
        "updatedAt": "2026-10-08T20:21:19.611169974Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Codat Limited",
        "b": "Merge",
        "name": "Vendor"
      },
      {
        "a": "https://api.codat.io",
        "b": "https://api.merge.dev/api/accounting/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "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": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-09-16",
        "name": "Last release"
      },
      {
        "a": "2022-09-05",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-01",
        "b": "2026-08-20",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "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": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.7k npm/wk, 222 PyPI/wk",
        "b": "15 stars, 201k npm/wk, 235k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Merge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics.",
        "question": "Which is better for AI agents, Codat or Merge Accounting API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Codat and Merge Accounting API need an API key?"
      },
      {
        "answer": "Yes. Codat has a hosted endpoint at https://api.codat.io and Merge Accounting API at https://api.merge.dev/api/accounting/v1.",
        "question": "Can an agent call Codat and Merge Accounting API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 75",
          "Agent ergonomics, 81 against 72"
        ],
        "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": [
          "Schema \u0026 documentation, 86 against 77",
          "Security \u0026 auth, 67 against 49",
          "Payments \u0026 pricing, 35 against 10",
          "Maintenance \u0026 community, 83 against 75"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.",
        "slug": "merge-accounting",
        "watchFor": "Launch jumps from free to $650 a month at the fourth linked account"
      }
    ],
    "job": {
      "capability": "accounting.unified",
      "name": "Accounting unified"
    },
    "others": [
      {
        "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/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-merge-accounting.json",
        "title": "FreeAgent API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.json",
        "title": "FreshBooks API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-odoo.json",
        "title": "Merge Accounting API vs Odoo External API",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-odoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.json",
        "title": "Merge Accounting API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online"
      },
      {
        "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/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-merge-accounting.json",
        "title": "Invoice Ninja API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting"
      },
      {
        "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/apideck-accounting-vs-merge-accounting.json",
        "title": "Apideck Accounting API + MCP vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.json",
        "title": "Merge Accounting API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter"
      }
    ],
    "scores": [
      {
        "by": 5,
        "codat": 80,
        "edge": "codat",
        "key": "reliability",
        "merge-accounting": 75,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "codat": 77,
        "edge": "merge-accounting",
        "key": "schema",
        "merge-accounting": 86,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "codat": 81,
        "edge": "codat",
        "key": "ergonomics",
        "merge-accounting": 72,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 18,
        "codat": 49,
        "edge": "merge-accounting",
        "key": "security",
        "merge-accounting": 67,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 25,
        "codat": 10,
        "edge": "merge-accounting",
        "key": "payments",
        "merge-accounting": 35,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "codat": 75,
        "edge": "merge-accounting",
        "key": "maintenance",
        "merge-accounting": 83,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 3,
        "codat": 71,
        "edge": "codat",
        "key": "transparency",
        "merge-accounting": 68,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Merge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics. Both do accounting unified.",
    "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.",
      "merge-accounting": "12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting",
    "json": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting.md",
    "slim": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting.min.md"
  },
  "markdown": "Merge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics. Both do accounting unified.\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- Merge Accounting API: grade BB, 70/100, rank #143 of 722. Markdown https://www.anchorterminal.com/tools/merge-accounting.md · JSON https://www.anchorterminal.com/api/v1/tools/merge-accounting.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 75\n- Agent ergonomics, 81 against 72\n\nWatch for: No public price. The pricing page returns 404 and fees are set in an order form\n\n### Merge Accounting API (BB)\n\nGood for: A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.\n\nAhead on:\n- Schema \u0026 documentation, 86 against 77\n- Security \u0026 auth, 67 against 49\n- Payments \u0026 pricing, 35 against 10\n- Maintenance \u0026 community, 83 against 75\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Launch jumps from free to $650 a month at the fourth linked account\n\n\n## Score by category\n\n| Category | Weight | Codat | Merge Accounting API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 75 | Codat +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 86 | Merge Accounting API +9 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 72 | Codat +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 67 | Merge Accounting API +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 35 | Merge Accounting API +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 83 | Merge Accounting API +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 68 | Codat +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.3 · B** | **70 · BB** | |\n\n## Facts side by side\n\n| Fact | Codat | Merge Accounting API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Codat Limited | Merge |\n| Hosted endpoint | `https://api.codat.io` | `https://api.merge.dev/api/accounting/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\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 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-01 | 2026-09-16 |\n| Terms last updated | 2022-09-05 | no date given |\n| Privacy policy last updated | 2025-04-01 | 2026-08-20 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 2.7k npm/wk, 222 PyPI/wk | 15 stars, 201k npm/wk, 235k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\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**Merge Accounting API.** 12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.\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### Merge Accounting API\n\n1. Call GET /invoices/meta/post for the linked account first. Required fields differ by platform\n2. Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE\n3. Append .md to any docs URL for the Markdown twin\n4. Check sync_status before reading a freshly linked account. Common models fill in over the first sync\n5. Look the record up before retrying a POST that timed out. There's no idempotency key\n\n## Questions\n\n### Which is better for AI agents, Codat or Merge Accounting API?\n\nMerge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics.\n\n### Do Codat and Merge Accounting API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Codat and Merge Accounting API without installing anything?\n\nYes. Codat has a hosted endpoint at https://api.codat.io and Merge Accounting API at https://api.merge.dev/api/accounting/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/codat-vs-merge-accounting.json, and with the fewest tokens: https://www.anchorterminal.com/compare/codat-vs-merge-accounting.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"codat\", \"b\": \"merge-accounting\"}`. From a terminal: `anchor compare codat merge-accounting`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/codat.json and https://www.anchorterminal.com/api/v1/tools/merge-accounting.json\n\n## Other comparisons with Codat or Merge Accounting API\n\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- [Codat vs Zoho Books](https://www.anchorterminal.com/compare/codat-vs-zoho-books.md)\n- [FreeAgent API vs Merge Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.md)\n- [FreshBooks API vs Merge Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.md)\n- [Merge Accounting API vs Odoo External API](https://www.anchorterminal.com/compare/merge-accounting-vs-odoo.md)\n- [Merge Accounting API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.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- [Codat vs Invoice Ninja API](https://www.anchorterminal.com/compare/codat-vs-invoice-ninja.md)\n- [Invoice Ninja API vs Merge Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.md)\n- [Apideck Accounting API + MCP vs Codat](https://www.anchorterminal.com/compare/apideck-accounting-vs-codat.md)\n- [Apideck Accounting API + MCP vs Merge Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-merge-accounting.md)\n- [Codat vs Rutter Accounting API](https://www.anchorterminal.com/compare/codat-vs-rutter.md)\n- [Merge Accounting API vs Rutter Accounting API](https://www.anchorterminal.com/compare/merge-accounting-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 Merge Accounting API",
        "url": ""
      }
    ],
    "description": "Merge Accounting API scores 70 (BB) on agent readiness against Codat's 64.3 (B), and leads in 4 of 7 scored categories. Codat leads on reliability and agent ergonomics. Both do accounting unified. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Codat B 64.3",
      "Merge Accounting API BB 70",
      "scores"
    ],
    "h1": "Codat vs Merge Accounting API",
    "image": "https://www.anchorterminal.com/assets/og/compare-codat-vs-merge-accounting.png",
    "path": "/compare/codat-vs-merge-accounting",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Codat vs Merge Accounting API for AI agents, B 64.3 vs BB 70",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
