{
  "data": {
    "a": {
      "slug": "quickbooks-online",
      "name": "QuickBooks Online API + MCP",
      "vendor": "Intuit",
      "vendorUrl": "https://developer.intuit.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Intuit's REST API for accessing QuickBooks Online accounting data.",
      "url": "https://www.anchorterminal.com/tools/quickbooks-online",
      "markdownUrl": "https://www.anchorterminal.com/tools/quickbooks-online.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/quickbooks-online.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/quickbooks-online.json",
      "repo": "https://github.com/intuit/quickbooks-online-mcp-server",
      "license": "MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://quickbooks.api.intuit.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "intuit-oauth"
        },
        {
          "registry": "pypi",
          "name": "intuit-oauth"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code with OpenID Connect. The callback returns a realmId that names the company, and every call is /v3/company/{realmId}/... with a Bearer token. Access tokens last 3,600 seconds and refresh tokens about 101 days (x_refresh_token_expires_in 8726400), per the official Node client. The sandbox uses the same flow against sandbox-quickbooks.api.intuit.com with an app's development keys.",
      "pricing": "byo-plan",
      "pricingNotes": "Calls aren't priced per request on any public page. Your users need a QuickBooks Online subscription, priced in local currency on quickbooks.intuit.com, and sandbox companies are free with a developer account. Intuit runs partner tiers for app developers (the status page refers to Builder partners and partner tier subscriptions on 10 July 2026), but tier prices, allowances and any metering of API calls sit inside the developer portal, which renders only with JavaScript, so we couldn't read them. Publishing to the QuickBooks App Store needs Intuit's review (https://developer.intuit.com/app/developer/qbo/docs/get-started).",
      "priceSummary": "Your plan",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 145,
      "popularity": {
        "githubStars": 145,
        "npmWeekly": 399820,
        "pypiWeekly": 259619,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.intuit.com/app/developer/qbo/docs/get-started",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "byo-plan",
        "free-tier",
        "oauth",
        "mcp",
        "typescript",
        "python",
        "webhooks",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.3,
        "grade": "D",
        "agentReady": false,
        "rank": 369,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 43,
          "security": 38,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools. Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch.",
        "strengths": [
          "Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools",
          "Free sandbox companies, with a status page that breaks out API, sandbox, OAuth, webhooks and Payments",
          "Query endpoint with an SQL-like syntax, so one call filters any entity server-side",
          "RequestId for idempotent writes and Retry-After on 429, both documented by Intuit",
          "Official SDKs for Java, .NET and PHP, each released since July 2026, and OAuth clients for Node and Python"
        ],
        "weaknesses": [
          "Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch",
          "No OpenAPI spec and no llms.txt. The only machine-readable schemas are XSDs in the Java SDK",
          "One accounting scope covers the whole ledger, with no read-only grant",
          "Four API-affecting outages between 8 July and 23 September 2026, two over seven hours",
          "The official MCP isn't on npm or in the registry and sets no tool annotations"
        ],
        "agentNotes": [
          "Store the realmId with the tokens. Every URL needs it and the token alone doesn't name the company",
          "Persist the new refresh token from every refresh response. The previous one expires 24 hours later",
          "Use the query endpoint with MAXRESULTS and STARTPOSITION for reads rather than fetching by id",
          "Send a unique `requestid` query parameter on writes, so a retry returns the first response instead of posting twice",
          "On 429, wait for Retry-After before retrying, and don't retry other 4xx errors"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.3
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 30,
          "reliability": 45,
          "schema": 43,
          "security": 38,
          "transparency": 22
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl \"https://sandbox-quickbooks.api.intuit.com/v3/company/$QBO_REALM_ID/query?query=select%20*%20from%20Invoice%20maxresults%2010\" \\\n  -H \"Authorization: Bearer $QBO_ACCESS_TOKEN\" -H \"Accept: application/json\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/quickbooks-online"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Intuit Inc.",
        "domain": "intuit.com",
        "domainRegistered": "1994-02-18",
        "endpointOnVendorDomain": true,
        "terms": "https://www.intuit.com/legal/terms/",
        "privacy": "https://www.intuit.com/privacy/statement/",
        "statusPage": "https://status.developer.intuit.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-09-30",
        "notes": [
          "The legal index names Intuit Inc., Mountain View, CA 94043. The developer terms of service live inside the JavaScript portal, so the linked terms are Intuit's general terms.",
          "www.intuit.com/.well-known/security.txt returned a 400 error, so we couldn't tell whether one exists. Intuit runs a security site at security.intuit.com.",
          "The privacy statement was last updated 9 March 2026."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/quickbooks-online.json",
      "live": {
        "slug": "quickbooks-online",
        "probe": {
          "target": "https://quickbooks.api.intuit.com/v3",
          "method": "get",
          "lastAt": "2026-10-05T00:15:28.762929711Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 570,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 593,
          "p95ms24h": 633,
          "samples24h": 272,
          "samples30d": 903,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.developer.intuit.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:32.164213523Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "intuit-oauth",
            "version": "4.2.5",
            "seenAt": "2026-10-04T16:37:54.869303662Z"
          },
          {
            "registry": "pypi",
            "name": "intuit-oauth",
            "version": "1.2.7",
            "released": "2026-07-22",
            "seenAt": "2026-10-04T16:37:55.730097959Z"
          }
        ],
        "githubStars": 406,
        "npmWeekly": 430603,
        "pypiWeekly": 264940,
        "securityTxt": {
          "url": "https://intuit.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-04T15:16:02.319821055Z"
        },
        "domain": {
          "domain": "intuit.com",
          "registered": "1994-02-18",
          "source": "https://rdap.verisign.com/com/v1/domain/intuit.com",
          "checkedAt": "2026-10-04T13:07:40.944976852Z"
        },
        "pages": [
          {
            "url": "https://www.intuit.com/privacy/statement/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:53.338786361Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdf88eaea616"
          },
          {
            "url": "https://www.intuit.com/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:51.130631537Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6dec63558567"
          }
        ],
        "updatedAt": "2026-10-05T00:15:28.762929711Z"
      }
    },
    "b": {
      "slug": "rutter",
      "name": "Rutter Accounting API",
      "vendor": "Rutter",
      "vendorUrl": "https://www.rutter.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified API for accounting, commerce and payment platforms, aimed at lenders and financial software developers.",
      "url": "https://www.anchorterminal.com/tools/rutter",
      "markdownUrl": "https://www.anchorterminal.com/tools/rutter.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rutter.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rutter.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://production.rutterapi.com/versioned",
      "packages": [],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with your client_id and client_secret, plus an `access_token` query parameter naming the connection, which you get from the Exchange Tokens endpoint after a user links through Rutter Link. Every call needs an `X-Rutter-Version` header (2024-08-31 is current). The sandbox at sandbox.rutterapi.com uses the same scheme.",
      "pricing": "paid",
      "pricingNotes": "A free starter plan gives sandbox data and a 30-day trial for a proof of concept against QuickBooks, Xero, FreshBooks and Zoho Books, with no card. Production access to every platform, including NetSuite, QuickBooks Desktop and Sage Intacct, is a custom quote from sales, with a 99.9 per cent monthly uptime SLA and one-hour response on critical issues. No per-connection price is published (https://www.rutter.com/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.rutter.com/rest/2024-08-31/basics",
      "openapi": "https://docs.rutter.com/rest/2024-08-31/spec",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "paid",
        "no-card",
        "openapi",
        "webhooks",
        "async-jobs",
        "enterprise",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.8,
        "grade": "C",
        "agentReady": false,
        "rank": 311,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 62,
          "payments": 20,
          "reliability": 67,
          "schema": 79,
          "security": 36,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only.",
        "strengths": [
          "Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds",
          "Error codes 450, 451, 452 and 550 that separate the platform's failure from Rutter's",
          "OpenAPI spec per dated API version, with an upgrade guide listing breaking changes",
          "30-day sandbox trial with QuickBooks, Xero, FreshBooks and Zoho Books, no card",
          "99.9 per cent monthly uptime SLA published on the pricing page"
        ],
        "weaknesses": [
          "Production prices are quote-only",
          "Terms and privacy policy are Google Drive PDFs, and no legal entity is named on the site",
          "The per-connection access_token travels as a URL query parameter",
          "Four API incidents in September 2026, including about 25 hours of high latency and errors on 3 and 4 September",
          "No SDK, llms.txt or MCP server from the vendor"
        ],
        "agentNotes": [
          "Send X-Rutter-Version: 2024-08-31 on every call",
          "Send an Idempotency-Key on every create so a retry after a timeout doesn't write twice",
          "Use response_mode=prefer_sync and handle the 202 async_response anyway",
          "Treat 452 as the ledger throttling you and 429 as Rutter's 500-per-10-seconds organisation limit",
          "Keep access_token out of logged URLs. The docs only show it as a query parameter"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.8
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 62,
          "payments": 20,
          "reliability": 67,
          "schema": 79,
          "security": 36,
          "transparency": 26
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl \"https://sandbox.rutterapi.com/versioned/accounting/invoices?access_token=$RUTTER_ACCESS_TOKEN\" \\\n  -u \"$RUTTER_CLIENT_ID:$RUTTER_CLIENT_SECRET\" -H \"X-Rutter-Version: 2024-08-31\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/rutter"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Rutter",
        "domain": "rutter.com",
        "domainRegistered": "1996-10-28",
        "domainNote": "rutter.com was registered in 1996, long before the company, so the domain was bought later. The API runs on rutterapi.com.",
        "endpointOnVendorDomain": false,
        "terms": "https://drive.google.com/file/d/1J77WNI4JS_WjFiXn9NgQVBy_N_unqpCn/view",
        "privacy": "https://drive.google.com/file/d/1uZ76Be9jAih5g8kj8bKEAApCnMb6TQVL/view",
        "statusPage": "https://status.rutterapi.com",
        "changelog": "https://docs.rutter.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The footer gives an address at 3 East 28th St, Floor 5, New York, NY 10016 and a copyright line reading Rutter, with no company suffix. We couldn't read the Google Drive PDFs to confirm the legal name.",
          "The API and status page live on rutterapi.com while the site and docs are on rutter.com. Both are the vendor's.",
          "A trust centre at trust.rutter.com holds the security documentation."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rutter.json",
      "live": {
        "slug": "rutter",
        "probe": {
          "target": "https://production.rutterapi.com/versioned",
          "method": "get",
          "lastAt": "2026-10-05T00:15:29.65288005Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 324,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 306,
          "p95ms24h": 370,
          "samples24h": 272,
          "samples30d": 903,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.rutterapi.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:33.23800432Z"
        },
        "securityTxt": {
          "url": "https://rutter.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:43.591485119Z"
        },
        "domain": {
          "domain": "rutter.com",
          "registered": "1996-10-28",
          "source": "https://rdap.verisign.com/com/v1/domain/rutter.com",
          "checkedAt": "2026-10-04T13:03:31.134242543Z"
        },
        "pages": [
          {
            "url": "https://docs.rutter.com/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:00.69234572Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "92fa990bcd51"
          },
          {
            "url": "https://www.rutter.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:01.742055638Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4091577edbf3"
          },
          {
            "url": "https://drive.google.com/file/d/1uZ76Be9jAih5g8kj8bKEAApCnMb6TQVL/view",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:26.201246267Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d009b71cc585"
          },
          {
            "url": "https://drive.google.com/file/d/1J77WNI4JS_WjFiXn9NgQVBy_N_unqpCn/view",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:23.771110708Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca761d70fc05"
          }
        ],
        "updatedAt": "2026-10-05T00:15:29.65288005Z"
      }
    },
    "summary": "Rutter Accounting API has a score of 55.8 (C) against QuickBooks Online API + MCP's 49.3 (D). Both do accounting ledger. The largest gap is schema \u0026 documentation, 36 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter",
    "json": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.md",
    "slim": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter.min.md"
  },
  "markdown": "Rutter Accounting API has a score of 55.8 (C) against QuickBooks Online API + MCP's 49.3 (D). Both do accounting ledger. The largest gap is schema \u0026 documentation, 36 points.\n\n- QuickBooks Online API + MCP: grade D, 49.3/100, rank #369 of 452. Markdown https://www.anchorterminal.com/tools/quickbooks-online.md · JSON https://www.anchorterminal.com/api/v1/tools/quickbooks-online.json\n- Rutter Accounting API: grade C, 55.8/100, rank #311 of 452. Markdown https://www.anchorterminal.com/tools/rutter.md · JSON https://www.anchorterminal.com/api/v1/tools/rutter.json\n\n## Which one, for what\n\nPick QuickBooks Online API + MCP for payments \u0026 pricing (+10), maintenance \u0026 community (+23).\n\nPick Rutter Accounting API for reliability (+22), schema \u0026 documentation (+36).\n\n## Score by category\n\n| Category | Weight | QuickBooks Online API + MCP | Rutter Accounting API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 67 | Rutter Accounting API +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 43 | 79 | Rutter Accounting API +36 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 67 | QuickBooks Online API + MCP +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 38 | 36 | QuickBooks Online API + MCP +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | QuickBooks Online API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 62 | QuickBooks Online API + MCP +23 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 51 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **49.3 · D** | **55.8 · C** | |\n\n## Facts side by side\n\n| Fact | QuickBooks Online API + MCP | Rutter Accounting API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Intuit | Rutter |\n| Hosted endpoint | `https://quickbooks.api.intuit.com/v3` | `https://production.rutterapi.com/versioned` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | MIT | none |\n| Tools exposed | 145 | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-17 | 2026-09-24 |\n| Popularity | 145 stars, 400k npm/wk, 260k PyPI/wk | none |\n| Agent reviews | 2/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**QuickBooks Online API + MCP.** Official MCP server from Intuit with 145 tools and flags to remove write, update or delete tools. Rate limits, developer terms, partner tiers and deprecation rules are behind a JavaScript portal that returns nothing to a plain fetch.\n\n**Rutter Accounting API.** Idempotency-Key header on writes, and prefer_sync writes that fall back to async after 30 seconds. Production prices are quote-only.\n\n## Before you call either\n\n### QuickBooks Online API + MCP\n\n1. Store the realmId with the tokens. Every URL needs it and the token alone doesn't name the company\n2. Persist the new refresh token from every refresh response. The previous one expires 24 hours later\n3. Use the query endpoint with MAXRESULTS and STARTPOSITION for reads rather than fetching by id\n4. Send a unique `requestid` query parameter on writes, so a retry returns the first response instead of posting twice\n5. On 429, wait for Retry-After before retrying, and don't retry other 4xx errors\n\n### Rutter Accounting API\n\n1. Send X-Rutter-Version: 2024-08-31 on every call\n2. Send an Idempotency-Key on every create so a retry after a timeout doesn't write twice\n3. Use response_mode=prefer_sync and handle the 202 async_response anyway\n4. Treat 452 as the ledger throttling you and 429 as Rutter's 500-per-10-seconds organisation limit\n5. Keep access_token out of logged URLs. The docs only show it as a query parameter\n\n## Other comparisons with QuickBooks Online API + MCP or Rutter Accounting API\n\n- [Apideck Accounting API + MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-quickbooks-online.md)\n- [FreeAgent API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-quickbooks-online.md)\n- [FreeAgent API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-rutter.md)\n- [FreshBooks API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/freshbooks-vs-quickbooks-online.md)\n- [FreshBooks API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-rutter.md)\n- [Merge Accounting API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.md)\n- [QuickBooks Online API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/quickbooks-online-vs-xero.md)\n- [Rutter Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/rutter-vs-xero.md)\n- [Invoice Ninja API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-quickbooks-online.md)\n- [Invoice Ninja API vs Rutter Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-rutter.md)\n- [Apideck Accounting API + MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-rutter.md)\n- [Merge Accounting API vs Rutter Accounting API](https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "QuickBooks Online API + MCP vs Rutter Accounting API",
        "url": ""
      }
    ],
    "description": "Rutter Accounting API has a score of 55.8 (C) against QuickBooks Online API + MCP's 49.3 (D). Both do accounting ledger. The largest gap is schema \u0026 documentation, 36 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "QuickBooks Online API + MCP D 49.3",
      "Rutter Accounting API C 55.8",
      "scores"
    ],
    "h1": "QuickBooks Online API + MCP vs Rutter Accounting API",
    "image": "https://www.anchorterminal.com/assets/og/compare-quickbooks-online-vs-rutter.png",
    "path": "/compare/quickbooks-online-vs-rutter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "QuickBooks Online API + MCP vs Rutter Accounting API for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/quickbooks-online-vs-rutter"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
