Skip to content

List tax regimes

The knowledge.regimes.list operation: GET /api/v1/tax/knowledge/regimes in the REST API and the knowledge_regimes_list tool in the MCP server.

GET/api/v1/tax/knowledge/regimes

Lists the regimes of the Jurisdiction Knowledge Base as loaded. A regime is a set of rules for one jurisdiction and seller situation, for example HR_DOMESTIC, EU_OSS_UNION or US_SALES_TAX:TX: who it applies to, the registration threshold (money as integer micros), grace rules, evidence and place-of-supply rules, and how to register. Each has its record meta (status, confidence, open questions, sources).

Filter by jurisdictionId (regimes that cover it or live in its folder) or status (one or several). Sorted by ID; paginate with limit (1–100, default 50) and starting_after (the previous next_cursor).

At a glance

  • REST: GET /api/v1/tax/knowledge/regimes
  • MCP tool: knowledge_regimes_list
  • Operation ID: knowledge.regimes.list
  • Scope: Platform
  • Permission: tax_knowledge:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Pagination: limit (at most 100) and starting_after
  • Authentication: API key with the tax_knowledge:read scope
  • Since: M3

Request

Query parameters

FieldTypeRequiredDescription
jurisdictionIdstringNo
statusone of researched, cross_checked, reviewed, verified, retired or array of one of researched, cross_checked, reviewed, verified, retiredNo
limitinteger (1 to 100)No
starting_afterstringNo

Response

200 OK with a JSON object, a page of the list (newest first):

FieldTypeDescription
object"list"
dataarray of object
data[].idstring
data[].object"regime"
data[].versionstring
data[].namestring
data[].jurisdictionIdsarray of string
data[].appliesToobject
data[].appliesTo.sellerEstablishmentone of in, outside, any, in_eu_other_ms, outside_eu
data[].appliesTo.customerTypeone of b2c, b2b, both
data[].appliesTo.taxCategoriesarray of string
data[].thresholdobject
data[].threshold.amountobject
data[].threshold.amount.amountinteger string
data[].threshold.amount.currencystring
data[].threshold.measureone of sales_in_jurisdiction, eu_cross_border_b2c, worldwide_turnover, transactions_in_jurisdiction, sales_or_transactions
data[].threshold.windowone of calendar_year_current_or_previous, rolling_12_months, calendar_year_previous, base_period_two_years_prior, current_or_previous_12_months
data[].threshold.transactionCountinteger
data[].threshold.whatCountsstring
data[].threshold.amountInclusiveboolean
data[].zeroThresholdboolean
data[].graceobject
data[].grace.ruleone of none, days_after_trigger, nth_day_of_following_month, before_first_sale, end_of_following_month
data[].grace.daysinteger
data[].grace.nthDayinteger
data[].grace.effectiveFromstring
data[].collectBeforeRegistrationboolean
data[].b2bReverseChargeNoRegistrationboolean
data[].b2bChargeWhenRegisteredboolean
data[].roundingone of half_up, half_even, half_down, up, down
data[].requiresFiscalRepresentativeboolean
data[].requiresLocalAgentboolean
data[].securityDepositstring
data[].evidenceobject
data[].evidence.requiredNonConflictinginteger
data[].evidence.acceptedTypesarray of one of billing_address, ip_country, card_bin_country, bank_country, phone_country, self_declared
data[].evidence.conflictPolicyone of majority, billing_address_wins, hold_for_review
data[].supplyRulesarray of object
data[].supplyRules[].taxCategoryIdstring
data[].supplyRules[].customerTypeone of b2c, b2b, both
data[].supplyRules[].placeOfSupplyone of customer_location, supplier_establishment, not_supported
data[].registrationobject
data[].registration.methodstring
data[].registration.portalUrlstring
data[].registration.identityRequirementsstring
data[].registration.typicalProcessingDaysinteger
data[].registration.prerequisitesarray of object
data[].registration.prerequisites[].codestring
data[].registration.prerequisites[].descriptionstring
data[].registration.prerequisites[].leadTimeDaysinteger
data[].registration.packetFieldsarray of object
data[].registration.packetFields[].labelstring
data[].registration.packetFields[].ownrecordFieldstring
data[].registration.packetFields[].requiredboolean
data[].registration.packetFields[].notesstring
data[].registration.playbookIdstring
data[].filingSpecIdstring
data[].validFromstring
data[].validTostring
data[].metaobject
data[].meta.statusone of researched, cross_checked, reviewed, verified, retired
data[].meta.fixtureboolean
data[].meta.confidenceone of high, medium, low
data[].meta.sourceIdsarray of string
data[].meta.openQuestionsinteger (at least 0)
data[].meta.unsupportedRulesinteger (at least 0)
data[].meta.blockingUnsupportedRulesinteger (at least 0)
data[].meta.reviewedBystring
data[].meta.reviewedAtstring
data[].meta.verifiedBystring
data[].meta.verifiedAtstring
data[].meta.nextReviewBystring
data[].meta.knowledgeRefobject
data[].meta.knowledgeRef.pathstring
data[].meta.knowledgeRef.commitstring
has_moreboolean
next_cursorstring or null

