{
  "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-04T23:48:08.669310693Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 135,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 136,
          "p95ms24h": 186,
          "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.freshbooks.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:14.82018333Z"
        },
        "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-04T23:49:14.82018333Z"
      }
    },
    "b": {
      "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"
      }
    },
    "summary": "Invoice Ninja API has a score of 52.4 (D) against FreshBooks API's 45.6 (E). Both do accounting invoices. 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-invoice-ninja",
    "json": "https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja.md",
    "slim": "https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja.min.md"
  },
  "markdown": "Invoice Ninja API has a score of 52.4 (D) against FreshBooks API's 45.6 (E). Both do accounting invoices. 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- 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\n## Which one, for what\n\nPick FreshBooks API for security \u0026 auth (+9).\n\nPick Invoice Ninja API for schema \u0026 documentation (+18), payments \u0026 pricing (+5), maintenance \u0026 community (+69).\n\n## Score by category\n\n| Category | Weight | FreshBooks API | Invoice Ninja API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 36 | Invoice Ninja API +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 48 | 66 | Invoice Ninja API +18 |\n| Agent ergonomics | 13% (16.2 this run) | 61 | 60 | FreshBooks API +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 48 | FreshBooks API +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Invoice Ninja 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 | Invoice Ninja API +69 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 65 | FreshBooks API +3 |\n| Negative events | ≤15 | 0 | -1 | |\n| **Total** | | **45.6 · E** | **52.4 · D** | |\n\n## Facts side by side\n\n| Fact | FreshBooks API | Invoice Ninja API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | FreshBooks | Invoice Ninja |\n| Hosted endpoint | `https://api.freshbooks.com` | `https://invoicing.co/api/v1` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | MIT | Elastic License 2.0 |\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 | no |\n| MCP registry | not listed | not listed |\n| Last release | 2024-09-11 | 2026-09-18 |\n| Popularity | 11 stars, 685 npm/wk, 415 PyPI/wk | 10k stars |\n| Agent reviews | 3/5 (2) | 2.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**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## 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### 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## Other comparisons with FreshBooks API or Invoice Ninja 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- [FreshBooks API vs Merge Accounting API](https://www.anchorterminal.com/compare/freshbooks-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- [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- [Invoice Ninja API vs Merge Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.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",
  "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": "FreshBooks API vs Invoice Ninja API",
        "url": ""
      }
    ],
    "description": "Invoice Ninja API has a score of 52.4 (D) against FreshBooks API's 45.6 (E). Both do accounting invoices. 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",
      "Invoice Ninja API D 52.4",
      "scores"
    ],
    "h1": "FreshBooks API vs Invoice Ninja API",
    "image": "https://www.anchorterminal.com/assets/og/compare-freshbooks-vs-invoice-ninja.png",
    "path": "/compare/freshbooks-vs-invoice-ninja",
    "published": "2026-10-01",
    "section": "tools",
    "title": "FreshBooks API vs Invoice Ninja API for AI agents, E 45.6 vs D 52.4",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/freshbooks-vs-invoice-ninja"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
