{
  "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": 358,
        "ranked": true,
        "rankOf": 954,
        "categoryRank": 5,
        "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-10T13:02:07.323405602Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 79,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 61,
          "p95ms24h": 117,
          "samples24h": 246,
          "samples30d": 454,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 70,
              "ok": 70
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 134,
              "ok": 134
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.codat.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T13:01:16.445406056Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@codat/platform",
            "version": "6.2.1",
            "seenAt": "2026-10-09T16:46:23.775604982Z"
          },
          {
            "registry": "pypi",
            "name": "codat-platform",
            "version": "5.0.1",
            "released": "2026-04-23",
            "seenAt": "2026-10-09T16:46:24.65562375Z"
          }
        ],
        "githubStars": 7,
        "npmWeekly": 2230,
        "pypiWeekly": 189,
        "securityTxt": {
          "url": "https://codat.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:23.568057918Z"
        },
        "pages": [
          {
            "url": "https://docs.codat.io/updates",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-09T18:36:53.088532666Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "07529b659c92"
          },
          {
            "url": "https://codat.io/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:34:04.461754158Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e89a28b3e19e"
          },
          {
            "url": "https://codat.io/msa-standard/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:34:02.384946142Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a5936b16dc49"
          }
        ],
        "updatedAt": "2026-10-10T13:02:07.323405602Z"
      }
    },
    "answer": "Codat scores 64.3 (B) on agent readiness against rotki MCP server's 45.6 (E), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "rotki-mcp",
      "name": "rotki MCP server",
      "vendor": "Rotki Solutions GmbH",
      "vendorUrl": "https://rotki.com",
      "kind": "platform",
      "category": "accounting",
      "summary": "Open-source, local-first portfolio tracking and accounting app for crypto. Its MCP server, for Premium Basic and higher, lets an AI assistant on the same machine query the user's events and balances with read-only SQL.",
      "url": "https://www.anchorterminal.com/tools/rotki-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/rotki-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rotki-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json",
      "repo": "https://github.com/rotki/rotki",
      "license": "AGPL-3.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Desktop. No credential. The MCP HTTP endpoint at http://127.0.0.1:4445/mcp takes no bearer token, because the desktop launcher forces ROTKI_SESSION_KEY empty outside Docker (https://github.com/rotki/rotki/blob/v1.44.1/crates/starling/src/main.rs). Host and Origin allowlists limit requests to 127.0.0.1:4445. Docker. POST /api/1/mcp/token issues a bearer token scoped to mcp that lasts at most seven days from login and is revoked on logout (https://github.com/rotki/rotki/blob/v1.44.1/docs/dev_changelog.rst; https://docs.rotki.com/usage-guides/mcp).",
      "pricing": "paid",
      "pricingNotes": "Premium Basic is €25 a month billed monthly, labelled Suggested, and Advanced is €45 a month billed monthly (https://rotki.com/products/, checked 10 October 2026). Yearly prices are not shown, only 'Save 2 months vs monthly'. The Starter plan and the Supporter plan have no MCP access, and the code excludes Free and Supporter from the tools (https://github.com/rotki/rotki/blob/v1.44.1/rotkehlchen/mcp/premium.py). No free trial was found.",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the products page or the source (checked 2026-10-10).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-10"
      },
      "docsUrl": "https://docs.rotki.com/usage-guides/mcp",
      "llmsTxt": "https://rotki.com/llms.txt",
      "capabilities": [
        "accounting.ledger"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local-first",
        "desktop",
        "docker",
        "mcp",
        "read-only",
        "premium",
        "python",
        "llms-txt"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.6,
        "grade": "E",
        "agentReady": false,
        "rank": 865,
        "ranked": true,
        "rankOf": 954,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 35,
          "payments": 10,
          "reliability": 50,
          "schema": 76,
          "security": 20,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-10"
        },
        "negative": 0,
        "verdict": "A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026.",
        "bestFor": "A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.",
        "strengths": [
          "Read-only by construction. Eight tools and none of them writes, and query_sql accepts one SELECT or WITH statement against an in-memory copy of the loaded data",
          "The premium gate fails closed. Free and Supporter accounts get premium_required, and a backend that cannot be queried gets premium_check_failed",
          "Balanced mode, the default, masks addresses, transaction hashes, group and event identifiers and account names with a per-process seed, and redacts user notes",
          "AGPL-3.0 source for the MCP server, its tests in rotkehlchen/tests/mcp and the desktop launcher that starts it",
          "Typed JSON Schema inputs on every tool, generated from the Python signatures, plus a free info tool that reports whether an unlocked backend is connected"
        ],
        "weaknesses": [
          "The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs",
          "Amounts, USD values, timestamps, asset symbols, counterparties and venue names pass unmasked in every mode, as the in-app strict description says",
          "The privacy policy at rotki.com/privacy-policy does not mention the desktop app or the MCP, and the MCP usage event to sigil.rotki.com is on by default",
          "Two releases in the 90 days to 10 October 2026, and no rotki entry found in the official MCP registry search",
          "The feature is seven weeks old, and no injection guidance, per-call audit log or security disclosure policy was found"
        ],
        "agentNotes": [
          "Ask the person to start the server under Settings \u003e MCP in the desktop app, since it stays down until started, then connect to http://127.0.0.1:4445/mcp",
          "Call info first. It works without Premium and reports whether an unlocked backend is connected",
          "Call get_event_taxonomy before any aggregate over event_type, and sum on direction or event_group, since informational rows double count MEV and block rewards",
          "Call refresh_analytics_data before query_sql, and check source.completeness and unpriced_rows before reporting any total",
          "Check the privacy mode before answering from the data. Strict keeps amounts and dates, and raw sends addresses, hashes and notes verbatim"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.6
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 35,
          "payments": 10,
          "reliability": 50,
          "schema": 76,
          "security": 20,
          "transparency": 55
        },
        "provenanceScore": 40
      },
      "connect": {
        "claudeCode": "claude mcp add --scope user --transport http rotki http://127.0.0.1:4445/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/rotki-mcp"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Rotki Solutions GmbH",
        "domain": "rotki.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "https://rotki.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/rotki/rotki/releases",
        "securityTxt": "unknown",
        "checked": "2026-10-10",
        "notes": [
          "The privacy policy names Rotki Solutions GmbH as operator of the website and the Premium API subscription. It states no retention period and no governing law, and does not mention the desktop app or the MCP server.",
          "The MCP server runs on the user's own machine, so no vendor endpoint is involved. The only vendor-side request is the optional usage event to sigil.rotki.com.",
          "rotki.com/.well-known/security.txt and rotki.com/security.txt both returned client errors to our reader, so securityTxt is recorded as unknown.",
          "status.rotki.com and the terms page could not be read by our reader, so statusPage and terms are null."
        ],
        "score": 40
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rotki-mcp.json"
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Codat Limited",
        "b": "Rotki Solutions GmbH",
        "name": "Vendor"
      },
      {
        "a": "https://api.codat.io",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "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": "AGPL-3.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "2022-09-05",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-01",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.7k npm/wk, 222 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Codat scores 64.3 (B) on agent readiness against rotki MCP server's 45.6 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Codat or rotki MCP server?"
      },
      {
        "answer": "Codat has a hosted endpoint at https://api.codat.io. No hosted endpoint is listed for rotki MCP server.",
        "question": "Can an agent call Codat and rotki MCP server without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Codat. rotki MCP server is open source (AGPL-3.0).",
        "question": "Are Codat and rotki MCP server open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 50",
          "Agent ergonomics, 81 against 69",
          "Security \u0026 auth, 49 against 20",
          "Maintenance \u0026 community, 75 against 35",
          "Transparency \u0026 trust, 71 against 48"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "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": null,
        "also": [
          "Open source"
        ],
        "goodFor": "A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.",
        "slug": "rotki-mcp",
        "watchFor": "The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledgers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp.json",
        "title": "Apideck Accounting API + MCP vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp"
      },
      {
        "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-pennylane.json",
        "title": "Codat vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/codat-vs-pennylane"
      },
      {
        "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-rotki-mcp.json",
        "title": "FreeAgent API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp.json",
        "title": "FreshBooks API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp.json",
        "title": "Merge Accounting API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp.json",
        "title": "Odoo External API vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp.json",
        "title": "Pennylane vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.json",
        "title": "QuickBooks Online API + MCP vs rotki MCP server",
        "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.json",
        "title": "rotki MCP server vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-xero.json",
        "title": "rotki MCP server vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rotki-mcp-vs-zoho-books.json",
        "title": "rotki MCP server vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/rotki-mcp-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/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": 30,
        "codat": 80,
        "edge": "codat",
        "key": "reliability",
        "name": "Reliability",
        "rotki-mcp": 50,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "codat": 77,
        "edge": "codat",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "rotki-mcp": 76,
        "weight": 13
      },
      {
        "by": 12,
        "codat": 81,
        "edge": "codat",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "rotki-mcp": 69,
        "weight": 13
      },
      {
        "by": 29,
        "codat": 49,
        "edge": "codat",
        "key": "security",
        "name": "Security \u0026 auth",
        "rotki-mcp": 20,
        "weight": 14
      },
      {
        "by": 0,
        "codat": 10,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "rotki-mcp": 10,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 40,
        "codat": 75,
        "edge": "codat",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "rotki-mcp": 35,
        "weight": 7
      },
      {
        "by": 23,
        "codat": 71,
        "edge": "codat",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "rotki-mcp": 48,
        "weight": 7
      }
    ],
    "summary": "Codat scores 64.3 (B) on agent readiness against rotki MCP server's 45.6 (E), and leads in 6 of 7 scored categories. Both do accounting ledgers.",
    "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.",
      "rotki-mcp": "A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp",
    "json": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.min.md"
  },
  "markdown": "Codat scores 64.3 (B) on agent readiness against rotki MCP server's 45.6 (E), and leads in 6 of 7 scored categories. Both do accounting ledgers.\n\n- Codat: grade B, 64.3/100, rank #358 of 954. Markdown https://www.anchorterminal.com/tools/codat.md · JSON https://www.anchorterminal.com/api/v1/tools/codat.json\n- rotki MCP server: grade E, 45.6/100, rank #865 of 954. Markdown https://www.anchorterminal.com/tools/rotki-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json\n- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md\n- All 77 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md\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 50\n- Agent ergonomics, 81 against 69\n- Security \u0026 auth, 49 against 20\n- Maintenance \u0026 community, 75 against 35\n- Transparency \u0026 trust, 71 against 48\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No public price. The pricing page returns 404 and fees are set in an order form\n\n### rotki MCP server (E)\n\nGood for: A Premium user who wants an assistant to answer questions about their own history, balances and cost basis on their own machine.\n\nAlso in its favour:\n- Open source\n\nWatch for: The desktop endpoint at http://127.0.0.1:4445/mcp takes no token, because the session key is forced empty outside Docker, so any local process can call it while the server runs\n\n\n## Score by category\n\n| Category | Weight | Codat | rotki MCP server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 50 | Codat +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 76 | Codat +1 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 69 | Codat +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 20 | Codat +29 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 10 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 35 | Codat +40 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 48 | Codat +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.3 · B** | **45.6 · E** | |\n\n## Facts side by side\n\n| Fact | Codat | rotki MCP server |\n| --- | --- | --- |\n| Kind | HTTP API | Platform |\n| Vendor | Codat Limited | Rotki Solutions GmbH |\n| Hosted endpoint | `https://api.codat.io` | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Codat's Master Services Agreement. The documentation repository codatio/codat-docs is Apache-2.0 | AGPL-3.0 |\n| Tools exposed | none | 8 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-10-01 | 2026-10-02 |\n| Terms last updated | 2022-09-05 | no document linked |\n| Privacy policy last updated | 2025-04-01 |  |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 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**rotki MCP server.** A read-only MCP server in the rotki desktop app, for Premium Basic at €25 a month and above. Privacy modes mask addresses and account names, but amounts, dates, assets and counterparties reach the connected assistant in every mode. The desktop endpoint takes no token, and the feature shipped in v1.44.0 on 21 August 2026.\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### rotki MCP server\n\n1. Ask the person to start the server under Settings \u003e MCP in the desktop app, since it stays down until started, then connect to http://127.0.0.1:4445/mcp\n2. Call info first. It works without Premium and reports whether an unlocked backend is connected\n3. Call get_event_taxonomy before any aggregate over event_type, and sum on direction or event_group, since informational rows double count MEV and block rewards\n4. Call refresh_analytics_data before query_sql, and check source.completeness and unpriced_rows before reporting any total\n5. Check the privacy mode before answering from the data. Strict keeps amounts and dates, and raw sends addresses, hashes and notes verbatim\n\n## Questions\n\n### Which is better for AI agents, Codat or rotki MCP server?\n\nCodat scores 64.3 (B) on agent readiness against rotki MCP server's 45.6 (E), and leads in 6 of 7 scored categories.\n\n### Can an agent call Codat and rotki MCP server without installing anything?\n\nCodat has a hosted endpoint at https://api.codat.io. No hosted endpoint is listed for rotki MCP server.\n\n### Are Codat and rotki MCP server open source?\n\nNo open-source release is listed for Codat. rotki MCP server is open source (AGPL-3.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/codat-vs-rotki-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"codat\", \"b\": \"rotki-mcp\"}`. From a terminal: `anchor compare codat rotki-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/codat.json and https://www.anchorterminal.com/api/v1/tools/rotki-mcp.json\n\n## Other comparisons with Codat or rotki MCP server\n\n- [Apideck Accounting API + MCP vs rotki MCP server](https://www.anchorterminal.com/compare/apideck-accounting-vs-rotki-mcp.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 Pennylane](https://www.anchorterminal.com/compare/codat-vs-pennylane.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 rotki MCP server](https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp.md)\n- [FreshBooks API vs rotki MCP server](https://www.anchorterminal.com/compare/freshbooks-vs-rotki-mcp.md)\n- [Merge Accounting API vs rotki MCP server](https://www.anchorterminal.com/compare/merge-accounting-vs-rotki-mcp.md)\n- [Odoo External API vs rotki MCP server](https://www.anchorterminal.com/compare/odoo-vs-rotki-mcp.md)\n- [Pennylane vs rotki MCP server](https://www.anchorterminal.com/compare/pennylane-vs-rotki-mcp.md)\n- [QuickBooks Online API + MCP vs rotki MCP server](https://www.anchorterminal.com/compare/quickbooks-online-vs-rotki-mcp.md)\n- [rotki MCP server vs Rutter Accounting API](https://www.anchorterminal.com/compare/rotki-mcp-vs-rutter.md)\n- [rotki MCP server vs Xero API + MCP](https://www.anchorterminal.com/compare/rotki-mcp-vs-xero.md)\n- [rotki MCP server vs Zoho Books](https://www.anchorterminal.com/compare/rotki-mcp-vs-zoho-books.md)\n- [Codat vs Invoice Ninja API](https://www.anchorterminal.com/compare/codat-vs-invoice-ninja.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-10",
    "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 rotki MCP server",
        "url": ""
      }
    ],
    "description": "Codat scores 64.3 (B) to rotki's 45.6 (E) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Codat B 64.3",
      "rotki MCP server E 45.6",
      "scores"
    ],
    "h1": "Codat vs rotki MCP server",
    "image": "https://www.anchorterminal.com/assets/og/compare-codat-vs-rotki-mcp.png",
    "path": "/compare/codat-vs-rotki-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Codat vs rotki for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-10",
    "url": "https://www.anchorterminal.com/compare/codat-vs-rotki-mcp"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 680
  },
  "version": 1
}
