{
  "data": {
    "a": {
      "slug": "invoice-ninja",
      "name": "Invoice Ninja API",
      "vendor": "Invoice Ninja",
      "vendorUrl": "https://www.invoiceninja.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Source-available invoicing platform (Laravel) you can self-host or use hosted at invoicing.co.",
      "url": "https://www.anchorterminal.com/tools/invoice-ninja",
      "markdownUrl": "https://www.anchorterminal.com/tools/invoice-ninja.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/invoice-ninja.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/invoice-ninja.json",
      "repo": "https://github.com/invoiceninja/invoiceninja",
      "license": "Elastic License 2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://invoicing.co/api/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "An API token from Settings, Account Management, Integrations, sent as `X-API-TOKEN`, plus `X-Requested-With: XMLHttpRequest` on every call. Self-hosted installs can also log in with email and password to get a token, and need `X-API-SECRET` on the login route when API_SECRET is set in .env. The demo at demo.invoiceninja.com accepts the token `TOKEN`.",
      "pricing": "freemium",
      "pricingNotes": "Hosted plans are Free (up to 5 clients, 1 user, unlimited invoices), Ninja Pro at $14 a month or $140 a year with unlimited clients and REST API access, Enterprise from $18 a month for 1 to 2 users up to $300 a month for 51 to 100 users, adding bank sync and PEPPOL e-invoicing, and Premium Business from $280 a year with developer support. Self-hosting is free under the Elastic License 2.0 with every Pro and Enterprise feature, and a white-label licence to remove the branding is $40 a year (https://invoiceninja.com/pricing-plans/).",
      "priceSummary": "$14 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 10000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://api-docs.invoicing.co/",
      "openapi": "https://github.com/invoiceninja/invoiceninja/blob/v5-stable/openapi/api-docs.yaml",
      "capabilities": [
        "accounting.invoices",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "source-available",
        "freemium",
        "free-tier",
        "openapi",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-09-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.4,
        "grade": "D",
        "agentReady": false,
        "rank": 342,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 83,
          "payments": 35,
          "reliability": 36,
          "schema": 66,
          "security": 48,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -1,
        "negativeNotes": [
          "-1: two moderate stored XSS advisories published 22 and 23 March 2026, GHSA-98wm-cxpw-847p (invoice line items, CVSS 5.4, fixed in 5.13.4) and GHSA-xph7-9749-56mh (product notes). Fixed and disclosed in public, so the deduction is small (https://github.com/invoiceninja/invoiceninja/security/advisories)"
        ],
        "verdict": "OpenAPI 3 spec with 379 operations and curl and PHP examples on each path. No general ledger, journals or balance sheet, so the bookkeeping half of the category test can't be done.",
        "strengths": [
          "OpenAPI 3 spec with 379 operations and curl and PHP examples on each path",
          "Public demo endpoint with the token TOKEN, no account needed",
          "Self-hosting is free with every Pro and Enterprise feature",
          "16 tagged releases since 3 July, with PHPUnit CI across PHP 8.2 to 8.5",
          "Security advisories published on GitHub with fixed versions"
        ],
        "weaknesses": [
          "No general ledger, journals or balance sheet, so the bookkeeping half of the category test can't be done",
          "Rate limits aren't in the docs, only in the source",
          "Status page shows seven days and has no history page",
          "No scoped or read-only API tokens",
          "Hosted Free plan excludes the REST API"
        ],
        "agentNotes": [
          "Send X-Requested-With: XMLHttpRequest with X-API-TOKEN on every call",
          "Prototype against demo.invoiceninja.com with X-API-TOKEN: TOKEN before asking for real credentials",
          "Add ?mark_sent=true to the save to make an invoice live, or ?send_email=true to send it. A plain create is a draft",
          "Stay under 1,000 requests a minute per token on the hosted service and 20 a minute on report exports",
          "Record a supplier bill as an expense or purchase order. There's no bills resource"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.4
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 83,
          "payments": 35,
          "reliability": 36,
          "schema": 66,
          "security": 48,
          "transparency": 54
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl \"https://invoicing.co/api/v1/invoices?per_page=10\" \\\n  -H \"X-API-TOKEN: $INVOICE_NINJA_TOKEN\" -H \"X-Requested-With: XMLHttpRequest\" -H \"Content-Type: application/json\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.invoices",
        "tool": "https://letme.dev/invoice-ninja"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Ninja Pro",
          "unit": "month",
          "usd": 14,
          "note": "$140 a year, includes REST API access"
        },
        {
          "item": "Enterprise (1 to 2 users)",
          "unit": "month",
          "usd": 18
        }
      ],
      "provenance": {
        "legalEntity": "Invoice Ninja LLC",
        "domain": "invoiceninja.com",
        "domainRegistered": "2013-09-29",
        "endpointOnVendorDomain": false,
        "terms": "https://invoiceninja.github.io/docs/legal/terms-of-service",
        "privacy": "https://invoiceninja.github.io/docs/legal/data-privacy",
        "statusPage": "https://status.invoiceninja.com",
        "changelog": "https://github.com/invoiceninja/invoiceninja/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The hosted API lives on invoicing.co while the brand and terms are on invoiceninja.com. Both are named in the terms of service as Invoice Ninja LLC domains.",
          "The terms of service give no registered address or jurisdiction for Invoice Ninja LLC.",
          "Terms and privacy pages are published from the docs repository on GitHub Pages and their paths changed in 2026, so older links return 404.",
          "The status page runs on Oh Dear and monitors invoiceninja.com and invoicing.co."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/invoice-ninja.json",
      "live": {
        "slug": "invoice-ninja",
        "probe": {
          "target": "https://invoicing.co/api/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:10.08731724Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 323,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 308,
          "p95ms24h": 361,
          "samples24h": 272,
          "samples30d": 898,
          "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": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.invoiceninja.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:10.121347917Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "invoiceninja/invoiceninja",
            "version": "v5.13.43",
            "released": "2026-09-18",
            "seenAt": "2026-10-04T16:30:25.367276052Z"
          }
        ],
        "githubStars": 10214,
        "securityTxt": {
          "url": "https://invoiceninja.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:36.997657319Z"
        },
        "domain": {
          "domain": "invoiceninja.com",
          "registered": "2013-09-29",
          "source": "https://rdap.verisign.com/com/v1/domain/invoiceninja.com",
          "checkedAt": "2026-10-04T13:07:52.957286244Z"
        },
        "pages": [
          {
            "url": "https://invoiceninja.com/pricing-plans/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:07.411119564Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c58a0d69907d"
          },
          {
            "url": "https://invoiceninja.github.io/docs/legal/data-privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:10.121396691Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "84bc25c802b0"
          },
          {
            "url": "https://invoiceninja.github.io/docs/legal/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:12.220569343Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6f674e061225"
          }
        ],
        "updatedAt": "2026-10-04T23:48:10.08731724Z"
      }
    },
    "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-04T23:48:11.665834887Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 538,
          "authRequired": false,
          "uptime24h": 99.63,
          "uptime30d": 99.89,
          "p50ms24h": 575,
          "p95ms24h": 2092,
          "samples24h": 272,
          "samples30d": 898,
          "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": 270,
              "ok": 269
            }
          ]
        },
        "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-04T23:48:11.665834887Z"
      }
    },
    "summary": "Merge Accounting API has a score of 70.2 (BB) against Invoice Ninja API's 52.4 (D). Both do accounting invoices. The largest gap is reliability, 39 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting",
    "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.md",
    "slim": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.min.md"
  },
  "markdown": "Merge Accounting API has a score of 70.2 (BB) against Invoice Ninja API's 52.4 (D). Both do accounting invoices. The largest gap is reliability, 39 points.\n\n- Invoice Ninja API: grade D, 52.4/100, rank #342 of 452. Markdown https://www.anchorterminal.com/tools/invoice-ninja.md · JSON https://www.anchorterminal.com/api/v1/tools/invoice-ninja.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 Invoice Ninja API for nothing in particular (no category where it leads by five points or more).\n\nPick Merge Accounting API for reliability (+39), schema \u0026 documentation (+20), agent ergonomics (+12), security \u0026 auth (+19), transparency \u0026 trust (+5).\n\n## Score by category\n\n| Category | Weight | Invoice Ninja API | Merge Accounting API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 36 | 75 | Merge Accounting API +39 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 86 | Merge Accounting API +20 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 72 | Merge Accounting API +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 48 | 67 | Merge Accounting API +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 83 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 70 | Merge Accounting API +5 |\n| Negative events | ≤15 | -1 | 0 | |\n| **Total** | | **52.4 · D** | **70.2 · BB** | |\n\n## Facts side by side\n\n| Fact | Invoice Ninja API | Merge Accounting API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Invoice Ninja | Merge |\n| Hosted endpoint | `https://invoicing.co/api/v1` | `https://api.merge.dev/api/accounting/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Elastic License 2.0 | 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 | 2026-09-18 | 2026-09-16 |\n| Popularity | 10k stars | 15 stars, 201k npm/wk, 235k PyPI/wk |\n| Agent reviews | 2.5/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**Invoice Ninja API.** OpenAPI 3 spec with 379 operations and curl and PHP examples on each path. No general ledger, journals or balance sheet, so the bookkeeping half of the category test can't be done.\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### Invoice Ninja API\n\n1. Send X-Requested-With: XMLHttpRequest with X-API-TOKEN on every call\n2. Prototype against demo.invoiceninja.com with X-API-TOKEN: TOKEN before asking for real credentials\n3. Add ?mark_sent=true to the save to make an invoice live, or ?send_email=true to send it. A plain create is a draft\n4. Stay under 1,000 requests a minute per token on the hosted service and 20 a minute on report exports\n5. Record a supplier bill as an expense or purchase order. There's no bills resource\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 Invoice Ninja API or Merge Accounting API\n\n- [FreeAgent API vs Merge Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.md)\n- [FreshBooks API vs Merge Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.md)\n- [Merge Accounting API vs 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- [Apideck Accounting API + MCP vs Invoice Ninja API](https://www.anchorterminal.com/compare/apideck-accounting-vs-invoice-ninja.md)\n- [FreeAgent API vs Invoice Ninja API](https://www.anchorterminal.com/compare/freeagent-vs-invoice-ninja.md)\n- [FreshBooks API vs Invoice Ninja API](https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja.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- [Invoice Ninja API vs Xero API + MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-xero.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-04",
    "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": "Invoice Ninja API vs Merge Accounting API",
        "url": ""
      }
    ],
    "description": "Merge Accounting API has a score of 70.2 (BB) against Invoice Ninja API's 52.4 (D). Both do accounting invoices. The largest gap is reliability, 39 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Invoice Ninja API D 52.4",
      "Merge Accounting API BB 70.2",
      "scores"
    ],
    "h1": "Invoice Ninja API vs Merge Accounting API",
    "image": "https://www.anchorterminal.com/assets/og/compare-invoice-ninja-vs-merge-accounting.png",
    "path": "/compare/invoice-ninja-vs-merge-accounting",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Invoice Ninja API vs Merge Accounting API for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 380
  },
  "version": 1
}
