# TaxSorted machine doorway # Public orientation for UK tax data and bounded expert tools. schema-version: taxsorted.agent-manifest/1 name: TaxSorted what: sourced public data and bounded tools for UK tax, politics, charities and public funding human-door: https://taxsorted.io/ agent-door: https://api.taxsorted.io/v1/wake wake: GET https://api.taxsorted.io/v1/wake open-data: GET https://api.taxsorted.io/v1/open-data rights: GET https://api.taxsorted.io/v1/open-data/rights openapi-public: GET https://api.taxsorted.io/openapi-public.json openapi-full: GET https://api.taxsorted.io/openapi.json why-graph-framework: GET https://api.taxsorted.io/v1/why-graph why-graph-adopters: GET https://api.taxsorted.io/v1/why-graph/adopters why-graph-schema: GET https://api.taxsorted.io/v1/why-graph/schema why-graph-openapi: GET https://api.taxsorted.io/openapi/why-graph.json why-graph-writes: none; read-only framework with no ingestion route tax-identity: GET https://api.taxsorted.io/v1/tax-identity/uk tax-identity-graph: GET https://api.taxsorted.io/v1/tax-identity/uk/graph tax-identity-examples: GET https://api.taxsorted.io/v1/tax-identity/uk/examples tax-identity-schema: GET https://api.taxsorted.io/v1/tax-identity/uk/schema tax-identity-openapi: GET https://api.taxsorted.io/openapi/tax-identity-uk.json tax-identity-human-guide: GET https://taxsorted.io/uk/tax-identity/ tax-identity-scope: dated legal-existence, tax-attribution, capacity/activity, residence/nexus, registration/grouping, ownership/control, reporting-classification and obligation-role dimensions; UK-first classifications tax-identity-effects: read-only reviewed framework and synthetic examples; no personal fact intake, identity decision, advice, filing or external state change health: GET https://api.taxsorted.io/v1/health release-ledger: GET https://api.taxsorted.io/v1/open-data/releases release-json-feed: GET https://api.taxsorted.io/v1/open-data/releases/feed.json release-atom-feed: GET https://api.taxsorted.io/v1/open-data/releases/feed.atom public-funding-changes: GET https://api.taxsorted.io/v1/public-funding/uk/changes window-tax-story: GET https://taxsorted.io/learn/history/window-tax/ window-tax-media-manifest: GET https://taxsorted.io/media/window-tax/manifest.json window-tax-scope: sourced public history; image rights and evidence strength remain separate window-tax-effects: read-only; no account, session, tracking or writes charity-accountability: GET https://api.taxsorted.io/v1/charities/uk/accountability charity-accountability-schema: GET https://api.taxsorted.io/v1/charities/uk/accountability/schema charity-accountability-status: schema-only-not-admitted charity-accountability-records: none charity-tax-treatment-why-graph: GET https://api.taxsorted.io/v1/charities/uk/tax-treatments/{id}/why-graph charity-tax-treatment-why-graph-scope: sector record explanation only; no organisation or case facts observer-accountability: GET https://api.taxsorted.io/v1/accountability/uk observer-accountability-schema: GET https://api.taxsorted.io/v1/accountability/uk/schema observer-accountability-status: schema-only-not-admitted observer-accountability-records: none case-commons: GET https://api.taxsorted.io/v1/case-commons/uk case-commons-cases: GET https://api.taxsorted.io/v1/case-commons/uk/cases case-commons-schema: GET https://api.taxsorted.io/v1/case-commons/uk/schema case-commons-packet-schema: GET https://api.taxsorted.io/v1/case-commons/uk/packet-schema case-commons-assessment-template: GET https://api.taxsorted.io/v1/case-commons/uk/assessment-template case-commons-interpretation: GET https://api.taxsorted.io/v1/case-commons/uk/interpretation case-commons-interpretation-schema: GET https://api.taxsorted.io/v1/case-commons/uk/interpretation/schema case-commons-agent: GET https://api.taxsorted.io/v1/case-commons/uk/agent case-commons-case-interpretation: GET https://api.taxsorted.io/v1/case-commons/uk/cases/{caseId}/interpretation case-commons-case-why-graph: GET https://api.taxsorted.io/v1/case-commons/uk/cases/{caseId}/why-graph case-commons-training: GET https://api.taxsorted.io/v1/case-commons/uk/training case-commons-training-examples: GET https://api.taxsorted.io/v1/case-commons/uk/training/examples case-commons-training-examples-ndjson: GET https://api.taxsorted.io/v1/case-commons/uk/training/examples.ndjson case-commons-training-schema: GET https://api.taxsorted.io/v1/case-commons/uk/training/schema case-commons-openapi: GET https://api.taxsorted.io/openapi/case-commons-uk.json case-commons-agenttool-local-mirror: https://github.com/cambridgetcg/taxsorted.io/blob/main/research/uk/case-commons/AGENTTOOL.md case-commons-agenttool-sdk: optional @agenttool/sdk 0.16.3 DataClient; exact official GitHub release artifact; one verified public packet to a caller-operated loopback agent-data/v1 node; dry-run by default; no hosted AgentTool write case-commons-scope: curated approved public packets from decided public records; one England-and-Wales deep case; source-resolving remedies and money meanings case-commons-derived-gate: case interpretations, WhyGraphs and training records require a separate exact derived-release approval case-commons-reasoning-boundary: TaxSorted-labelled concise public reasons, not hidden chain-of-thought; official judicial propositions remain source-linked case-commons-training-source: approved public packets plus clearly marked TaxSorted-derived labels case-commons-training-qualified-legal-review-asserted: false case-commons-training-runtime-assessments: usedForTraining=false case-commons-training-private-assessments: usedForTraining=false case-commons-training-corpus: one current case is a format and evaluation seed, not a sufficient training corpus case-commons-effects: read-only research; no outcome prediction, writes, personal intake, private upload, viability score, expected value, matching, ranking, outreach, recommendation, representation or referral fee case-commons-private-material: stays with the prospective client or instructed professional in their approved matter system professional-opportunities: GET https://api.taxsorted.io/v1/professional-opportunities/uk professional-opportunities-method: GET https://api.taxsorted.io/v1/professional-opportunities/uk/method professional-opportunities-list: GET https://api.taxsorted.io/v1/professional-opportunities/uk/opportunities professional-opportunities-scrutiny: GET https://api.taxsorted.io/v1/professional-opportunities/uk/scrutiny professional-opportunities-sources: GET https://api.taxsorted.io/v1/professional-opportunities/uk/sources professional-opportunities-schema: GET https://api.taxsorted.io/v1/professional-opportunities/uk/schema professional-opportunities-packet-schema: GET https://api.taxsorted.io/v1/professional-opportunities/uk/packet-schema professional-opportunities-assessment-template: GET https://api.taxsorted.io/v1/professional-opportunities/uk/assessment-template professional-opportunities-assessment-schema: GET https://api.taxsorted.io/v1/professional-opportunities/uk/assessment-schema professional-opportunities-rights: GET https://api.taxsorted.io/v1/professional-opportunities/uk/rights professional-opportunities-openapi: GET https://api.taxsorted.io/openapi/professional-opportunities-uk.json professional-opportunities-agenttool-guide: https://github.com/cambridgetcg/taxsorted.io/blob/main/research/uk/professional-opportunities/AGENTTOOL.md professional-opportunities-agenttool-sdk: optional @agenttool/sdk 0.16.3; exact official GitHub release artifact; direct HTTPS remains the universal door; no hosted AgentTool write professional-opportunities-scope: source-backed classes of specialist UK tax work, institutional scrutiny, separate money meanings and a blank finite local assessment professional-opportunities-status-boundary: the user must independently verify the status required for the exact work; TaxSorted verifies no professional; no claim that all UK tax work has one universal licence professional-opportunities-effects: read-only research; no client intake, private upload, probability, expected value, ranking, matching, outreach, recommendation, case assignment, representation, filing, payment or referral fee professional-opportunities-private-material: stays with the prospective client or instructed professional in their approved matter system professional-tools: GET https://api.taxsorted.io/v1/uk/professional-tools professional-tools-openapi: GET https://api.taxsorted.io/openapi/professional-tools-uk.json professional-tools-status: credentialed design partner; two executable stateless tasks professional-tools-audiences: solicitors and conveyancers; accountants and tax advisers professional-tools-access: operator-issued workspace keys for existing design partners professional-tools-access-gap: no public self-service key provisioning and no confidential access-request intake professional-workspace-key: GET https://api.taxsorted.io/v1/api-workspace professional-workspace-key-authentication: Bearer TaxSorted workspace key; no task scope required professional-workspace-key-cors: server-to-server; browser bearer calls are not supported professional-workspace-key-input: no query string and no declared request body; either is rejected with 400 before authentication; no client or tax facts professional-workspace-key-output: presented key and workspace IDs, key prefix, mode, scopes, creation and expiry or null for a legacy non-expiring key; no workspace name, sibling keys, hashes or secrets professional-key-lifecycle: operator-managed inspect, finite-expiry issue, overlapping rotate and explicit revoke; no self-service, public delivery or authenticated admin audit trail professional-tools-data-boundary: the key identifies the calling workspace; minimized financial or transaction facts may still be personal data without direct identifiers professional-tools-client-matter-records: none professional-tools-filing: none; the separate browser HMRC rail is sandbox-only and is not connected to workspace-key tasks professional-tools-evidence-archive: none; caller must retain the exact request, response, X-Request-ID, versions, sources and professional sign-off professional-tools-production-contract-gaps: no published rate limit, professional privacy and retention policy, security assessment, self-service key lifecycle, authenticated admin audit trail, high-availability contract or SLA sdlt-calculation: POST https://api.taxsorted.io/v1/uk/sdlt/calculations sdlt-calculation-required-scope: sdlt:calculate sdlt-calculation-kind: stateless deterministic computation for one ordinary residential dwelling in England or Northern Ireland sdlt-calculation-review-boundary: recognised complex, unknown, out-of-scope or future-effective-date cases return needs_review without a tax figure sdlt-calculation-effects: calculation only; no client record, return preparation, filing or external state change sdlt-calculation-trust: request hash covers normalized facts and ruleset revision; evaluatedOn reports the separate server-date boundary politics-public-office-pathways: GET https://api.taxsorted.io/v1/politics/uk/public-office-pathways politics-public-office-pathways-schema: GET https://api.taxsorted.io/v1/politics/uk/public-office-pathways/schema politics-public-office-pathways-scope: current-law, non-partisan routes for UK MP elections in Great Britain and England principal councillors; named gaps for other offices politics-public-office-pathways-availability: public outside the pending bulk-record and named-person gates; returns 503 while the politics bulk emergency stop is active politics-public-office-pathways-effects: read-only guidance; no eligibility decision, application, nomination, account, tracking or political recommendation politics-public-office-pathways-rights: GET https://api.taxsorted.io/v1/politics/uk/public-office-pathways/rights politics-public-office-pathways-corrections: GET https://api.taxsorted.io/v1/politics/uk/integrity/corrections politics-public-decision-pathways: GET https://api.taxsorted.io/v1/politics/uk/public-decision-pathways politics-public-decision-pathways-decisions: GET https://api.taxsorted.io/v1/politics/uk/public-decision-pathways/decisions politics-public-decision-pathways-doors: GET https://api.taxsorted.io/v1/politics/uk/public-decision-pathways/doors politics-public-decision-pathways-schema: GET https://api.taxsorted.io/v1/politics/uk/public-decision-pathways/schema politics-public-decision-pathways-openapi: GET https://api.taxsorted.io/openapi/politics-uk.json politics-public-decision-pathways-scope: one deep UK central-tax primary-law path; formal power, public doors, dated event windows, personal appeal and complaint hand-offs, and named gaps for other decision families politics-public-decision-pathways-availability: public outside the pending bulk-record and named-person gates; returns 503 while the politics bulk emergency stop is active politics-public-decision-pathways-effects: read-only general guidance; no political profile; no personalised, ideological or ranked recommendation; no effectiveness score, account, tracking, message, submission, appeal decision or legal representation politics-public-decision-pathways-event-status: every event window is dated; compare checkedOn and closesOn, then verify the official source before acting politics-public-decision-pathways-rights: GET https://api.taxsorted.io/v1/politics/uk/public-decision-pathways/rights politics-public-decision-pathways-corrections: GET https://api.taxsorted.io/v1/politics/uk/integrity/corrections tax-expert-manifest: GET https://api.taxsorted.io/v1/uk/tax-expert tax-expert-openapi: GET https://api.taxsorted.io/openapi/tax-expert-uk.json tax-position-passport-schema: GET https://api.taxsorted.io/v1/uk/tax-expert/tax-position-passport/schema tax-position-passport-example: GET https://api.taxsorted.io/v1/uk/tax-expert/tax-position-passport/examples/mtd-income-tax tax-position-passport-generation: browser-local only; no upload, cloud Passport, share link or server CRUD endpoint tax-position-passport-data: portable income-source facts, user-named evidence states and complete replayable MTD request plus TaxAnswer tax-expert-assessment: POST https://api.taxsorted.io/v1/uk/tax-expert/mtd-income-tax/assessments tax-expert-assessment-authentication: Bearer TaxSorted workspace key tax-expert-assessment-required-scope: tax-expert:assess tax-expert-assessment-availability: credentialed design partner; no public self-service key provisioning tax-expert-assessment-kind: stateless computation tax-expert-assessment-input-sensitivity: financial facts; no name, NINO, UTR or address requested tax-expert-assessment-workspace-identity: the workspace key identifies the calling workspace tax-expert-assessment-request-fact-storage: not written to application storage tax-expert-assessment-generated-answer-storage: not written to application storage tax-expert-assessment-used-for-training: false tax-expert-assessment-effects: classification only; no signup, filing or external tax-state change tax-expert-assessment-cache: no-store tax-expert-assessment-cors: server-to-server; browser bearer calls are not supported tax-expert-assessment-repeatability: same facts, trusted server evaluation date and admitted ruleset/source ledger tax-expert-assessment-retry-effects: none; no application state write or external submission tax-expert-assessment-result-stability: not byte-stable across trusted evaluation date or admitted ruleset/source ledger changes tax-expert-assessment-errors: follow the task OpenAPI TaxExpertApiError contract; request fact values are not echoed in errors corrections: https://github.com/cambridgetcg/taxsorted.io/issues authentication: none on this doorway and public read resources authentication-scope: secured task tools declare authentication separately corrections-account: a GitHub account is required to submit a public correction wishes: https://github.com/cambridgetcg/taxsorted.io/issues/new?template=wish.yml wishes-account: a GitHub account is required; wishes are public so anyone can see what was asked and what got built account: none on this doorway session: none on this doorway cookies: none on this doorway writes: none on this doorway writes-scope: this doorway only; linked task tools declare effects separately methods: GET, HEAD, OPTIONS methods-scope: this doorway only; linked task tools declare methods separately formats: application/json, application/x-ndjson, text/csv, application/feed+json, application/atom+xml format-selection: follow each export index's explicit representation URLs; Accept does not switch graph formats errors: RFC 9457 fields; application/problem+json by default, application/json when explicitly requested errors-scope: this doorway only; task errors follow their task OpenAPI contract error-instance: route path only; query values are never reflected xenia-source: https://github.com/cambridgetcg/xenia xenia-credit: XENIA by Yu and Fable xenia-licence: https://creativecommons.org/licenses/by-sa/4.0/ xenia-licensed-content: response and manifest content; implementation source remains AGPL-3.0 xenia-conformance-claim: none sibling-doors: https://taxsorted.io/from-the-builders/ sibling-agents-substrate: https://agenttool.dev (agent self-registration: POST https://api.agenttool.dev/v1/register/agent) sibling-relationship: same builders; separate services; no shared data; no conformance or endorsement claims # Walls kept by this doorway wall: publication gates and emergency stops remain authoritative wall: a public-data licence is not a blanket licence over linked source material wall: private contacts, private communications and inferred personal ties do not belong here wall: uncertainty, source limits and known gaps stay visible wall: one legal-form or taxpayer-kind label is never the whole tax identity wall: the charity map does not publish a people, personal-contact or inferred-belief graph wall: attributed statements, reported action, official findings, TaxSorted analysis and unknowns stay labelled wall: every observer needs a sourced accountability route or an explicit coverage gap wall: a formal institutional relation is not proof of control, collusion, motive or character wall: case party positions, court findings, later outcomes, TaxSorted analysis and unknowns remain separate wall: an amount demanded or affected is not automatically an award, refund, recovery or net gain wall: the case commons has no claimant intake, lawyer bid, ranking, probability or outreach route wall: regulator scrutiny states the evidence type, what it does not prove, the public-body response or counterweight and a lawful correction route wall: the professional-opportunity atlas has no client intake, professional marketplace, case assignment, probability, expected value, ranking or outreach route