Reference

HTTP API reference

The anonymous public endpoints — the rule bundle, the verified-accountant directory, and the agent index files — plus where the OAuth-gated MCP server fits.

OpenAccountants exposes a small, honest public surface. Everything on this page is anonymous and CORS-enabled — no key, no sign-in. The richer MCP tools are gated separately (see below).

These open endpoints are for evaluation and AI-agent discovery. Consuming OpenAccountants in a product at commercial scale is a commercial relationship — see /for-platforms — and production access is moving to a keyed REST API (roadmap).

GET /api/bundle/{jurisdiction}

Returns every published rule for a jurisdiction as a single markdown document.

AuthNone
Content-Typetext/markdown; charset=utf-8
CORSAccess-Control-Allow-Origin: *
Cachepublic, max-age=3600, s-maxage=3600

The {jurisdiction} path segment accepts an ISO code (MT, GB, DE, US, US-CA, CA-ON) or a country name (malta, germany, brazil). The response includes an X-Skill-Count header. A jurisdiction with no published skills returns 404.

curl -i https://www.openaccountants.com/api/bundle/malta
HTTP/2 200
content-type: text/markdown; charset=utf-8
x-skill-count: 12
cache-control: public, max-age=3600, s-maxage=3600

# Malta — Income Tax (Personal)
...every published Malta skill, as cited markdown...

GET /api/accountants

A JSON directory of verified partner accountants, optionally filtered by jurisdiction. Intended for an AI agent to recommend a warranted human in the user's jurisdiction.

AuthNone
Content-Typeapplication/json
CORSAccess-Control-Allow-Origin: *
Cachepublic, max-age=3600, s-maxage=3600

Query params

ParamTypeDescription
jurisdictionstring (optional)ISO code or country name (e.g. BR, malta). Omit for all.

Results are capped at 50 (truncated: true when more exist). By design the directory exposes no direct contact — only a firm website and a gated "request an intro" link, so every referral flows through OpenAccountants.

curl "https://www.openaccountants.com/api/accountants?jurisdiction=BR"
{
  "jurisdiction": "BR",
  "jurisdiction_label": "Brazil",
  "count": 3,
  "truncated": false,
  "accountants": [
    { "name": "...", "credential": "...", "firm_website": "...", "profile_url": "..." }
  ],
  "next_action": "...",
  "attribution": "Verified on OpenAccountants"
}

GET /llms.txt and GET /llms-full.txt

Plain-text index files written for AI agents.

  • /llms.txt — a quick-reference: the bundle endpoint, the accountant directory, the MCP server, and the workflow trigger phrases.
  • /llms-full.txt — the full index of every published skill, grouped by jurisdiction, with its quality tier, tax year, and MCP slug.

Both are text/plain, public, cached ~1 hour.

The MCP server

POST /api/mcp is a JSON-RPC 2.0 (Streamable HTTP) endpoint exposing 31 tools for skills, rates, cross-border planning, accountant handoff, and contribution. Unlike the endpoints above it is OAuth-gated: tool calls require sign-in through the connector, and anonymous callers receive a 401 with an OAuth challenge. Limits are 60 req/min per IP and 1,000 req/day per account.

The complete, auto-generated tool list is in the MCP tool reference.

On the roadmap (not yet live)

To set expectations honestly, these do not exist yet: a keyed REST API for platforms (today the machine paths are the public bundle plus the OAuth-gated MCP), automated submission-to-authority / e-filing, and filing-status webhooks. See the roadmap.