Get the loaded tax knowledge
The knowledge.state.get operation: GET /api/v1/tax/knowledge in the REST API and the knowledge_state_get tool in the MCP server.
/api/v1/tax/knowledgeReturns which version of the Jurisdiction Knowledge Base the platform uses: the git commit it was compiled
from, when it was loaded (loadedAt, loadedBy) and what that load changed (lastLoad), with counts of the
current records per collection and per status. Every change to tax rules is a reviewed commit; the
knowledge_sync job loads it after the next deploy. Before anything is loaded, loaded is false.
Tax knowledge is shared by every organization and read-only (spec §41.2).
At a glance
- REST:
GET /api/v1/tax/knowledge - MCP tool:
knowledge_state_get - Operation ID:
knowledge.state.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:readscope - Since: M3
Request
Query parameters
This operation takes no query parameters.
Response
200 OK with a JSON object:
| Field | Type | Description |
|---|---|---|
object | "knowledge_state" | |
loaded | boolean | |
root | one of knowledge, fixtures or null | |
commit | string or null | |
previousCommit | string or null | |
loadedAt | date-time or null | |
loadedBy | string or null | |
counts | object | |
counts.jurisdictions | integer (at least 0) | |
counts.rates | integer (at least 0) | |
counts.regimes | integer (at least 0) | |
counts.filingSpecs | integer (at least 0) | |
counts.invoicingRules | integer (at least 0) | |
counts.einvoicingMandates | integer (at least 0) | |
counts.playbooks | integer (at least 0) | |
counts.sources | integer (at least 0) | |
counts.territories | integer (at least 0) | |
statuses | object | |
statuses.total | integer (at least 0) | |
statuses.researched | integer (at least 0) | |
statuses.cross_checked | integer (at least 0) | |
statuses.reviewed | integer (at least 0) | |
statuses.verified | integer (at least 0) | |
statuses.retired | integer (at least 0) | |
fixtures | integer (at least 0) | |
lastLoad | object |
Examples
The knowledge base loaded after a deploy
GET /api/v1/tax/knowledge
Authorization: Bearer or_test_…
Response (200):
{
"object": "knowledge_state",
"loaded": true,
"root": "knowledge",
"commit": "1c14b2ec912aca347dd518b2044096f3b5d8eef1",
"previousCommit": "0b2f4c1e7a9d3b5f8e6c2a4d1f3b5e7c9a1d3f5b",
"loadedAt": "2026-10-13T03:15:00.000Z",
"loadedBy": "system:knowledge_sync",
"counts": {
"jurisdictions": 82,
"rates": 394,
"regimes": 55,
"filingSpecs": 6,
"invoicingRules": 2,
"einvoicingMandates": 8,
"playbooks": 14,
"sources": 772,
"territories": 11
},
"statuses": {
"total": 572,
"researched": 131,
"cross_checked": 380,
"reviewed": 61,
"verified": 0,
"retired": 0
},
"fixtures": 0,
"lastLoad": {
"tax_rates": {
"added": 2,
"changed": 1,
"retired": 0,
"unchanged": 391
}
}
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
permission_denied | 403 | Your 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: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.