Skip to content

Get a tax jurisdiction

The knowledge.jurisdictions.get operation: GET /api/v1/tax/knowledge/jurisdictions/{id} in the REST API and the knowledge_jurisdictions_get tool in the MCP server.

GET/api/v1/tax/knowledge/jurisdictions/{id}

Returns one jurisdiction of the Jurisdiction Knowledge Base as loaded, by ID (HR, US-TX, EU): its row of the coverage map (as knowledge.jurisdictions.list returns it: coverage with its research areas, local taxNames, record statuses) with its region, plus what its folder holds: recordsByKind (its records per kind, with status counts and the earliest nextReviewBy), questions (each record with open questions or unsupported rules, with the file they are written in; the e-invoicing mandates of one file share its metadata and are one row) and sources (every source of its sources.yaml). The questions' text stays in the repository; the knowledge base loads their counts.

At a glance

  • REST: GET /api/v1/tax/knowledge/jurisdictions/{id}
  • MCP tool: knowledge_jurisdictions_get
  • Operation ID: knowledge.jurisdictions.get
  • Scope: Platform
  • Permission: tax_knowledge:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the tax_knowledge:read scope
  • Since: M13

Request

Path parameters

FieldTypeDescription
idstringThe jurisdiction ID, any case: HR, us-tx, EU.

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
idstring
object"tax_jurisdiction"
namestring
typeone of country, subdivision, union
parentstring
euMemberboolean
currencystring
timezonestring
coverageobject
coverage.levelone of L0, L1, L2, L3, L4
coverage.targetone of L0, L1, L2, L3, L4
coverage.tier1 or 2 or 3
coverage.areasobjectHow far each research area has got (missing, partial or complete): rates, regimes, filing, invoicing, einvoicing. Absent when the record marks none.
coverage.areas.ratesone of missing, partial, complete
coverage.areas.regimesone of missing, partial, complete
coverage.areas.filingone of missing, partial, complete
coverage.areas.invoicingone of missing, partial, complete
coverage.areas.einvoicingone of missing, partial, complete
authorityobject
authority.namestring
authority.urlstring
authority.portalUrlstring
taxNamesarray of stringLocal names of the tax, e.g. ["USt", "MwSt"].
taxIdobject
taxId.typestring
taxId.formatstring
taxId.examplestring
taxId.validationobject
taxId.validation.serviceone of VIES, HMRC, CH_UID, ABN_LOOKUP, none, other
taxId.validation.urlstring
metaobject
meta.statusone of researched, cross_checked, reviewed, verified, retired
meta.fixtureboolean
meta.confidenceone of high, medium, low
meta.sourceIdsarray of string
meta.openQuestionsinteger (at least 0)
meta.unsupportedRulesinteger (at least 0)
meta.blockingUnsupportedRulesinteger (at least 0)
meta.reviewedBystring
meta.reviewedAtstring
meta.verifiedBystring
meta.verifiedAtstring
meta.nextReviewBystring
meta.knowledgeRefobject
meta.knowledgeRef.pathstring
meta.knowledgeRef.commitstring
recordsobject
records.totalinteger (at least 0)
records.researchedinteger (at least 0)
records.cross_checkedinteger (at least 0)
records.reviewedinteger (at least 0)
records.verifiedinteger (at least 0)
records.retiredinteger (at least 0)
openQuestionsinteger (at least 0)
unsupportedRulesinteger (at least 0)
nextReviewBystring
regionone of europe, americas, asia_pacific, middle_east_africa or nullThe map region (a static table; a subdivision takes its country's, the EU is in Europe).
recordsByKindarray of objectThe records of the jurisdiction's folder per kind, playbooks included; kinds without records are left out.
recordsByKind[].kindone of jurisdiction, regime, rate, filing_spec, invoicing_rule, einvoicing_mandate, playbook
recordsByKind[].recordsobjectThe kind's records by status.
recordsByKind[].records.totalinteger (at least 0)
recordsByKind[].records.researchedinteger (at least 0)
recordsByKind[].records.cross_checkedinteger (at least 0)
recordsByKind[].records.reviewedinteger (at least 0)
recordsByKind[].records.verifiedinteger (at least 0)
recordsByKind[].records.retiredinteger (at least 0)
recordsByKind[].nextReviewBystring or nullThe earliest nextReviewBy of the kind's records that aren't retired; null when all are.
questionsarray of objectThe folder's records with open questions or unsupported rules (playbooks share their records' metadata).
questions[].kindone of jurisdiction, regime, rate, filing_spec, invoicing_rule, einvoicing_mandate, playbook
questions[].refstringThe record's ID or natural key (DE, DE_DOMESTIC, DE/rates.yaml#*:standard@2007-01-01), or the e-invoicing file (DE/einvoicing.yaml).
questions[].titlestringWhat it is in words ("Standard rate, every other category, from 2007-01-01").
questions[].statusone of researched, cross_checked, reviewed, verified, retired
questions[].confidenceone of high, medium, low
questions[].openQuestionsinteger (at least 0)
questions[].unsupportedRulesinteger (at least 0)
questions[].blockingUnsupportedRulesinteger (at least 0)
questions[].nextReviewBystring
questions[].knowledgeRefobjectThe file the questions are written in, and the commit it was compiled from.
questions[].knowledgeRef.pathstring
questions[].knowledgeRef.commitstring
sourcesarray of objectEvery source of the folder's sources.yaml, in file order.
sources[].idstring
sources[].urlstring
sources[].titlestring
sources[].publisherstring
sources[].typestring
sources[].retrievedAtstring
sources[].monitorboolean