Examples

Croatia's regimes

HTTP
GET /api/v1/tax/knowledge/regimes?jurisdictionId=HR
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "HR_DOMESTIC",
      "object": "regime",
      "version": "6f1d2a9c0b3e4d58",
      "name": "Croatian VAT (domestic)",
      "jurisdictionIds": ["HR"],
      "appliesTo": {
        "sellerEstablishment": "in",
        "customerType": "both"
      },
      "threshold": {
        "amount": {
          "amount": "60000000000",
          "currency": "EUR"
        },
        "measure": "sales_in_jurisdiction",
        "window": "calendar_year_current_or_previous"
      },
      "zeroThreshold": false,
      "grace": {
        "rule": "days_after_trigger",
        "days": 8
      },
      "collectBeforeRegistration": false,
      "b2bReverseChargeNoRegistration": false,
      "b2bChargeWhenRegistered": false,
      "rounding": "half_up",
      "requiresFiscalRepresentative": false,
      "requiresLocalAgent": false,
      "evidence": {
        "requiredNonConflicting": 1,
        "conflictPolicy": "billing_address_wins"
      },
      "supplyRules": [
        {
          "taxCategoryId": "saas",
          "customerType": "both",
          "placeOfSupply": "supplier_establishment"
        }
      ],
      "registration": {
        "method": "online",
        "portalUrl": "https://e-porezna.porezna-uprava.hr",
        "prerequisites": [
          {
            "code": "oib",
            "description": "A Croatian personal identification number (OIB)"
          }
        ],
        "packetFields": [
          {
            "label": "Legal name",
            "ownrecordField": "entity.legalName",
            "required": true
          }
        ],
        "playbookId": "HR/playbooks/HR_DOMESTIC-registration.md"
      },
      "validFrom": "2013-07-01",
      "meta": {
        "status": "reviewed",
        "fixture": false,
        "confidence": "high",
        "sourceIds": ["HR:S1", "HR:S4"],
        "openQuestions": 0,
        "unsupportedRules": 0,
        "blockingUnsupportedRules": 0,
        "reviewedBy": "Ana Horvat",
        "reviewedAt": "2026-10-10",
        "nextReviewBy": "2027-04-13",
        "knowledgeRef": {
          "path": "data/tax/knowledge/jurisdictions/HR/regimes/HR_DOMESTIC.yaml",
          "commit": "1c14b2ec912aca347dd518b2044096f3b5d8eef1"
        }
      }
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A filter or the page size is invalid.Fix the fields listed in details.issues and send the request again.
permission_denied403Your credentials can't read tax knowledge.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.