{
  "data": {
    "a": {
      "slug": "freshbooks",
      "name": "FreshBooks API",
      "vendor": "FreshBooks",
      "vendorUrl": "https://www.freshbooks.com/api/start",
      "kind": "http-api",
      "category": "accounting",
      "summary": "REST API for FreshBooks, the invoicing-first accounting product for freelancers and small firms.",
      "url": "https://www.anchorterminal.com/tools/freshbooks",
      "markdownUrl": "https://www.anchorterminal.com/tools/freshbooks.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/freshbooks.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/freshbooks.json",
      "repo": "https://github.com/freshbooks/freshbooks-python-sdk",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.freshbooks.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@freshbooks/api"
        },
        {
          "registry": "pypi",
          "name": "freshbooks-sdk"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code with scopes such as user:invoices:read and user:journal_entries:write. Access tokens are JWTs that expire (check the expiry in the token). Refresh tokens never expire but are single use, and only one is alive per user per app, so a refresh invalidates the old one. Call GET /auth/api/v1/users/me for the account_id used by /accounting endpoints and the business_id used by projects and time tracking.",
      "pricing": "byo-plan",
      "pricingNotes": "The API comes with any FreshBooks plan under section 12 of the terms, with no separate developer fee. Plans are Lite at $23 a month (5 billable clients), Plus at $43 (50 clients), Premium at $70 (unlimited) and Select on request, with introductory discounts. Double-entry accounting reports and bank reconciliation start at Plus (https://www.freshbooks.com/pricing).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 11,
        "npmWeekly": 685,
        "pypiWeekly": 415,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.freshbooks.com/api/start",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "byo-plan",
        "oauth",
        "typescript",
        "python",
        "webhooks",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2024-09-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.6,
        "grade": "E",
        "agentReady": false,
        "rank": 397,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 14,
          "payments": 30,
          "reliability": 35,
          "schema": 48,
          "security": 57,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth scopes split read and write per resource, such as user:invoices:read. Rate limits have no numbers, status code or headers.",
        "strengths": [
          "OAuth scopes split read and write per resource, such as user:invoices:read",
          "Journal entries, chart of accounts, trial balance and general ledger through the API",
          "Numbered error codes such as 1001 RequiredField and 1012 UnknownResource",
          "30-day product trial with no card",
          "PCI DSS Level 1 with an annual third-party audit"
        ],
        "weaknesses": [
          "Rate limits have no numbers, status code or headers",
          "No sandbox, so testing happens in a trial account",
          "Official SDKs last released in April 2023 (Python) and September 2024 (Node)",
          "Changelog holds a single entry, the move to JWT tokens",
          "About two hours of full outage on 4 August 2026, and no API component on the status page"
        ],
        "agentNotes": [
          "Call /auth/api/v1/users/me first and keep both ids. Accounting endpoints take account_id, projects and time tracking take business_id",
          "Serialise token refreshes. Issuing a new refresh token kills the old one at once",
          "Mark an invoice as sent (action_mark_as_sent) or email it. Reports ignore drafts",
          "Send x-api-version: 2023-09-25 on journal entry calls",
          "Back off on any throttling response yourself. There's no Retry-After to read and no published limit"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.6
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 14,
          "payments": 30,
          "reliability": 35,
          "schema": 48,
          "security": 57,
          "transparency": 56
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl \"https://api.freshbooks.com/accounting/account/$FRESHBOOKS_ACCOUNT_ID/invoices/invoices?per_page=10\" \\\n  -H \"Authorization: Bearer $FRESHBOOKS_ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/freshbooks"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "2NDSITE Inc.",
        "domain": "freshbooks.com",
        "domainRegistered": "2004-03-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.freshbooks.com/policies/terms-of-service",
        "privacy": "https://www.freshbooks.com/policies/privacy",
        "statusPage": "https://status.freshbooks.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-09-30",
        "notes": [
          "The terms name 2NDSITE Inc., 225 King St W, Suite 1200, Toronto, under Ontario law, effective 29 October 2025 for new accounts.",
          "The API terms are section 12 of the general terms. There's no separate developer agreement.",
          "The API changelog page has a single entry, the 2021 to 2023 move from fixed-length bearer tokens to JWTs.",
          "www.freshbooks.com/.well-known/security.txt returned 403 to our fetch."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/freshbooks.json",
      "live": {
        "slug": "freshbooks",
        "probe": {
          "target": "https://api.freshbooks.com",
          "method": "get",
          "lastAt": "2026-10-05T00:25:43.237985423Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 143,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 137,
          "p95ms24h": 186,
          "samples24h": 272,
          "samples30d": 905,
          "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": 5,
              "ok": 5
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.freshbooks.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:22:46.496966397Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "freshbooks/freshbooks-python-sdk",
            "version": "release/1.2.1",
            "released": "2023-04-24",
            "seenAt": "2026-10-04T16:27:33.686534225Z"
          },
          {
            "registry": "npm",
            "name": "@freshbooks/api",
            "version": "4.1.0",
            "seenAt": "2026-10-04T16:27:30.852425352Z"
          },
          {
            "registry": "pypi",
            "name": "freshbooks-sdk",
            "version": "1.3.0",
            "released": "2024-10-08",
            "seenAt": "2026-10-04T16:27:33.500867221Z"
          }
        ],
        "githubStars": 11,
        "npmWeekly": 905,
        "pypiWeekly": 246,
        "securityTxt": {
          "url": "https://freshbooks.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-04T15:15:40.438598204Z"
        },
        "domain": {
          "domain": "freshbooks.com",
          "registered": "2004-03-23",
          "source": "https://rdap.verisign.com/com/v1/domain/freshbooks.com",
          "checkedAt": "2026-10-04T13:03:59.146069659Z"
        },
        "pages": [
          {
            "url": "https://www.freshbooks.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:23.777400508Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "98986299b19f"
          },
          {
            "url": "https://www.freshbooks.com/policies/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:19.717552449Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "12e269175e94"
          },
          {
            "url": "https://www.freshbooks.com/policies/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:21.795401021Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca7450fe9735"
          }
        ],
        "updatedAt": "2026-10-05T00:25:43.237985423Z"
      }
    },
    "b": {
      "slug": "merge-accounting",
      "name": "Merge Accounting API",
      "vendor": "Merge",
      "vendorUrl": "https://www.merge.dev",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified accounting API for invoices, payments, expenses, journal entries and financial statements across platforms including QuickBooks, Xero and NetSuite.",
      "url": "https://www.anchorterminal.com/tools/merge-accounting",
      "markdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/merge-accounting.json",
      "repo": "https://github.com/merge-api/merge-python-client",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.merge.dev/api/accounting/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "MergePythonClient"
        },
        {
          "registry": "npm",
          "name": "@mergeapi/merge-node-client"
        }
      ],
      "auth": "api-key",
      "authNotes": "Two headers on every call. `Authorization: Bearer \u003cAPI key\u003e` from the Merge dashboard (production or test keys) and `X-Account-Token` for the linked account, issued when a user finishes the Merge Link flow. There's an EU host at api-eu.merge.dev. Merge holds the OAuth tokens for the accounting platform, so your agent never sees them.",
      "pricing": "freemium",
      "pricingNotes": "The first 3 production linked accounts are free with no card. Launch is $650 a month for up to 10 production linked accounts and $65 a month for each one beyond that, with 100 requests a minute per linked account, up to 3 test linked accounts, sandbox accounts for the first 60 days and 3 days of logs. Professional (400 a minute, unlimited test linked accounts, sandbox accounts for the first 60 days, 30 days of logs, field-level scopes) and Enterprise (600 a minute, unlimited sandboxes, 90 days or more of logs, support and uptime SLAs) are priced on contract (https://www.merge.dev/pricing).",
      "priceSummary": "$650 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": 201025,
        "pypiWeekly": 234550,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.merge.dev/merge-unified/accounting/overview",
      "llmsTxt": "https://docs.merge.dev/llms.txt",
      "openapi": "https://docs.merge.dev/openapi/accounting.json",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "eu",
        "enterprise",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.2,
        "grade": "BB",
        "agentReady": true,
        "rank": 100,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.",
        "strengths": [
          "12 accounting platforms behind one set of common models, with writes",
          "Three production linked accounts free with no card",
          "llms.txt, Markdown twins of every docs page and a JSON OpenAPI spec",
          "Rate limits per linked account, so one busy customer doesn't starve the rest",
          "SOC 2 Type 2, ISO 27001:2022 and an EU host at api-eu.merge.dev"
        ],
        "weaknesses": [
          "Launch jumps from free to $650 a month at the fourth linked account",
          "No documented 429 handling, idempotency keys or safe-retry guidance for writes",
          "Merge's own MCP server for the Unified API has been idle since 0.1.4 in April 2025",
          "No deprecation policy, and the Python SDK shipped two major versions between May and July 2026",
          "Only 3 days of request logs on Launch"
        ],
        "agentNotes": [
          "Call GET /invoices/meta/post for the linked account first. Required fields differ by platform",
          "Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE",
          "Append .md to any docs URL for the Markdown twin",
          "Check sync_status before reading a freshly linked account. Common models fill in over the first sync",
          "Look the record up before retrying a POST that timed out. There's no idempotency key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.2
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 54
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl \"https://api.merge.dev/api/accounting/v1/invoices?type=ACCOUNTS_RECEIVABLE\u0026page_size=10\" \\\n  -H \"Authorization: Bearer $MERGE_API_KEY\" -H \"X-Account-Token: $MERGE_ACCOUNT_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/merge-accounting"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Launch plan",
          "unit": "month",
          "usd": 650,
          "note": "Up to 10 production linked accounts, first 3 free"
        },
        {
          "item": "Additional linked account on Launch",
          "unit": "account-month",
          "usd": 65
        }
      ],
      "provenance": {
        "legalEntity": "Merge API, Inc.",
        "domain": "merge.dev",
        "domainRegistered": "2020-02-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.merge.dev/legal/terms",
        "privacy": "https://www.merge.dev/legal/privacy-policy",
        "statusPage": "https://status.merge.dev",
        "changelog": "https://www.merge.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms name Merge API Inc. with California law and arbitration in San Francisco, but give no registered address. The privacy policy was last revised 20 August 2026.",
          "The status page runs on Sorry rather than Statuspage and lists the Unified API, Merge Link, data syncing and Agent Handler as components.",
          "A trust portal at trust.merge.dev holds the security documentation."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/merge-accounting.json",
      "live": {
        "slug": "merge-accounting",
        "probe": {
          "target": "https://api.merge.dev/api/accounting/v1",
          "method": "get",
          "lastAt": "2026-10-05T00:25:45.940031577Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 767,
          "authRequired": false,
          "uptime24h": 99.63,
          "uptime30d": 99.89,
          "p50ms24h": 574,
          "p95ms24h": 2110,
          "samples24h": 272,
          "samples30d": 905,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-05",
              "probes": 5,
              "ok": 5
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.merge.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:14.824420782Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "merge-api/merge-python-client",
            "version": "v4.2.0",
            "released": "2026-09-16",
            "seenAt": "2026-10-04T16:32:53.27441844Z"
          },
          {
            "registry": "npm",
            "name": "@mergeapi/merge-node-client",
            "version": "4.0.4",
            "seenAt": "2026-10-04T16:32:52.40119992Z"
          },
          {
            "registry": "pypi",
            "name": "MergePythonClient",
            "version": "4.2.0",
            "released": "2026-09-16",
            "seenAt": "2026-10-04T16:32:52.1990559Z"
          }
        ],
        "githubStars": 14,
        "npmWeekly": 212208,
        "pypiWeekly": 197064,
        "securityTxt": {
          "url": "https://merge.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:41.019057373Z"
        },
        "llmsTxt": {
          "url": "https://docs.merge.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:58.879439987Z"
        },
        "domain": {
          "domain": "merge.dev",
          "registered": "2020-02-09",
          "source": "https://pubapi.registry.google/rdap/domain/merge.dev",
          "checkedAt": "2026-10-04T13:08:11.061782068Z"
        },
        "pages": [
          {
            "url": "https://www.merge.dev/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:18.274010452Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "33f2429b9bed"
          },
          {
            "url": "https://www.merge.dev/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:24.300795079Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7d9e39ad53d3"
          },
          {
            "url": "https://www.merge.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:20.304715164Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "94b13e9b9b9d"
          },
          {
            "url": "https://www.merge.dev/legal/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:51:22.299855755Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d729c69b95ee"
          }
        ],
        "updatedAt": "2026-10-05T00:25:45.940031577Z"
      }
    },
    "summary": "Merge Accounting API has a score of 70.2 (BB) against FreshBooks API's 45.6 (E). Both do accounting ledger. The largest gap is maintenance \u0026 community, 69 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting",
    "json": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.md",
    "slim": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.min.md"
  },
  "markdown": "Merge Accounting API has a score of 70.2 (BB) against FreshBooks API's 45.6 (E). Both do accounting ledger. The largest gap is maintenance \u0026 community, 69 points.\n\n- FreshBooks API: grade E, 45.6/100, rank #397 of 452. Markdown https://www.anchorterminal.com/tools/freshbooks.md · JSON https://www.anchorterminal.com/api/v1/tools/freshbooks.json\n- Merge Accounting API: grade BB, 70.2/100, rank #100 of 452. Markdown https://www.anchorterminal.com/tools/merge-accounting.md · JSON https://www.anchorterminal.com/api/v1/tools/merge-accounting.json\n\n## Which one, for what\n\nPick FreshBooks API for nothing in particular (no category where it leads by five points or more).\n\nPick Merge Accounting API for reliability (+40), schema \u0026 documentation (+38), agent ergonomics (+11), security \u0026 auth (+10), payments \u0026 pricing (+5), maintenance \u0026 community (+69).\n\n## Score by category\n\n| Category | Weight | FreshBooks API | Merge Accounting API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 75 | Merge Accounting API +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 48 | 86 | Merge Accounting API +38 |\n| Agent ergonomics | 13% (16.2 this run) | 61 | 72 | Merge Accounting API +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 67 | Merge Accounting API +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Merge Accounting API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 14 | 83 | Merge Accounting API +69 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 70 | Merge Accounting API +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **45.6 · E** | **70.2 · BB** | |\n\n## Facts side by side\n\n| Fact | FreshBooks API | Merge Accounting API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | FreshBooks | Merge |\n| Hosted endpoint | `https://api.freshbooks.com` | `https://api.merge.dev/api/accounting/v1` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | 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 | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2024-09-11 | 2026-09-16 |\n| Popularity | 11 stars, 685 npm/wk, 415 PyPI/wk | 15 stars, 201k npm/wk, 235k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**FreshBooks API.** OAuth scopes split read and write per resource, such as user:invoices:read. Rate limits have no numbers, status code or headers.\n\n**Merge Accounting API.** 12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.\n\n## Before you call either\n\n### FreshBooks API\n\n1. Call /auth/api/v1/users/me first and keep both ids. Accounting endpoints take account_id, projects and time tracking take business_id\n2. Serialise token refreshes. Issuing a new refresh token kills the old one at once\n3. Mark an invoice as sent (action_mark_as_sent) or email it. Reports ignore drafts\n4. Send x-api-version: 2023-09-25 on journal entry calls\n5. Back off on any throttling response yourself. There's no Retry-After to read and no published limit\n\n### Merge Accounting API\n\n1. Call GET /invoices/meta/post for the linked account first. Required fields differ by platform\n2. Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE\n3. Append .md to any docs URL for the Markdown twin\n4. Check sync_status before reading a freshly linked account. Common models fill in over the first sync\n5. Look the record up before retrying a POST that timed out. There's no idempotency key\n\n## Other comparisons with FreshBooks API or Merge Accounting API\n\n- [Apideck Accounting API + MCP vs FreshBooks API](https://www.anchorterminal.com/compare/apideck-accounting-vs-freshbooks.md)\n- [FreeAgent API vs FreshBooks API](https://www.anchorterminal.com/compare/freeagent-vs-freshbooks.md)\n- [FreeAgent API vs Merge Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.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- [FreshBooks API vs Xero API + MCP](https://www.anchorterminal.com/compare/freshbooks-vs-xero.md)\n- [Merge Accounting API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.md)\n- [Merge Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-xero.md)\n- [FreshBooks API vs Invoice Ninja API](https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja.md)\n- [Invoice Ninja API vs Merge Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.md)\n- [Apideck Accounting API + MCP vs Merge Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-merge-accounting.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": "FreshBooks API vs Merge Accounting API",
        "url": ""
      }
    ],
    "description": "Merge Accounting API has a score of 70.2 (BB) against FreshBooks API's 45.6 (E). Both do accounting ledger. The largest gap is maintenance \u0026 community, 69 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "FreshBooks API E 45.6",
      "Merge Accounting API BB 70.2",
      "scores"
    ],
    "h1": "FreshBooks API vs Merge Accounting API",
    "image": "https://www.anchorterminal.com/assets/og/compare-freshbooks-vs-merge-accounting.png",
    "path": "/compare/freshbooks-vs-merge-accounting",
    "published": "2026-10-01",
    "section": "tools",
    "title": "FreshBooks API vs Merge Accounting API for AI agents | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
