Skip to content

List playbooks

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

GET/api/v1/tax/knowledge/playbooks

Lists the playbooks of the Jurisdiction Knowledge Base as loaded: step-by-step guides (for people and agents) to register, file or deregister in a jurisdiction, with their title, kind, regime and record meta. The text is in knowledge.playbooks.get.

Filter by jurisdictionId, regimeId or kind. Sorted by key; paginate with limit (1–100, default 50) and starting_after (the previous next_cursor).

At a glance

  • REST: GET /api/v1/tax/knowledge/playbooks
  • MCP tool: knowledge_playbooks_list
  • Operation ID: knowledge.playbooks.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
regimeIdstringNo
kindone of registration, filing, deregistration, otherNo
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"playbook"
data[].keystring
data[].jurisdictionIdstring
data[].regimeIdstring
data[].kindone of registration, filing, deregistration, other
data[].titlestring
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 registration playbooks

HTTP
GET /api/v1/tax/knowledge/playbooks?jurisdictionId=HR&kind=registration
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "kn_01m4ttwd3veh9apbewxheq5xhc",
      "object": "playbook",
      "key": "HR/playbooks/HR_DOMESTIC-registration.md",
      "jurisdictionId": "HR",
      "regimeId": "HR_DOMESTIC",
      "kind": "registration",
      "title": "Register for VAT in Croatia",
      "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/playbooks/HR_DOMESTIC-registration.md",
          "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.