{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "taxjar",
    "name": "TaxJar",
    "vendor": "TaxJar (Stripe)",
    "vendorUrl": "https://www.taxjar.com",
    "kind": "http-api",
    "category": "tax",
    "summary": "TaxJar is Stripe's US sales tax service for businesses that sell across states. Its REST API calculates tax for an order, looks up rates by address, records orders and refunds for reporting, and stores exempt customers.",
    "url": "https://www.anchorterminal.com/tools/taxjar",
    "markdownUrl": "https://www.anchorterminal.com/tools/taxjar.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/taxjar.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/taxjar.json",
    "repo": "https://github.com/taxjar/taxjar-node",
    "license": "Proprietary service under TaxJar's terms of service and API licence agreement. The official API clients on GitHub are MIT",
    "transports": [
      "http"
    ],
    "remoteUrl": "https://api.taxjar.com/v2",
    "packages": [
      {
        "registry": "npm",
        "name": "taxjar"
      },
      {
        "registry": "pypi",
        "name": "taxjar"
      }
    ],
    "auth": "api-key",
    "authNotes": "A self-serve API token, generated by a signed-in user at Account \u003e TaxJar API in the web app and sent as `Authorization: Bearer \u003ctoken\u003e`. The token has no scopes and covers every endpoint for that account, deletes included. API access needs the Professional plan or the 30-day trial. The sandbox takes its own token. No OAuth, app review or partner approval applies.",
    "pricing": "paid",
    "pricingNotes": "The API needs the Professional plan, from $99 a month at 200 orders, with higher order tiers on a selector. Each calculation or rate lookup counts as a tenth of an order, errors included. A 30-day trial with API access needs no card, so an agent's owner can start without a contract. The sandbox comes with Professional plans (checked 2026-10-08).",
    "priceSummary": "$99 / mo",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the API reference, the API guides or the pricing page (checked 2026-10-08).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 57,
      "npmWeekly": 95036,
      "pypiWeekly": 49713,
      "asOf": "2026-10-08"
    },
    "docsUrl": "https://developers.taxjar.com/api/reference/",
    "capabilities": [
      "tax.calculate",
      "tax.transactions",
      "tax.exemptions",
      "shipping.address-validation"
    ],
    "tags": [
      "hosted",
      "closed-source",
      "api-key",
      "sandbox",
      "no-card",
      "python",
      "typescript",
      "ruby",
      "php",
      "java",
      "go",
      "dotnet",
      "status-page",
      "soc2"
    ],
    "lastRelease": "2026-09-02",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 57.6,
      "grade": "C",
      "agentReady": false,
      "rank": 417,
      "ranked": true,
      "rankOf": 629,
      "categoryRank": 4,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 61,
        "maintenance": 64,
        "payments": 30,
        "reliability": 84,
        "schema": 48,
        "security": 43,
        "transparency": 71
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 84,
          "points": 16.8,
          "reason": "Read with the hosted lines and scored on the public REST API at api.taxjar.com, the surface an agent would call. TaxJar has no MCP server. status.taxjar.com on Statuspage lists seven components with incident history (20). No incident in the 90 days to 8 October 2026. The last two were an integration fault on 26 March 2026 and a degraded API on 28 February 2026, when calls with a `customer_id` returned 5xx for about 4 hours 50 minutes (30). Rate limits with numbers, 10,000 requests a minute on Professional and 25,000 on Premium (15). The docs list 429 and advise caching, calculating only in nexus states and falling back to summarised rates. No Retry-After header or backoff guidance was found. Writes are keyed on a caller-chosen `transaction_id`, a duplicate create returns 422 and the docs direct a PUT (9 of 15). No uptime SLA was found. The published SLA covers support response times only, and the terms supply the API as is (0). The API is at v2 and generally available (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 48,
          "points": 7.8,
          "reason": "No OpenAPI spec was found. The taxjar/openapi repository on GitHub holds only a README, last changed in May 2020. The Node client ships TypeScript parameter and return types, which we counted as a partial contract (4 of 25). No llms.txt on developers.taxjar.com or www.taxjar.com, both 404 (0). The reference is one page covering 21 operations, with notes on sourcing, nexus and exemptions, and guides on product tax codes, marketplaces and avoiding unnecessary calls. Few entries say when not to use an endpoint (12 of 20). Parameter tables give a type and required, conditional or optional for each field, with allowed values for `exemption_type` in prose. Constraints such as amount arithmetic are enforced only on newer API versions (9 of 15). Request and response examples for every operation in cURL and seven client languages, an error code table, causes and fixes for 400, 401, 403, 406 and 422, and a sandbox header that mocks errors (13 of 15). Versions are dated and set by the `x-api-version` header, with a public changelog whose newest entry is 24 January 2022 (10 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 61,
          "points": 9.91,
          "reason": "Responses are small JSON objects and list calls return IDs only, but there is no field selection and `summary_rates` returns every region at once (12 of 25). Order and refund lists filter by `transaction_date`, a date range and `provider`. No pagination or page size is documented, and the customer list takes no parameters (8 of 20). Errors are JSON with `error`, `detail` and `status`, which we confirmed on a 401, and five codes have documented causes and fixes (15 of 20). Calculations have no side effects beyond metering. Orders, refunds and customers use caller-chosen IDs, so a repeated create returns 422 and can be turned into a PUT. No idempotency header exists (13 of 20). A calculation needs `to_country`, `to_zip`, `to_state` and `shipping`, with nexus read from the account, and official clients cover seven languages, though the Ruby gem dates from August 2022 and the Java and Go repositories were last pushed in 2023 (13 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 43,
          "points": 7.53,
          "reason": "One API token per use, generated in the web app and sent in the `Authorization` header, never in the URL. It has no scopes and covers every endpoint. The docs mention generating a new token, but we found no statement on how many tokens an account can hold or how one is revoked, so we scored between a single all-powerful key and plain revocable keys (15 of 30). No read-only token and no confirmation step on deleting transactions or customers. The sandbox takes a separate token, and user roles exist for web app logins on Professional (4 of 20). Responses carry tax figures, jurisdiction names and the account's own stored customer and order data, with little third-party text (9 of 15). Plans \u0026 Billing shows transaction counts, and no per-request API log was found in the reviewed documentation (3 of 15). SOC 2 Type 2 per the security page, with yearly re-audits announced in March 2021, annual penetration testing and AES-256 at rest. No security.txt on TaxJar hosts and no disclosure policy or bounty page for TaxJar was found (12 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 30,
          "points": 3.75,
          "reason": "Read with the hosted rubric. No x402, MPP or L402 (0). Plan prices are public, Professional from $99 a month at 200 orders, with a stated conversion of ten calculations to one order. Higher tiers sit on a selector, and the Premium plan named in the rate-limit docs has no public price. That is plan pricing (10 of 20). A 30-day trial with Professional plan access and the API needs no card (20). A person has to sign up in a browser and generate the token in the web app (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 64,
          "points": 5.6,
          "reason": "A closed service, so we read releases from the official clients. The Node client 5.0.0 reached npm on 2 September 2026, 36 days before the check (20 of 30). In the 90 days to 8 October 2026 there were also .NET 5.0.0 on NuGet on 4 August, the Magento extension 4.0.2 on 3 August and WooCommerce plugin tags on 2 September, 9 September and 5 October. None is an API change, and the API changelog has no entry since 24 January 2022 (20). Support is by email with a published response time of one business day on Professional, though the API licence agreement promises no API support. GitHub issues are open on the client repositories, 8 on Node and 19 on .NET, and we didn't measure reply times (8 of 15). Seven official clients, four released since April 2025. The Ruby gem dates from August 2022, and the Java and Go repositories were last pushed in 2023 (11 of 15). The Node repository runs CodeQL only, with no test workflow in public CI, and its 5.0.0 release dropped a deprecated dependency (5 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 71,
          "points": 6.21,
          "note": "editorial 55, provenance 87",
          "reason": "The service is closed under terms of service and an API licence agreement last updated 14 May 2026. The clients are MIT (15 of 30). The privacy policy dates from 7 January 2022 and gives no fixed retention period. The data processing agreement of 14 May 2026 promises deletion or return of personal data after termination at the customer's choice, and notice of a data incident without undue delay. The documents agree but name no periods (18 of 30). No deprecation policy was found. Three dated API versions remain accepted, and the terms promise 30 days' notice of changes to terms and prices. International calculation was closed to new customers with no dated notice in the reviewed pages (5 of 20). The sub-processor list, updated 26 June 2026, names seven processors with purpose and country, and the privacy policy says the service is hosted in the United States (17 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Responses are small JSON objects and list calls return IDs only, but there is no field selection and `summary_rates` returns every region at once (12 of 25). Order and refund lists filter by `transaction_date`, a date range and `provider`. No pagination or page size is documented, and the customer list takes no parameters (8 of 20). Errors are JSON with `error`, `detail` and `status`, which we confirmed on a 401, and five codes have documented causes and fixes (15 of 20). Calculations have no side effects beyond metering. Orders, refunds and customers use caller-chosen IDs, so a repeated create returns 422 and can be turned into a PUT. No idempotency header exists (13 of 20). A calculation needs `to_country`, `to_zip`, `to_state` and `shipping`, with nexus read from the account, and official clients cover seven languages, though the Ruby gem dates from August 2022 and the Java and Go repositories were last pushed in 2023 (13 of 15).",
          "maintenance": "A closed service, so we read releases from the official clients. The Node client 5.0.0 reached npm on 2 September 2026, 36 days before the check (20 of 30). In the 90 days to 8 October 2026 there were also .NET 5.0.0 on NuGet on 4 August, the Magento extension 4.0.2 on 3 August and WooCommerce plugin tags on 2 September, 9 September and 5 October. None is an API change, and the API changelog has no entry since 24 January 2022 (20). Support is by email with a published response time of one business day on Professional, though the API licence agreement promises no API support. GitHub issues are open on the client repositories, 8 on Node and 19 on .NET, and we didn't measure reply times (8 of 15). Seven official clients, four released since April 2025. The Ruby gem dates from August 2022, and the Java and Go repositories were last pushed in 2023 (11 of 15). The Node repository runs CodeQL only, with no test workflow in public CI, and its 5.0.0 release dropped a deprecated dependency (5 of 10).",
          "payments": "Read with the hosted rubric. No x402, MPP or L402 (0). Plan prices are public, Professional from $99 a month at 200 orders, with a stated conversion of ten calculations to one order. Higher tiers sit on a selector, and the Premium plan named in the rate-limit docs has no public price. That is plan pricing (10 of 20). A 30-day trial with Professional plan access and the API needs no card (20). A person has to sign up in a browser and generate the token in the web app (0).",
          "reliability": "Read with the hosted lines and scored on the public REST API at api.taxjar.com, the surface an agent would call. TaxJar has no MCP server. status.taxjar.com on Statuspage lists seven components with incident history (20). No incident in the 90 days to 8 October 2026. The last two were an integration fault on 26 March 2026 and a degraded API on 28 February 2026, when calls with a `customer_id` returned 5xx for about 4 hours 50 minutes (30). Rate limits with numbers, 10,000 requests a minute on Professional and 25,000 on Premium (15). The docs list 429 and advise caching, calculating only in nexus states and falling back to summarised rates. No Retry-After header or backoff guidance was found. Writes are keyed on a caller-chosen `transaction_id`, a duplicate create returns 422 and the docs direct a PUT (9 of 15). No uptime SLA was found. The published SLA covers support response times only, and the terms supply the API as is (0). The API is at v2 and generally available (10).",
          "schema": "No OpenAPI spec was found. The taxjar/openapi repository on GitHub holds only a README, last changed in May 2020. The Node client ships TypeScript parameter and return types, which we counted as a partial contract (4 of 25). No llms.txt on developers.taxjar.com or www.taxjar.com, both 404 (0). The reference is one page covering 21 operations, with notes on sourcing, nexus and exemptions, and guides on product tax codes, marketplaces and avoiding unnecessary calls. Few entries say when not to use an endpoint (12 of 20). Parameter tables give a type and required, conditional or optional for each field, with allowed values for `exemption_type` in prose. Constraints such as amount arithmetic are enforced only on newer API versions (9 of 15). Request and response examples for every operation in cURL and seven client languages, an error code table, causes and fixes for 400, 401, 403, 406 and 422, and a sandbox header that mocks errors (13 of 15). Versions are dated and set by the `x-api-version` header, with a public changelog whose newest entry is 24 January 2022 (10 of 15).",
          "security": "One API token per use, generated in the web app and sent in the `Authorization` header, never in the URL. It has no scopes and covers every endpoint. The docs mention generating a new token, but we found no statement on how many tokens an account can hold or how one is revoked, so we scored between a single all-powerful key and plain revocable keys (15 of 30). No read-only token and no confirmation step on deleting transactions or customers. The sandbox takes a separate token, and user roles exist for web app logins on Professional (4 of 20). Responses carry tax figures, jurisdiction names and the account's own stored customer and order data, with little third-party text (9 of 15). Plans \u0026 Billing shows transaction counts, and no per-request API log was found in the reviewed documentation (3 of 15). SOC 2 Type 2 per the security page, with yearly re-audits announced in March 2021, annual penetration testing and AES-256 at rest. No security.txt on TaxJar hosts and no disclosure policy or bounty page for TaxJar was found (12 of 20).",
          "transparency": "The service is closed under terms of service and an API licence agreement last updated 14 May 2026. The clients are MIT (15 of 30). The privacy policy dates from 7 January 2022 and gives no fixed retention period. The data processing agreement of 14 May 2026 promises deletion or return of personal data after termination at the customer's choice, and notice of a data incident without undue delay. The documents agree but name no periods (18 of 30). No deprecation policy was found. Three dated API versions remain accepted, and the terms promise 30 days' notice of changes to terms and prices. International calculation was closed to new customers with no dated notice in the reviewed pages (5 of 20). The sub-processor list, updated 26 June 2026, names seven processors with purpose and country, and the privacy policy says the service is hosted in the United States (17 of 20)."
        },
        "sources": [
          {
            "what": "home page",
            "url": "https://www.taxjar.com/",
            "seen": "2026-10-08"
          },
          {
            "what": "pricing and plan comparison",
            "url": "https://www.taxjar.com/pricing",
            "seen": "2026-10-08"
          },
          {
            "what": "API reference, authentication, versions, billing, countries, sandbox, rate limits, errors and changelog",
            "url": "https://developers.taxjar.com/api/reference/",
            "seen": "2026-10-08"
          },
          {
            "what": "API guides",
            "url": "https://developers.taxjar.com/api/guides/",
            "seen": "2026-10-08"
          },
          {
            "what": "developer blog (newest post 22 December 2017)",
            "url": "https://developers.taxjar.com/blog/",
            "seen": "2026-10-08"
          },
          {
            "what": "llms.txt on the developer site (404)",
            "url": "https://developers.taxjar.com/llms.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "API product page, vendor uptime and latency claims",
            "url": "https://www.taxjar.com/product/api",
            "seen": "2026-10-08"
          },
          {
            "what": "trial signup page",
            "url": "https://app.taxjar.com/api_sign_up/",
            "seen": "2026-10-08"
          },
          {
            "what": "unauthenticated request to the API (401 body)",
            "url": "https://api.taxjar.com/v2/categories",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, plan costs",
            "url": "https://support.taxjar.com/article/139-how-much-does-taxjar-cost",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, order tiers and API metering",
            "url": "https://support.taxjar.com/article/1081-choosing-the-right-order-tier-for-your-business",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, flex fees",
            "url": "https://support.taxjar.com/article/112-what-are-flex-fees",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, API errors and the order limit",
            "url": "https://support.taxjar.com/article/956-do-api-errors-count-toward-the-transaction-limit",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, API plan requirement",
            "url": "https://support.taxjar.com/article/155-how-much-does-taxjar-api-cost",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, getting an API token",
            "url": "https://support.taxjar.com/article/160-how-do-i-get-a-sales-tax-api-token",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, countries supported",
            "url": "https://support.taxjar.com/article/157-what-countries-does-api-support",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, sandbox endpoints",
            "url": "https://support.taxjar.com/article/677-which-sandbox-endpoints-are-currently-supported",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, support SLA",
            "url": "https://support.taxjar.com/article/1092-taxjars-customer-support-service-level-agreement-sla",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, accuracy and filing guarantee",
            "url": "https://support.taxjar.com/article/1069-taxjar-guarantee",
            "seen": "2026-10-08"
          },
          {
            "what": "help centre, users and roles",
            "url": "https://support.taxjar.com/article/623-users-roles",
            "seen": "2026-10-08"
          },
          {
            "what": "status page summary",
            "url": "https://status.taxjar.com/api/v2/summary.json",
            "seen": "2026-10-08"
          },
          {
            "what": "status incident history",
            "url": "https://status.taxjar.com/api/v2/incidents.json",
            "seen": "2026-10-08"
          },
          {
            "what": "security page",
            "url": "https://www.taxjar.com/security",
            "seen": "2026-10-08"
          },
          {
            "what": "SOC 2 Type 2 announcement (18 March 2021)",
            "url": "https://www.taxjar.com/blog/taxjar-soc-2-type-2-compliant",
            "seen": "2026-10-08"
          },
          {
            "what": "terms of service and API licence agreement",
            "url": "https://www.taxjar.com/terms-of-service",
            "seen": "2026-10-08"
          },
          {
            "what": "privacy policy",
            "url": "https://www.taxjar.com/privacy",
            "seen": "2026-10-08"
          },
          {
            "what": "data processing agreement",
            "url": "https://www.taxjar.com/privacy/data-processing-agreement",
            "seen": "2026-10-08"
          },
          {
            "what": "sub-processor list",
            "url": "https://www.taxjar.com/privacy/subprocessors",
            "seen": "2026-10-08"
          },
          {
            "what": "TaxJar and Stripe Tax comparison",
            "url": "https://www.taxjar.com/taxjar-and-stripe-tax",
            "seen": "2026-10-08"
          },
          {
            "what": "about page",
            "url": "https://www.taxjar.com/about",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt on the TaxJar site (404)",
            "url": "https://www.taxjar.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt on stripe.com",
            "url": "https://stripe.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "vendor repositories",
            "url": "https://api.github.com/orgs/taxjar/repos?per_page=100\u0026sort=pushed",
            "seen": "2026-10-08"
          },
          {
            "what": "Node client repository and changelog",
            "url": "https://github.com/taxjar/taxjar-node",
            "seen": "2026-10-08"
          },
          {
            "what": ".NET client repository and changelog",
            "url": "https://github.com/taxjar/taxjar.net",
            "seen": "2026-10-08"
          },
          {
            "what": "OpenAPI repository (README only)",
            "url": "https://github.com/taxjar/openapi",
            "seen": "2026-10-08"
          },
          {
            "what": "WooCommerce plugin tags",
            "url": "https://github.com/taxjar/taxjar-woocommerce-plugin",
            "seen": "2026-10-08"
          },
          {
            "what": "Magento extension tags",
            "url": "https://github.com/taxjar/taxjar-magento2-extension",
            "seen": "2026-10-08"
          },
          {
            "what": "npm package",
            "url": "https://registry.npmjs.org/taxjar",
            "seen": "2026-10-08"
          },
          {
            "what": "npm weekly downloads",
            "url": "https://api.npmjs.org/downloads/point/last-week/taxjar",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI package",
            "url": "https://pypi.org/pypi/taxjar/json",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI recent downloads",
            "url": "https://pypistats.org/api/packages/taxjar/recent",
            "seen": "2026-10-08"
          },
          {
            "what": "NuGet package",
            "url": "https://api.nuget.org/v3/registration5-semver1/taxjar/index.json",
            "seen": "2026-10-08"
          },
          {
            "what": "RubyGems package",
            "url": "https://rubygems.org/api/v1/gems/taxjar-ruby.json",
            "seen": "2026-10-08"
          },
          {
            "what": "Packagist package",
            "url": "https://repo.packagist.org/p2/taxjar/taxjar-php.json",
            "seen": "2026-10-08"
          },
          {
            "what": "official MCP registry search",
            "url": "https://registry.modelcontextprotocol.io/v0/servers?search=taxjar",
            "seen": "2026-10-08"
          },
          {
            "what": "domain registration (RDAP)",
            "url": "https://rdap.verisign.com/com/v1/domain/taxjar.com",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "unchecked: how many API tokens an account can hold and how a token is revoked or rotated. The docs say only that a new token can be generated at Account \u003e TaxJar API, and we didn't sign up.",
          "unchecked: prices for Professional tiers above 1,000 orders and for the Premium plan. The pricing page shows the 200-order tier and a selector, and Premium appears only in the rate-limit docs.",
          "unchecked: whether 429 responses carry a Retry-After header. The docs don't mention one and we didn't trigger a 429.",
          "unchecked: whether the web app keeps a per-request API log. The docs mention only transaction counts under Plans \u0026 Billing.",
          "unchecked: whether Stripe's HackerOne programme covers taxjar.com hosts. No disclosure policy was found on TaxJar's own pages.",
          "unchecked: current versions of the Java and Go clients on their registries. Their repositories were last pushed in May and October 2023.",
          "unchecked: the role names and permissions under Users \u0026 Roles. The help centre article shows them only in screenshots.",
          "The product page claims 99.999 per cent historical uptime and sub-20ms response times. These are vendor claims and no uptime SLA was found.",
          "The sandbox article, last updated 28 September 2021, says address validation is unsupported there. We didn't test the sandbox.",
          "No vendor MCP server was found, and the official MCP registry has no taxjar entry.",
          "The Node client's changelog dates 5.0.0 to 3 February 2026, while npm shows it published on 2 September 2026. We used the npm date for the last release.",
          "The API has no filing endpoint, so `tax.filing` was left out of the capabilities although TaxJar sells AutoFile in its web app."
        ]
      },
      "negative": 0,
      "verdict": "A 21-operation REST API with a no-card 30-day trial, caller-chosen transaction IDs that make order pushes safe to repeat, and no status-page incident since March 2026. No OpenAPI spec or llms.txt was found, the API changelog stops at January 2022, tokens carry no scopes, and calculation is US-only for new accounts.",
      "bestFor": "An agent working for a US seller that needs sales tax on an order at checkout and a record of orders and refunds for state reporting, with exempt customers handled by ID.",
      "strengths": [
        "30-day trial with Professional plan access, the API included, and no card needed at signup",
        "Orders and refunds take a caller-chosen `transaction_id`. A duplicate create returns 422 and the docs direct a PUT update",
        "status.taxjar.com lists seven components and no incident since 26 March 2026",
        "Rate limits published as 10,000 requests a minute on Professional and 25,000 on Premium",
        "Official clients for seven languages. The Node client reached 5.0.0 on npm on 2 September 2026 and .NET 5.0.0 on NuGet on 4 August 2026"
      ],
      "weaknesses": [
        "No OpenAPI spec or llms.txt was found. The taxjar/openapi repository on GitHub holds only a README",
        "The API changelog's last entry is 24 January 2022, and no deprecation policy was found",
        "Calculation covers the United States only for new accounts. The docs point other countries to Stripe Tax",
        "API tokens carry no scopes or read-only mode, and the same token can delete transactions and customers",
        "Calls that return an error still count as a tenth of an order against the plan, per the help centre"
      ],
      "agentNotes": [
        "Send `x-api-version: 2022-01-24` on every call. Accounts opened before 3 February 2022 default to an older version with weaker validation",
        "Pass `nexus_addresses[]` or keep nexus states in the account. Without nexus the API returns zero tax and reports no error",
        "Create orders with your own `transaction_id`. On 422 the order already exists, so send a PUT to update it",
        "Post JSON with `Content-Type: application/json`. Form-encoded arrays such as `line_items[]` can return 406",
        "Cache calculations and skip states without nexus. Each calculation or rate lookup counts as a tenth of an order, errors included"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "C",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 57.6
        }
      ],
      "editorialScores": {
        "ergonomics": 61,
        "maintenance": 64,
        "payments": 30,
        "reliability": 84,
        "schema": 48,
        "security": 43,
        "transparency": 55
      },
      "provenanceScore": 87
    },
    "connect": {
      "install": "npm install taxjar",
      "http": "curl https://api.taxjar.com/v2/categories \\\n  -H \"Authorization: Bearer ${TAXJAR_API_KEY}\""
    },
    "letme": {
      "capability": "https://letme.dev/tax.calculate",
      "tool": "https://letme.dev/taxjar"
    },
    "notable": [
      "The API answers at https://api.taxjar.com/v2 with 21 operations across categories, taxes, order and refund transactions, customers, rates, nexus regions, address validation and summarised rates (https://developers.taxjar.com/api/reference/)",
      "The reference lists the United States as the only supported country and says international calculation works only for accounts that already have it. The help centre says it isn't sold to new customers (https://support.taxjar.com/article/157-what-countries-does-api-support)",
      "API access needs the Professional plan, from $99 a month at 200 orders. Each calculation or rate lookup counts as a tenth of an order, and transaction pushes aren't counted as calculations (https://support.taxjar.com/article/1081-choosing-the-right-order-tier-for-your-business)",
      "The 30-day trial includes Professional plan access with the API and asks for no card (https://app.taxjar.com/api_sign_up/)",
      "A sandbox at https://api.sandbox.taxjar.com comes with Professional plans. Transaction endpoints return stubbed responses there, address validation isn't supported, and an `X-TJ-Expected-Response` header mocks error codes (https://developers.taxjar.com/api/reference/#sandbox-environment)",
      "Versions are chosen with the `x-api-version` header from 2012-01-01, 2020-08-07 and 2022-01-24. The changelog on the reference page ends at 24 January 2022 (https://developers.taxjar.com/api/reference/#changelog)",
      "No vendor MCP server was found, and the official MCP registry returns no entry for taxjar (https://registry.modelcontextprotocol.io/v0/servers?search=taxjar)",
      "The data processing agreement of 14 May 2026 describes TPS Unlimited, Inc. d/b/a TaxJar as a wholly owned subsidiary of Stripe, Inc. (https://www.taxjar.com/privacy/data-processing-agreement)",
      "Filing (AutoFile) and state registrations are run from the TaxJar web app. The API has no filing endpoint, and pushed transactions feed the reports that filing uses (https://developers.taxjar.com/api/guides/)"
    ],
    "area": "domain-data",
    "details": [
      {
        "label": "API",
        "value": "REST at https://api.taxjar.com/v2, JSON, 21 operations. Taxes 1, rates 1, summarised rates 1, categories 1, nexus regions 1, address validation 1, order transactions 5, refund transactions 5, customers 5"
      },
      {
        "label": "Coverage",
        "value": "United States sales tax with street-level rates. International calculation only for accounts that already have it, and the docs refer other countries to Stripe Tax"
      },
      {
        "label": "Credentials",
        "value": "One API token from Account \u003e TaxJar API in the web app, sent as `Authorization: Bearer \u003ctoken\u003e` or `Authorization: Token token=\"\u003ctoken\u003e\"`. No scopes. A separate token for the sandbox"
      },
      {
        "label": "Access",
        "value": "Self-serve. The 30-day trial includes the API with no card. After the trial the API needs the Professional plan, and the Starter plan has none"
      },
      {
        "label": "Plans",
        "value": "Starter from $39 a month and Professional from $99 a month, both at 200 orders a month, with higher order tiers on a selector (Professional 500 orders $249, 1,000 orders $499). Annual billing is 10 per cent or more lower (https://www.taxjar.com/pricing)"
      },
      {
        "label": "Metering",
        "value": "A calculation or rate lookup counts as a tenth of an order, errors included. Going over the tier bills the difference to the tier used for that month (flex fee). AutoFile returns beyond the included credits are $50 on Starter and $55 on Professional"
      },
      {
        "label": "Sandbox",
        "value": "https://api.sandbox.taxjar.com on Professional plans. Seven endpoint groups supported, transactions stubbed, address validation unsupported, `X-TJ-Expected-Response` mocks errors"
      },
      {
        "label": "Rate limits",
        "value": "10,000 requests a minute on Professional, 25,000 on Premium. 429 on excess. No Retry-After header is documented"
      },
      {
        "label": "Errors",
        "value": "JSON body with `error`, `detail` and `status`. Codes 400, 401, 403, 404, 405, 406, 410, 422, 429, 500 and 503 are listed, with causes and fixes for 400, 401, 403, 406 and 422"
      },
      {
        "label": "Versioning",
        "value": "`x-api-version` header with 2012-01-01, 2020-08-07 and 2022-01-24. New accounts default to 2022-01-24 since 3 February 2022. An invalid value is ignored"
      },
      {
        "label": "Lists",
        "value": "Order and refund lists filter by `transaction_date` or a date range and by `provider`, and return IDs only. The customer list takes no parameters. No pagination is documented"
      },
      {
        "label": "Exemptions",
        "value": "Customer records with `exemption_type` (wholesale, government, other, non_exempt) and `exempt_regions`, referenced by `customer_id` on calculations and transactions. Order-level `exemption_type` also accepts marketplace"
      },
      {
        "label": "SDKs",
        "value": "Node taxjar 5.0.0 (npm, 2 September 2026), .NET TaxJar 5.0.0 (NuGet, 4 August 2026), Python taxjar 2.0.1 (14 April 2025), PHP taxjar/taxjar-php 2.0.1 (8 May 2025), Ruby taxjar-ruby 3.0.4 (22 August 2022), Java and Go. MIT"
      },
      {
        "label": "Certifications",
        "value": "SOC 2 Type 2 per taxjar.com/security, with yearly re-audits announced in March 2021. Annual penetration testing. No bug bounty page for TaxJar was found"
      },
      {
        "label": "Status",
        "value": "status.taxjar.com on Statuspage, seven components (Tax Calculations API, Tax Rates API, Transaction Push API, Other API Services, Reporting, AutoFile and the API group) with incident history"
      },
      {
        "label": "Sub-processors",
        "value": "List updated 26 June 2026. Amazon Web Services, Help Scout, Appcues, Sprout Social and Sprinklr (United States), TDCX (Malaysia), and Stripe, LLC and affiliates"
      }
    ],
    "unitPrices": [
      {
        "item": "Professional, 200 orders a month",
        "unit": "month",
        "usd": 99,
        "note": "the plan with API access; a calculation or rate lookup counts as a tenth of an order"
      },
      {
        "item": "Professional, 500 orders a month",
        "unit": "month",
        "usd": 249,
        "note": "per the flex fee article"
      },
      {
        "item": "Professional, 1,000 orders a month",
        "unit": "month",
        "usd": 499,
        "note": "per the flex fee article"
      },
      {
        "item": "Starter, 200 orders a month",
        "unit": "month",
        "usd": 39,
        "note": "no API access"
      },
      {
        "item": "AutoFile return beyond included credits, Professional",
        "unit": "tx",
        "usd": 55,
        "note": "four credits a year included; $50 on Starter"
      }
    ],
    "provenance": {
      "legalEntity": "TPS Unlimited, Inc. (d/b/a TaxJar, a wholly owned subsidiary of Stripe, Inc.)",
      "domain": "taxjar.com",
      "domainRegistered": "2012-03-02",
      "endpointOnVendorDomain": true,
      "terms": "https://www.taxjar.com/terms-of-service",
      "privacy": "https://www.taxjar.com/privacy",
      "statusPage": "https://status.taxjar.com",
      "changelog": "https://developers.taxjar.com/api/reference/#changelog",
      "securityTxt": "none",
      "checked": "2026-10-08",
      "notes": [
        "The terms of service and the API licence agreement on the same page (last updated 14 May 2026) are with TPS Unlimited, Inc. d/b/a TaxJar. The data processing agreement of the same date calls it a wholly owned subsidiary of Stripe, Inc.",
        "The privacy policy (last updated 7 January 2022) gives TPS Unlimited, Inc., 462 Washington St. #3066, Woburn, Massachusetts 01888, and adds (A Stripe Company). The about page says Stripe acquired TaxJar in 2021.",
        "Stripe is listed separately on Anchor Terminal. TaxJar keeps its own API, account system, terms and status page, and its sub-processor list names Stripe, LLC and affiliates for billing.",
        "The API host is api.taxjar.com and the sandbox api.sandbox.taxjar.com. RDAP gives a registration date of 2012-03-02 for taxjar.com, with Com Laude as registrar.",
        "www.taxjar.com/.well-known/security.txt and api.taxjar.com/.well-known/security.txt return 404. stripe.com serves a valid security.txt that points to HackerOne, and we didn't establish whether that programme covers TaxJar hosts.",
        "The changelog is a section of the API reference page, and its newest entry is dated 24 January 2022."
      ],
      "score": 87,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "TPS Unlimited, Inc. (d/b/a TaxJar, a wholly owned subsidiary of Stripe, Inc.)",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "taxjar.com, registered 2012-03-02 (14 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "api.taxjar.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 1 clause that costs points",
          "points": 7.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "status.taxjar.com",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.taxjar.com/terms-of-service",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-05-14",
          "words": 7550,
          "points": 7.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: May 14, 2026",
              "says": "Last updated 2026-05-14"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "The parties hereby consent to the exclusive jurisdiction and venue in the state courts in San Diego County, California or federal court for the Southern District of California.",
              "says": "Disputes go to the courts of San Diego County, California"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "IN NO EVENT WILL TAXJAR BE LIABLE FOR ANY LOSS, COST, LIABILITY OR DAMAGE INCURRED AS A RESULT OF YOUR RECEIPT OF OR PARTICIPATION IN THIRD PARTY SERVICES OR THIRD PARTY WEBSITES."
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Subject to earlier termination as provided below, TaxJar may terminate your account and this Agreement at any time by providing notice to the administrative email address associated with your account."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "TaxJar shall have the right to change or add to the terms of this Agreement at any time by providing you with thirty (30) days prior notice either by emailing the email address associated with your account or by posting a notice in the Service or on www.TaxJar.com (the “Site”).",
              "says": "Gives thirty days of notice before a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "If you do not have such authority, or if you do not agree with this Agreement, you must not accept this Agreement and may not use the Services."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "(F) use the API to create a product or service that is competitive with any TaxJar Service.",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "Subject to earlier termination as provided below, TaxJar may terminate your account and this Agreement at any time by providing notice to the administrative email address associated with your account."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "The API licence bars using the API on behalf of any third party, bulk downloading or crawling, and caching or storing the tax content it returns.",
              "quote": "use the API on behalf of any third party; attempt or provide a means to execute any “bulk download” operations, including without limitation by “crawling” the API or Content; cache or otherwise store any Content and/or modify any Content;"
            },
            {
              "date": "2026-10-08",
              "text": "TaxJar may use data about and derived from customer content to improve its services and other TaxJar offerings, during and after the term.",
              "quote": "TaxJar will be free (during and after the Term) to (i) use such information and data to improve and enhance the Services and for other development, diagnostic and corrective purposes in connection with the Services and other TaxJar offerings"
            },
            {
              "date": "2026-10-08",
              "text": "TaxJar may permanently delete all customer content when an account is terminated.",
              "quote": "All of Your Content on the Service (if any) may be permanently deleted by TaxJar upon any termination of your account in its sole discretion."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.taxjar.com/privacy",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2022-01-07",
          "words": 3447,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "​​Last updated: January 7, 2022",
              "says": "Last updated 2022-01-07"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "This privacy policy (the “Privacy Policy”) explains how we collect, use, and disclose personal information (“Personal Data”) from those who engage with our Services."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "When determining the specific retention period, we take into account various criteria, such as the type of service provided to You, the nature and length of our relationship with You, and mandatory retention periods provided by law and the statute of limitations."
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "We may share any Personal Data we receive with vendors and service providers retained in connection with the provision of our Services."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "We do not rent, sell, or share Personal Data about You with non-affiliated companies for their direct marketing purposes unless we have Your permission.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "You can find more information about Your rights and choices, and how to opt-out of or block the use of certain Cookies in the Cookie Policy."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If have any questions, comments, or concerns about our processing activities, please email us at [email protected] or write to us at:",
              "says": "Gives an email address, hidden from our reader by the page"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "Where applicable law requires a legal mechanism for data transfers, we use one or more of the following: EU Standard Contractual Clauses, verification that the recipient has implemented Binding Corporate Rules, or other legal method available to us under applicable law.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "old",
              "label": "Has not been updated for three years or more",
              "found": true,
              "quote": "​​Last updated: January 7, 2022"
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/taxjar.json",
    "live": {
      "slug": "taxjar",
      "probe": {
        "target": "https://api.taxjar.com/v2",
        "method": "get",
        "lastAt": "2026-10-08T17:36:46.932593194Z",
        "lastOk": true,
        "lastStatus": 404,
        "lastMs": 265,
        "authRequired": false,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 264,
        "p95ms24h": 336,
        "samples24h": 25,
        "samples30d": 25,
        "days": [
          {
            "date": "2026-10-08",
            "probes": 25,
            "ok": 25
          }
        ]
      },
      "vendorStatus": {
        "page": "https://status.taxjar.com",
        "indicator": "none",
        "summary": "All Systems Operational",
        "checkedAt": "2026-10-08T17:25:52.193204492Z"
      },
      "versions": [
        {
          "registry": "github",
          "name": "taxjar/taxjar-node",
          "version": "v5.0.0",
          "released": "2026-02-03",
          "seenAt": "2026-10-08T16:31:32.062161715Z"
        },
        {
          "registry": "npm",
          "name": "taxjar",
          "version": "5.0.0",
          "seenAt": "2026-10-08T16:31:31.016239944Z"
        },
        {
          "registry": "pypi",
          "name": "taxjar",
          "version": "2.0.1",
          "released": "2025-04-14",
          "seenAt": "2026-10-08T16:31:31.869241068Z"
        }
      ],
      "githubStars": 57,
      "npmWeekly": 95036,
      "pypiWeekly": 49713,
      "securityTxt": {
        "url": "https://taxjar.com/.well-known/security.txt",
        "state": "none",
        "checkedAt": "2026-10-08T15:39:06.776426979Z"
      },
      "updatedAt": "2026-10-08T17:36:46.932593194Z"
    }
  }
}