Examples

Croatia

HTTP
GET /api/v1/tax/knowledge/jurisdictions/HR
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "id": "HR",
  "object": "tax_jurisdiction",
  "name": "Croatia",
  "type": "country",
  "euMember": true,
  "currency": "EUR",
  "timezone": "Europe/Zagreb",
  "coverage": {
    "level": "L3",
    "target": "L3",
    "tier": 1,
    "areas": {
      "rates": "complete",
      "regimes": "complete",
      "filing": "complete",
      "invoicing": "complete",
      "einvoicing": "partial"
    }
  },
  "authority": {
    "name": "Porezna uprava",
    "url": "https://www.porezna-uprava.hr"
  },
  "taxNames": ["PDV", "porez na dodanu vrijednost"],
  "taxId": {
    "type": "eu_vat",
    "format": "^HR\\d{11}$",
    "validation": {
      "service": "VIES"
    }
  },
  "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/jurisdiction.yaml",
      "commit": "1c14b2ec912aca347dd518b2044096f3b5d8eef1"
    }
  },
  "records": {
    "total": 14,
    "researched": 2,
    "cross_checked": 4,
    "reviewed": 8,
    "verified": 0,
    "retired": 0
  },
  "openQuestions": 3,
  "unsupportedRules": 1,
  "nextReviewBy": "2027-04-13",
  "region": "europe",
  "recordsByKind": [
    {
      "kind": "jurisdiction",
      "records": {
        "total": 1,
        "researched": 0,
        "cross_checked": 0,
        "reviewed": 1,
        "verified": 0,
        "retired": 0
      },
      "nextReviewBy": "2027-04-13"
    },
    {
      "kind": "rate",
      "records": {
        "total": 4,
        "researched": 0,
        "cross_checked": 2,
        "reviewed": 2,
        "verified": 0,
        "retired": 0
      },
      "nextReviewBy": "2027-04-13"
    }
  ],
  "questions": [
    {
      "kind": "rate",
      "ref": "HR/rates.yaml#ebook:reduced@2013-01-01",
      "title": "Reduced rate, ebook, from 2013-01-01",
      "status": "cross_checked",
      "confidence": "medium",
      "openQuestions": 3,
      "unsupportedRules": 1,
      "blockingUnsupportedRules": 0,
      "nextReviewBy": "2027-04-13",
      "knowledgeRef": {
        "path": "data/tax/knowledge/jurisdictions/HR/rates.yaml",
        "commit": "1c14b2ec912aca347dd518b2044096f3b5d8eef1"
      }
    }
  ],
  "sources": [
    {
      "id": "HR:S1",
      "url": "https://narodne-novine.nn.hr/clanci/sluzbeni/2013_06_73_1451.html",
      "title": "Value Added Tax Act (Zakon o porezu na dodanu vrijednost)",
      "publisher": "Narodne novine",
      "type": "law",
      "retrievedAt": "2026-10-13",
      "monitor": true
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No jurisdiction with this ID is loaded.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
validation_failed400The ID isn't a jurisdiction ID.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, dry_run_not_supported, rate_limited, internal_error.