API Reference
Interactive reference for the Axiomatic REST API. Browse endpoints, view schemas, and send test requests.
Overview
The Axiomatic API follows RESTful conventions. All endpoints accept and return JSON.
Base URL: https://app.axiomatic.software/api
Authentication
Requests require one of:
- Session cookie — set automatically when signed in via the web app
- API key — pass via the
x-api-keyheader
curl https://app.axiomatic.software/api/entities \
-H "x-api-key: YOUR_API_KEY"Multi-Tenant Routing
Axiomatic uses a tenant-per-organization architecture. Each organization has its own isolated database. Most endpoints require tenant context, resolved automatically via:
entityIdquery/body parameter — maps to the correct tenant database- Session cookie — resolves the user's tenants from the control plane
GET /api/entities is cross-tenant — it queries all tenants the authenticated user has access to.
Endpoints
Browse the sidebar for interactive documentation on every endpoint, organized by category:
| Category | Description |
|---|---|
| Health | System status check |
| Entities | Create and manage legal entities |
| Books | Multi-book accounting (GAAP, IFRS, tax) |
| Accounts | Chart of accounts CRUD |
| Account Mappings | Map roles to accounts for automated posting |
| Events | Record financial events |
| Process | Trigger the posting engine |
| Journal | Query and manage journal entries |
| Trial Balance | Per-account debit/credit totals |
| Periods | Accounting period lifecycle |
| Reports | Balance sheet, income statement, cash flow |
| Fund Reports | Fund-specific reporting |
| AR | Invoices, customers, payments |
| AP | Bills, vendors, payments |
| Treasury | Cash positions and linked accounts |
| FX Rates | Exchange rate management |
| FX Revaluation | Period-end currency revaluation |
| Rule Packs | DSL posting rules |
| Reconciliation | Transaction matching and confirmation |
| Anomalies | AI-powered anomaly detection and review |
| Auth | User registration and email verification |
| Team | Team members and invitations |
| API Keys | Programmatic API key management |
| Compliance | GDPR data export, erasure, consent |
| Integrations | Plaid bank linking and sync |
| Billing | Stripe checkout and subscriptions |
| Notifications | In-app notification management |
| Payroll | Payroll runs, employees, calculator, tax forms |
| Inventory | Inventory items, lots, transactions, counts, valuation |
| Fixed Assets | Asset register, depreciation, disposal |
| Loans | Loan instruments and amortization |
| Leases | Lease accounting (ASC 842 / IFRS 16) |
| Contracts | Revenue contracts (ASC 606 / IFRS 15) |
| Exchange | Receivables exchange marketplace |
| Dimensions | Segment and dimension tagging |
| Subledgers | Subledger management and drill-down |
| Consolidation | Multi-entity consolidation |
| Intercompany | Intercompany transactions |
| Close Calendar | Period-end close templates and tasks |
| Approval Policies | Multi-level approval workflows |
| Accruals | Accrual schedule management |
| Waterfall | Fund waterfall distributions |
| Documents | Document upload and management |
| Comments | Threaded comments and reactions |
| Audit Log | Immutable audit trail queries |
| Cost Categories | Cost classification and reports |
| Tax Rates | Tax rate tables and tax reports |
| Payment Intents | Payment intents and file generation |
| Settlements | Settlement recording and batches |
| Webhook Subscriptions | Outbound webhook configuration |
| Address Book | Counterparties and contacts |
| Practice | Practice management dashboard |
| Partner | Partner program and client management |
| Privacy | Shielded transfers and ZK proofs |
| Import Batches | Bulk data import |
| Connections | Provider connections and sync |
| Categorization | Transaction matching patterns |
| Tax Lots | Crypto/investment tax lot tracking |
Rate Limits
API requests are rate-limited per API key. Current limits:
- 100 requests/minute for read endpoints (GET)
- 30 requests/minute for write endpoints (POST/PUT/PATCH/DELETE)
Rate limit headers are included in every response:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1709164800Errors
All errors return a JSON body with an error field:
{ "error": "Entity not found" }| Status | Meaning |
|---|---|
400 | Bad request — missing or invalid parameters |
401 | Unauthorized — missing or invalid credentials |
404 | Not found — resource doesn't exist |
429 | Rate limited — too many requests |
500 | Server error — unexpected failure |