{
  "data": {
    "a": {
      "slug": "apideck-accounting",
      "name": "Apideck Accounting API + MCP",
      "vendor": "Apideck",
      "vendorUrl": "https://www.apideck.com/accounting-api",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified accounting API for invoices, bills, payments, journal entries and financial reports across platforms including QuickBooks, Xero and NetSuite.",
      "url": "https://www.anchorterminal.com/tools/apideck-accounting",
      "markdownUrl": "https://www.anchorterminal.com/tools/apideck-accounting.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/apideck-accounting.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apideck-accounting.json",
      "repo": "https://github.com/apideck-libraries/mcp",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://unify.apideck.com/accounting",
      "packages": [
        {
          "registry": "npm",
          "name": "@apideck/unify"
        },
        {
          "registry": "pypi",
          "name": "apideck-unify"
        },
        {
          "registry": "npm",
          "name": "@apideck/mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key plus `x-apideck-app-id` on every call, and `x-apideck-consumer-id` naming the customer whose connection you're using. Add `x-apideck-service-id` when a consumer has more than one accounting connection. End users authorise through Vault, which holds and refreshes their OAuth tokens. The hosted MCP takes the same three values as headers, the local server as environment variables.",
      "pricing": "paid",
      "pricingNotes": "Priced per active consumer (your customer), with a 30-day free trial on every plan. Launch is $599 a month for 25 consumers and one unified API category ($23.96 a consumer, $19.98 at 50), including webhooks, the Proxy API and the MCP server. Scale is $1,299 a month for 100 consumers and three categories ($12.99 a consumer), falling to $4,250 for 500 ($8.50 a consumer), and adds custom field mapping and data scopes. Enterprise is custom on an annual contract with SSO, a white-label Vault, vendor sandboxes and an uptime SLA. Yearly billing is 10 per cent less (https://www.apideck.com/pricing).",
      "priceSummary": "$599 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 362,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": 42170,
        "pypiWeekly": 14248,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.apideck.com/apis/accounting/reference",
      "llmsTxt": "https://developers.apideck.com/llms.txt",
      "openapi": "https://github.com/apideck-libraries/openapi-specs/blob/main/accounting.yml",
      "registryName": "com.apideck/mcp",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "paid",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "enterprise",
        "eu",
        "status-page",
        "toolsets"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 96,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 92,
          "security": 66,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "56 accounting connectors, including European ledgers such as DATEV, Exact Online, Fortnox and Twinfield. No published rate limits of Apideck's own, only connector limits mirrored in headers.",
        "bestFor": "A SaaS product that has to reach many customers' ledgers, especially European or desktop ones, through one agent-friendly MCP.",
        "strengths": [
          "56 accounting connectors, including European ledgers such as DATEV, Exact Online, Fortnox and Twinfield",
          "Dynamic MCP mode with 4 meta-tools at about 1,300 tokens, and annotations on all 362 tools",
          "Public OpenAPI spec (accounting.yml, 208 operations) with a dated changelog and a BREAKING.md for removals",
          "Identity lock on the MCP so one agent can't switch to another customer's ledger",
          "30-day trial with full access and no card"
        ],
        "weaknesses": [
          "No published rate limits of Apideck's own, only connector limits mirrored in headers",
          "No idempotency keys on writes, so a timed-out create can duplicate",
          "$599 a month for 25 customers after the trial, no free tier",
          "Vendor sandboxes only on Enterprise",
          "Registry entry stuck at 0.1.13 from April while npm is at 0.21.0"
        ],
        "agentNotes": [
          "Stay in dynamic mode and search for tools. Static mode loads all 362 schemas",
          "Start the MCP with --lock-identity (or ?lock_identity=true) when one agent serves one customer",
          "Read x-downstream-ratelimit-remaining before fanning out, and wait until x-downstream-ratelimit-reset after a 429",
          "List before you retry a create that timed out. Writes aren't idempotent and there's no idempotency key",
          "Pass fields= on list calls to cut the response to the columns you need"
        ],
        "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": 72.9
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 92,
          "security": 66,
          "transparency": 61
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl \"https://unify.apideck.com/accounting/invoices?limit=10\" \\\n  -H \"Authorization: Bearer $APIDECK_API_KEY\" -H \"x-apideck-app-id: $APIDECK_APP_ID\" \\\n  -H \"x-apideck-consumer-id: $APIDECK_CONSUMER_ID\" -H \"x-apideck-service-id: xero\"",
        "claudeCode": "claude mcp add --transport http apideck \"https://mcp.apideck.dev/mcp?scopes=read\" --header \"Authorization: Bearer $APIDECK_API_KEY\" --header \"x-apideck-consumer-id: $APIDECK_CONSUMER_ID\" --header \"x-apideck-app-id: $APIDECK_APP_ID\"",
        "config": {
          "mcpServers": {
            "apideck": {
              "args": [
                "-y",
                "@apideck/mcp",
                "start",
                "--scope",
                "read"
              ],
              "command": "npx",
              "env": {
                "APIDECK_API_KEY": "${APIDECK_API_KEY}",
                "APIDECK_APP_ID": "${APIDECK_APP_ID}",
                "APIDECK_CONSUMER_ID": "${APIDECK_CONSUMER_ID}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/apideck-accounting"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Launch plan",
          "unit": "month",
          "usd": 599,
          "note": "25 consumers, 1 unified API category"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 1299,
          "note": "100 consumers, 3 categories"
        },
        {
          "item": "Consumer on Launch (25)",
          "unit": "account-month",
          "usd": 23.96
        },
        {
          "item": "Consumer on Scale (100)",
          "unit": "account-month",
          "usd": 12.99
        },
        {
          "item": "Consumer on Scale (500)",
          "unit": "account-month",
          "usd": 8.5
        }
      ],
      "provenance": {
        "legalEntity": "Apideck Inc. and Apideck NV/BV",
        "domain": "apideck.com",
        "domainRegistered": "2012-07-04",
        "endpointOnVendorDomain": true,
        "terms": "https://compliance.apideck.com/terms",
        "privacy": "https://www.iubenda.com/privacy-policy/16710317",
        "statusPage": "https://status.apideck.com",
        "changelog": "https://developers.apideck.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The footer names Apideck Inc., 95 Third Street, San Francisco, and Apideck NV/BV, Broederminstraat 9, Antwerp, VAT BE 0689.615.164.",
          "The terms page on compliance.apideck.com shows only a loading state without JavaScript, and the privacy policy is hosted by iubenda rather than on apideck.com.",
          "The MCP endpoint is on apideck.dev while the API is on apideck.com. Both are the vendor's.",
          "One status-page incident in the last 90 days, delayed log delivery for about 2.5 hours on 2026-09-15, with API traffic unaffected."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apideck-accounting.json",
      "live": {
        "slug": "apideck-accounting",
        "probe": {
          "target": "https://unify.apideck.com/accounting",
          "method": "get",
          "lastAt": "2026-10-10T02:54:46.041797338Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 87,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 65,
          "p95ms24h": 141,
          "samples24h": 249,
          "samples30d": 2264,
          "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": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.apideck.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:49:55.54756334Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "apideck-libraries/mcp",
            "version": "v0.22.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-09T16:39:48.664071561Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.apideck/mcp",
            "version": "0.1.13",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@apideck/mcp",
            "version": "0.22.0",
            "seenAt": "2026-10-09T16:39:47.460387792Z"
          },
          {
            "registry": "npm",
            "name": "@apideck/unify",
            "version": "0.52.2",
            "seenAt": "2026-10-09T16:39:46.44829404Z"
          },
          {
            "registry": "pypi",
            "name": "apideck-unify",
            "version": "0.47.1",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T16:39:47.341572942Z"
          }
        ],
        "githubStars": 20,
        "npmWeekly": 27690,
        "pypiWeekly": 10291,
        "securityTxt": {
          "url": "https://apideck.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:51.708077979Z"
        },
        "llmsTxt": {
          "url": "https://developers.apideck.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:25.937935565Z"
        },
        "domain": {
          "domain": "apideck.com",
          "registered": "2012-07-04",
          "source": "https://rdap.verisign.com/com/v1/domain/apideck.com",
          "checkedAt": "2026-10-04T13:09:27.918141231Z"
        },
        "pages": [
          {
            "url": "https://developers.apideck.com/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-09T18:35:29.597847306Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3240ab3af0c0"
          },
          {
            "url": "https://www.apideck.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:06.109988978Z",
            "changedAt": "2026-10-09T18:48:06.109988978Z",
            "fingerprint": "30dd3f1e0dc7"
          },
          {
            "url": "https://www.iubenda.com/privacy-policy/16710317",
            "kind": "privacy",
            "status": 0,
            "checkedAt": "2026-10-09T18:51:19.736375934Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://compliance.apideck.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:34:14.219688213Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8bf62a1f7bee"
          }
        ],
        "updatedAt": "2026-10-10T02:54:46.041797338Z"
      }
    },
    "answer": "Apideck Accounting API + MCP scores 72.9 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories.",
    "b": {
      "slug": "pennylane",
      "name": "Pennylane",
      "vendor": "Pennylane SAS",
      "vendorUrl": "https://www.pennylane.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Pennylane is a French accounting and invoicing platform for companies and accounting firms. Its Company and Firm REST APIs cover invoices, supplier invoices, ledger entries, transactions and exports. A hosted read-only MCP server exposes the same books to AI assistants.",
      "url": "https://www.anchorterminal.com/tools/pennylane",
      "markdownUrl": "https://www.anchorterminal.com/tools/pennylane.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pennylane.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pennylane.json",
      "license": "Proprietary service under Pennylane's API agreement and customer terms",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.pennylane.com/api/external/v2",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Bearer token on every call. Companies generate a Company API token under Settings, Connectivity, Developers, which needs the Essentiel plan or above and an admin role. Each token is tied to one company, is read only or read and write, expires after 1, 6 or 12 months or never, and can be deleted. Firms generate Firm API tokens. Integration partners use the OAuth 2.0 authorisation code grant after the Partnerships team issues a client ID and secret, with 24-hour access tokens and rotating 90-day refresh tokens. The MCP server uses OAuth 2.1 with PKCE and dynamic client registration, and the user signs in through a browser.",
      "pricing": "paid",
      "pricingNotes": "API and MCP access for companies needs the Essentiel plan or above, listed at 24 euros a month before VAT for one user on the pricing tab for sole traders and single-shareholder companies. Premium is 79 euros. Each plan has a 15-day trial with no commitment, and a sandbox can be created inside an account. Whether the trial needs a card and the prices for other company types were not established. Accounting firms get the MCP at no extra cost (https://www.pennylane.com/fr/tarifs, checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the MCP docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 31,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://pennylane.readme.io/docs/api-overview",
      "llmsTxt": "https://pennylane.readme.io/llms.txt",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "oauth",
        "openapi",
        "mcp",
        "llms-txt",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 297,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 65,
          "payments": 20,
          "reliability": 75,
          "schema": 85,
          "security": 68,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice.",
        "bestFor": "An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.",
        "strengths": [
          "Scopes split each resource into `:readonly` and `:all`, for company tokens, firm tokens and OAuth apps",
          "Hosted MCP server at `https://mcp.pennylane.com/mcp` with 31 read-only tools, OAuth 2.1 with PKCE and dynamic client registration",
          "OpenAPI 3.0.1 definitions on each reference page, an llms.txt index and Markdown twins of every docs page",
          "The 2026 breaking changes ran in three phases over 24 weeks with an opt-in header, ending 1 July 2026",
          "ISO 27001 certificate published, EU hosting on AWS in Ireland, and a dated sub-processor list with 30 days' notice of additions"
        ],
        "weaknesses": [
          "The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is",
          "Creation endpoints do not enforce idempotency, except supplier invoice imports",
          "API and MCP access for companies starts at the Essentiel plan, and OAuth apps need approval from the Partnerships team",
          "No official SDK was found, and the MCP server is not in the official MCP registry",
          "No security.txt, bug bounty or published disclosure policy was found",
          "The API agreement grants Pennylane an exclusive licence over API integrations and their source code on request"
        ],
        "agentNotes": [
          "Call `GET https://app.pennylane.com/api/external/v2/me` first to confirm the token, user and company context",
          "Stay under 25 requests per 5 seconds per token and wait for the `retry-after` value on a 429",
          "Do not retry a create after a timeout without checking first. Only supplier invoice imports are deduplicated",
          "Send `filter` and `sort` again with every `cursor`. The cursor stores position only",
          "Send amounts as strings such as \"120.00\", and ask for `:readonly` scopes when the task only reads",
          "Use the MCP server for reads only. It cannot create, edit or delete, and firm connections need `company_id`"
        ],
        "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": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 65,
          "payments": 20,
          "reliability": 75,
          "schema": 85,
          "security": 68,
          "transparency": 71
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl https://app.pennylane.com/api/external/v2/me \\\n  -H \"Authorization: Bearer $PENNYLANE_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http pennylane https://mcp.pennylane.com/mcp",
        "config": {
          "mcpServers": {
            "pennylane": {
              "url": "https://mcp.pennylane.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/pennylane"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Pennylane SAS",
        "domain": "pennylane.com",
        "domainRegistered": "1998-09-23",
        "endpointOnVendorDomain": true,
        "terms": "https://pennylane.readme.io/page/api-contract-terms",
        "privacy": "https://www.pennylane.com/fr/legal/privacy",
        "statusPage": "https://status.pennylane.com",
        "changelog": "https://pennylane.readme.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The legal notice (updated 8 September 2026) names Pennylane, a société par actions simplifiée, SIREN 880 265 921 RCS Paris, 2-4 rue Jules Lefebvre, 75009 Paris. Pennylane GmbH sells the product in Germany.",
          "The API agreement (API Contract terms, last updated January 2024) governs API use and is cited by clause 26.9 of the customer terms. It gives a registered office in Cherbourg-en-Cotentin, which differs from the Paris address in the customer terms and legal notice.",
          "The customer terms for companies (version of 16 December 2025) are a PDF linked from https://www.pennylane.com/fr/conditions-generales, with the data processing agreement and the SLA as annexes.",
          "The privacy policy (updated 30 January 2026) covers processing where Pennylane is controller. Processing as processor is governed by the data processing agreement annexed to the customer terms.",
          "www.pennylane.com/.well-known/security.txt returns 404.",
          "The API answers on app.pennylane.com and the MCP server on mcp.pennylane.com. The API docs are hosted on pennylane.readme.io.",
          "RDAP for pennylane.com gives a registration date of 1998-09-23."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pennylane.json",
      "live": {
        "slug": "pennylane",
        "probe": {
          "target": "https://app.pennylane.com/api/external/v2",
          "method": "get",
          "lastAt": "2026-10-10T02:55:05.478821158Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 76,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 111,
          "p95ms24h": 670,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pennylane.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:41.945863598Z"
        },
        "pages": [
          {
            "url": "https://pennylane.readme.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:10.597188172Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "baba0cf1ecaa"
          },
          {
            "url": "https://www.pennylane.com/fr/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:57.370338236Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2e89b0e31f0b"
          },
          {
            "url": "https://pennylane.readme.io/page/api-contract-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:13.114667877Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7815b7f4ccf6"
          }
        ],
        "updatedAt": "2026-10-10T02:55:05.478821158Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Apideck",
        "b": "Pennylane SAS",
        "name": "Vendor"
      },
      {
        "a": "https://unify.apideck.com/accounting",
        "b": "https://app.pennylane.com/api/external/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "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": "MIT",
        "b": "Proprietary service under Pennylane's API agreement and customer terms",
        "name": "Licence"
      },
      {
        "a": "362",
        "b": "31",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.apideck/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-01",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "15 stars, 42k npm/wk, 14k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Apideck Accounting API + MCP scores 72.9 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories.",
        "question": "Which is better for AI agents, Apideck Accounting API + MCP or Pennylane?"
      },
      {
        "answer": "Apideck Accounting API + MCP needs an API key. Pennylane takes an API key or an OAuth sign-in.",
        "question": "Do Apideck Accounting API + MCP and Pennylane need an API key?"
      },
      {
        "answer": "Yes. Apideck Accounting API + MCP has a hosted endpoint at https://unify.apideck.com/accounting and Pennylane at https://app.pennylane.com/api/external/v2.",
        "question": "Can an agent call Apideck Accounting API + MCP and Pennylane without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 85",
          "Agent ergonomics, 88 against 66",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 80 against 65"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A SaaS product that has to reach many customers' ledgers, especially European or desktop ones, through one agent-friendly MCP.",
        "slug": "apideck-accounting",
        "watchFor": "No published rate limits of Apideck's own, only connector limits mirrored in headers"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.",
        "slug": "pennylane",
        "watchFor": "The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledgers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-freeagent.json",
        "title": "Apideck Accounting API + MCP vs FreeAgent API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-freeagent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-freshbooks.json",
        "title": "Apideck Accounting API + MCP vs FreshBooks API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-freshbooks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-odoo.json",
        "title": "Apideck Accounting API + MCP vs Odoo External API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-odoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online.json",
        "title": "Apideck Accounting API + MCP vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-xero.json",
        "title": "Apideck Accounting API + MCP vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books.json",
        "title": "Apideck Accounting API + MCP vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-pennylane.json",
        "title": "Codat vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/codat-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-pennylane.json",
        "title": "FreeAgent API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-pennylane.json",
        "title": "FreshBooks API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.json",
        "title": "Merge Accounting API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-pennylane.json",
        "title": "Odoo External API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online.json",
        "title": "Pennylane vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-rutter.json",
        "title": "Pennylane vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-xero.json",
        "title": "Pennylane vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-zoho-books.json",
        "title": "Pennylane vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-invoice-ninja.json",
        "title": "Apideck Accounting API + MCP vs Invoice Ninja API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-invoice-ninja"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane.json",
        "title": "Invoice Ninja API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane"
      },
      {
        "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/apideck-accounting-vs-rutter.json",
        "title": "Apideck Accounting API + MCP vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter"
      }
    ],
    "scores": [
      {
        "apideck-accounting": 75,
        "by": 0,
        "edge": "",
        "key": "reliability",
        "name": "Reliability",
        "pennylane": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "apideck-accounting": 92,
        "by": 7,
        "edge": "apideck-accounting",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pennylane": 85,
        "weight": 13
      },
      {
        "apideck-accounting": 88,
        "by": 22,
        "edge": "apideck-accounting",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pennylane": 66,
        "weight": 13
      },
      {
        "apideck-accounting": 66,
        "by": 2,
        "edge": "pennylane",
        "key": "security",
        "name": "Security \u0026 auth",
        "pennylane": 68,
        "weight": 14
      },
      {
        "apideck-accounting": 30,
        "by": 10,
        "edge": "apideck-accounting",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pennylane": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "apideck-accounting": 80,
        "by": 15,
        "edge": "apideck-accounting",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pennylane": 65,
        "weight": 7
      },
      {
        "apideck-accounting": 73,
        "by": 3,
        "edge": "pennylane",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pennylane": 76,
        "weight": 7
      }
    ],
    "summary": "Apideck Accounting API + MCP scores 72.9 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Both do accounting ledgers.",
    "verdicts": {
      "apideck-accounting": "56 accounting connectors, including European ledgers such as DATEV, Exact Online, Fortnox and Twinfield. No published rate limits of Apideck's own, only connector limits mirrored in headers.",
      "pennylane": "The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane",
    "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.md",
    "slim": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.min.md"
  },
  "markdown": "Apideck Accounting API + MCP scores 72.9 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Both do accounting ledgers.\n\n- Apideck Accounting API + MCP: grade BB, 72.9/100, rank #96 of 950. Markdown https://www.anchorterminal.com/tools/apideck-accounting.md · JSON https://www.anchorterminal.com/api/v1/tools/apideck-accounting.json\n- Pennylane: grade B, 66.3/100, rank #297 of 950. Markdown https://www.anchorterminal.com/tools/pennylane.md · JSON https://www.anchorterminal.com/api/v1/tools/pennylane.json\n- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md\n- All 66 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md\n\n## Which one, for what\n\n### Apideck Accounting API + MCP (BB)\n\nGood for: A SaaS product that has to reach many customers' ledgers, especially European or desktop ones, through one agent-friendly MCP.\n\nAhead on:\n- Schema \u0026 documentation, 92 against 85\n- Agent ergonomics, 88 against 66\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 80 against 65\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: No published rate limits of Apideck's own, only connector limits mirrored in headers\n\n### Pennylane (B)\n\nGood for: An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.\n\nWatch for: The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is\n\n\n## Score by category\n\n| Category | Weight | Apideck Accounting API + MCP | Pennylane | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 75 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 85 | Apideck Accounting API + MCP +7 |\n| Agent ergonomics | 13% (16.2 this run) | 88 | 66 | Apideck Accounting API + MCP +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 68 | Pennylane +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Apideck Accounting API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 65 | Apideck Accounting API + MCP +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 76 | Pennylane +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **72.9 · BB** | **66.3 · B** | |\n\n## Facts side by side\n\n| Fact | Apideck Accounting API + MCP | Pennylane |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Apideck | Pennylane SAS |\n| Hosted endpoint | `https://unify.apideck.com/accounting` | `https://app.pennylane.com/api/external/v2` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | MIT | Proprietary service under Pennylane's API agreement and customer terms |\n| Tools exposed | 362 | 31 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | `com.apideck/mcp` | not listed |\n| Last release | 2026-10-01 | 2026-09-30 |\n| Terms last updated | couldn't be read | no date given |\n| Privacy policy last updated | couldn't be read | no date given |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | not found in the text |\n| Popularity | 15 stars, 42k npm/wk, 14k PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**Apideck Accounting API + MCP.** 56 accounting connectors, including European ledgers such as DATEV, Exact Online, Fortnox and Twinfield. No published rate limits of Apideck's own, only connector limits mirrored in headers.\n\n**Pennylane.** The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice.\n\n## Before you call either\n\n### Apideck Accounting API + MCP\n\n1. Stay in dynamic mode and search for tools. Static mode loads all 362 schemas\n2. Start the MCP with --lock-identity (or ?lock_identity=true) when one agent serves one customer\n3. Read x-downstream-ratelimit-remaining before fanning out, and wait until x-downstream-ratelimit-reset after a 429\n4. List before you retry a create that timed out. Writes aren't idempotent and there's no idempotency key\n5. Pass fields= on list calls to cut the response to the columns you need\n\n### Pennylane\n\n1. Call `GET https://app.pennylane.com/api/external/v2/me` first to confirm the token, user and company context\n2. Stay under 25 requests per 5 seconds per token and wait for the `retry-after` value on a 429\n3. Do not retry a create after a timeout without checking first. Only supplier invoice imports are deduplicated\n4. Send `filter` and `sort` again with every `cursor`. The cursor stores position only\n5. Send amounts as strings such as \"120.00\", and ask for `:readonly` scopes when the task only reads\n6. Use the MCP server for reads only. It cannot create, edit or delete, and firm connections need `company_id`\n\n## Questions\n\n### Which is better for AI agents, Apideck Accounting API + MCP or Pennylane?\n\nApideck Accounting API + MCP scores 72.9 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories.\n\n### Do Apideck Accounting API + MCP and Pennylane need an API key?\n\nApideck Accounting API + MCP needs an API key. Pennylane takes an API key or an OAuth sign-in.\n\n### Can an agent call Apideck Accounting API + MCP and Pennylane without installing anything?\n\nYes. Apideck Accounting API + MCP has a hosted endpoint at https://unify.apideck.com/accounting and Pennylane at https://app.pennylane.com/api/external/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.json, and with the fewest tokens: https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"apideck-accounting\", \"b\": \"pennylane\"}`. From a terminal: `anchor compare apideck-accounting pennylane`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/apideck-accounting.json and https://www.anchorterminal.com/api/v1/tools/pennylane.json\n\n## Other comparisons with Apideck Accounting API + MCP or Pennylane\n\n- [Apideck Accounting API + MCP vs FreeAgent API](https://www.anchorterminal.com/compare/apideck-accounting-vs-freeagent.md)\n- [Apideck Accounting API + MCP vs FreshBooks API](https://www.anchorterminal.com/compare/apideck-accounting-vs-freshbooks.md)\n- [Apideck Accounting API + MCP vs Odoo External API](https://www.anchorterminal.com/compare/apideck-accounting-vs-odoo.md)\n- [Apideck Accounting API + MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online.md)\n- [Apideck Accounting API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-xero.md)\n- [Apideck Accounting API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/apideck-accounting-vs-zoho-books.md)\n- [Codat vs Pennylane](https://www.anchorterminal.com/compare/codat-vs-pennylane.md)\n- [FreeAgent API vs Pennylane](https://www.anchorterminal.com/compare/freeagent-vs-pennylane.md)\n- [FreshBooks API vs Pennylane](https://www.anchorterminal.com/compare/freshbooks-vs-pennylane.md)\n- [Merge Accounting API vs Pennylane](https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.md)\n- [Odoo External API vs Pennylane](https://www.anchorterminal.com/compare/odoo-vs-pennylane.md)\n- [Pennylane vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online.md)\n- [Pennylane vs Rutter Accounting API](https://www.anchorterminal.com/compare/pennylane-vs-rutter.md)\n- [Pennylane vs Xero API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-xero.md)\n- [Pennylane vs Zoho Books](https://www.anchorterminal.com/compare/pennylane-vs-zoho-books.md)\n- [Apideck Accounting API + MCP vs Invoice Ninja API](https://www.anchorterminal.com/compare/apideck-accounting-vs-invoice-ninja.md)\n- [Invoice Ninja API vs Pennylane](https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane.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- [Apideck Accounting API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-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": "Apideck Accounting API + MCP vs Pennylane",
        "url": ""
      }
    ],
    "description": "Apideck Accounting scores 72.9 (BB) to Pennylane's 66.3 (B) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Apideck Accounting API + MCP BB 72.9",
      "Pennylane B 66.3",
      "scores"
    ],
    "h1": "Apideck Accounting API + MCP vs Pennylane",
    "image": "https://www.anchorterminal.com/assets/og/compare-apideck-accounting-vs-pennylane.png",
    "path": "/compare/apideck-accounting-vs-pennylane",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Apideck Accounting vs Pennylane for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 780
  },
  "version": 1
}
