# Oatmilk > Oatmilk is a company operations platform for finance and accounting, receipts and bank reconciliation, invoices, people and contractors, agreements and e-signatures, compliance deadlines and AI-assisted review. Everything the Oatmilk app does is an action that integrations can call over a REST API or MCP, with the same permissions as the person behind them. - REST API: `POST https://app.getoatmilk.com/api/v1/accounting/` with `Authorization: Bearer `; read actions also accept GET. Responses are `{ "data": … }` or `{ "error": { "code", "message" } }`. - 779 company actions and 43 contractor actions (`/api/v1/contractor/`), 53 webhook events signed with HMAC-SHA256, and an MCP server at https://app.getoatmilk.com/api/mcp. - Amounts are whole numbers of cents written as strings with a currency; writes take an idempotency key, and edits take the record's `expectedRevision`. - API contract version 2026-09-22. ## Oatmilk the product - [Home](https://getoatmilk.com/index.md): What Oatmilk is and every page of the site. - [Classifier](https://getoatmilk.com/classifier.md): Each bank and card line runs through rules, memory, receipts and Jev. Oatmilk sorts it only when it's sure, and asks you one question when it isn't. - [Evidence matching](https://getoatmilk.com/evidence.md): Oatmilk reads receipts from your company's inboxes and matches each one to its charge. It asks you when it isn't sure and keeps the original. - [Bookkeeping](https://getoatmilk.com/bookkeeping.md): Bank, card, Wise and Stripe charges come in and get sorted. Oatmilk asks you only when it isn't sure. - [Compliance](https://getoatmilk.com/stay-compliant.md): Ask any rules question and get an answer with official sources. Guides, deadlines and rule changes for your company, in one place. - [Invoices](https://getoatmilk.com/invoices.md): Make an invoice in a minute, send it, and see when it's opened and paid. - [Agreements](https://getoatmilk.com/agreements.md): Write an agreement, send it to sign on any device, and keep every signed copy with a full record. - [Contractors](https://getoatmilk.com/contractors.md): Contractors send hours from their own portal. You approve with a tap, pay with Wise and get tax slips at year-end. - [Tax](https://getoatmilk.com/tax.md): Year-end for Canadian companies, one plain question at a time. T2, GST/HST and T4A work, ready for your accountant. - [Ask AI](https://getoatmilk.com/ask-ai.md): Ask a question about your company and get a straight answer. Ask AI reads your books and asks before it changes anything. - [Accountants](https://getoatmilk.com/accountants.md): Invite your accountant to see the books and help with year-end. You pick what they can do and when it ends, and every action is on the record. - [Run it locally](https://getoatmilk.com/local.md): Run Oatmilk on your own computer with the CLI and the web portal, or choose where each part runs: this computer, the cloud, or off. - [Local models](https://getoatmilk.com/local-models.md): Run Ask AI, the classifiers and document reading on Ollama, LM Studio or any OpenAI-compatible server. Mix local and cloud by role. - [CLI](https://getoatmilk.com/cli.md): Oatmilk in your terminal: every page one keypress away, Ask AI built in, and themes that work in light and dark terminals. - [AI connectors](https://getoatmilk.com/mcp.md): Connect Claude, ChatGPT, Cursor, Codex and more to Oatmilk. Your AI can do what you can do, and nothing more. ## Get started - [Overview](https://app.getoatmilk.com/docs.md): Build on Oatmilk: the REST API, webhooks, MCP for AI assistants, the command line, self-hosting, guides and tutorials. - [Quickstart](https://app.getoatmilk.com/docs/quickstart.md): Get an API key, read your books and add a receipt in about five minutes. ## Concepts - [Authentication](https://app.getoatmilk.com/docs/authentication.md): API keys, sign-in tokens, permissions, roles and choosing a company. - [Making requests](https://app.getoatmilk.com/docs/requests.md): Addresses, methods, the response envelope, headers and size limits. - [Errors](https://app.getoatmilk.com/docs/errors.md): Error codes, what they mean, and which ones are safe to retry. - [Idempotency and revisions](https://app.getoatmilk.com/docs/idempotency.md): Retry without doing things twice, and never overwrite someone else's change. - [Pagination](https://app.getoatmilk.com/docs/pagination.md): Read long lists a page at a time with offsets or cursors. - [Rate limits](https://app.getoatmilk.com/docs/rate-limits.md): How many requests you can send and what to do when you hit the limit. - [Money, dates and IDs](https://app.getoatmilk.com/docs/money-and-dates.md): How amounts, currencies, dates and record IDs are written. - [Background jobs](https://app.getoatmilk.com/docs/async-work.md): Work that takes longer than a request, and how to know when it's done. - [Versioning and changes](https://app.getoatmilk.com/docs/versioning.md): How the API changes, and how you'll know. - [Usage and the request log](https://app.getoatmilk.com/docs/usage.md): See how your integrations are doing, and find any request by its ID. - [Budgets and reserves](https://app.getoatmilk.com/docs/budgets.md): Plan spending and prepare for tax payments and year-end costs. ## Webhooks - [Webhooks](https://app.getoatmilk.com/docs/webhooks.md): Get a signed HTTPS request the moment something happens in Oatmilk. - [Verify signatures](https://app.getoatmilk.com/docs/webhooks/signatures.md): Check that a delivery came from Oatmilk and wasn't changed on the way. - [Event catalog](https://app.getoatmilk.com/docs/webhooks/events.md): Every event Oatmilk sends, with a sample of each delivery. - [Test your endpoint](https://app.getoatmilk.com/docs/webhooks/testing.md): Send test events, replay deliveries and develop on your own computer. ## AI and MCP - [Connect your AI app](https://app.getoatmilk.com/docs/connect.md): Use Oatmilk from Claude, ChatGPT and other AI apps. No code needed. - [MCP server](https://app.getoatmilk.com/docs/mcp.md): Connect Claude, ChatGPT, Cursor and other MCP clients and agents to a company's books, safely. - [Docs for AI tools](https://app.getoatmilk.com/docs/ai-tools.md): Plain-text versions of these docs for language models, agents and coding assistants. ## Command line - [The Oatmilk CLI](https://app.getoatmilk.com/docs/terminal.md): Oatmilk in a terminal: a full-screen app, Ask AI, scripts, CI and a bridge for AI agents. - [Install the CLI](https://app.getoatmilk.com/docs/terminal/install.md): Install oatmilk with one command, npm, a standalone binary or from source, and keep it up to date. - [Sign in and choose a company](https://app.getoatmilk.com/docs/terminal/sign-in.md): Connect the CLI to the hosted Oatmilk or your own, with your browser, another device or an API key. - [Use the full-screen app](https://app.getoatmilk.com/docs/terminal/app.md): Move around the workspace, act on records and talk to Ask AI without leaving the terminal. - [Log hours as a contractor](https://app.getoatmilk.com/docs/terminal/hours.md): Log time, send your timesheet and check your pay period from the terminal or your AI app. - [Scripts and CI](https://app.getoatmilk.com/docs/terminal/scripts.md): Ask AI, run API actions and search from scripts, cron jobs and CI, with JSON output and exit codes. - [Connect agents through the CLI](https://app.getoatmilk.com/docs/terminal/agents.md): Give Claude Code, Codex, Cursor or an agent on local models Oatmilk's tools with oatmilk mcp. - [Command reference](https://app.getoatmilk.com/docs/terminal/commands.md): Every oatmilk command, option, environment variable, exit code and file. ## Contractors - [Contractor API](https://app.getoatmilk.com/docs/contractors.md): Let contractors log hours, submit timesheets and read their pay from their own tools. ## Tutorials - [Add receipts from your app](https://app.getoatmilk.com/docs/tutorials/add-receipts.md): Upload receipts of any size with a private upload link, then follow them until they're filed. - [Sync invoices to your CRM](https://app.getoatmilk.com/docs/tutorials/sync-invoices-to-a-crm.md): Keep deal stages in step with invoices using signed webhooks. - [Post deadline reminders to Slack](https://app.getoatmilk.com/docs/tutorials/compliance-alerts-in-slack.md): Turn compliance events into a message your team sees. - [Export a month of transactions](https://app.getoatmilk.com/docs/tutorials/export-transactions.md): Page through entries and write a spreadsheet your accountant can open. - [Chase missing receipts](https://app.getoatmilk.com/docs/tutorials/missing-receipts.md): Find card purchases that still need a receipt and attach one in a single call. - [Log contractor hours from a time tracker](https://app.getoatmilk.com/docs/tutorials/contractor-timesheets.md): Send time entries to a contractor's timesheet and submit it for approval. - [Download all of your company's data](https://app.getoatmilk.com/docs/tutorials/export-company-data.md): Take every record and file Oatmilk keeps for your company, and close the company when you're done. - [Record an intercompany transfer](https://app.getoatmilk.com/docs/tutorials/intercompany-transfers.md): Preview and save an advance or repayment against an existing bank transfer, with sources and a readback. ## Self-hosting - [Self-host Oatmilk](https://app.getoatmilk.com/docs/self-hosting.md): Run your own Oatmilk on your computer, a server or a cloud, with your data and AI models staying with you. - [Run it on your computer](https://app.getoatmilk.com/docs/self-hosting/your-computer.md): Install Oatmilk on your own Mac, Linux or Windows computer, step by step, at oatmilk.localhost. - [Use local AI models](https://app.getoatmilk.com/docs/self-hosting/local-models.md): Run every model Oatmilk uses on your own hardware with Ollama, LM Studio, vLLM or llama.cpp. - [Go completely off-grid](https://app.getoatmilk.com/docs/self-hosting/off-grid.md): A 100% local Oatmilk: accounts, books, files and AI models on one machine, even with no internet. - [Run it on a server](https://app.getoatmilk.com/docs/self-hosting/server.md): Host Oatmilk for your team on a VPS or your own server at your domain, with HTTPS from Let's Encrypt. - [Deploy on AWS](https://app.getoatmilk.com/docs/self-hosting/aws.md): Run Oatmilk on EC2 with Amazon RDS for PostgreSQL, ElastiCache and S3, step by step. - [Deploy on Google Cloud](https://app.getoatmilk.com/docs/self-hosting/google-cloud.md): Run Oatmilk on Compute Engine with Cloud SQL, Memorystore and Cloud Storage, step by step. - [Deploy on Azure](https://app.getoatmilk.com/docs/self-hosting/azure.md): Run Oatmilk on an Azure VM with Azure Database for PostgreSQL and Azure Cache for Redis, step by step. - [Bring your own services](https://app.getoatmilk.com/docs/self-hosting/services.md): Use your own PostgreSQL, Redis and S3-compatible storage, such as Neon, Upstash, Cloudflare R2 or MinIO. - [Sign-in and accounts](https://app.getoatmilk.com/docs/self-hosting/accounts.md): Choose how people sign in to your Oatmilk, who may make an account, and how to manage accounts. - [Update, back up and troubleshoot](https://app.getoatmilk.com/docs/self-hosting/operate.md): Keep a self-hosted Oatmilk healthy: updates, backups, restores, logs, security and common fixes. - [Run it without Docker](https://app.getoatmilk.com/docs/self-hosting/without-docker.md): Run Oatmilk's processes directly on a Linux machine, with PostgreSQL, PostgREST, Storage, Redis and Caddy. - [Develop Oatmilk locally](https://app.getoatmilk.com/docs/self-hosting/develop.md): Run Oatmilk from source with hot reload, local data services and, if you like, local AI models. ## API reference - [Transactions](https://app.getoatmilk.com/docs/api/transactions.md): Entries, bank and card lines, categories, tags, accounts, reconciliation and statements. (115 actions) - [Inbox and uploads](https://app.getoatmilk.com/docs/api/inbox.md): Receipts, file uploads, company mail, connected inboxes and processing jobs. (56 actions) - [Matching](https://app.getoatmilk.com/docs/api/matching.md): Match receipts to bank transactions and review the decisions. (11 actions) - [Autopilot](https://app.getoatmilk.com/docs/api/autopilot.md): What needs a person, Autopilot runs, receipt reminders and the investigator. (30 actions) - [Invoicing](https://app.getoatmilk.com/docs/api/invoicing.md): Invoices, customers and vendors, and how they pay. (50 actions) - [Documents and signing](https://app.getoatmilk.com/docs/api/documents.md): Agreements, e-signatures and kept records such as tax returns. (60 actions) - [Contractors](https://app.getoatmilk.com/docs/api/contractors.md): The finance side of contractors: directory, timesheets, payouts and recruiting. (144 actions) - [Contractor portal](https://app.getoatmilk.com/docs/api/contractor.md): A contractor's own hours, pay, agreements and profile, with a contractor sign-in. (43 actions) - [Reports and tax](https://app.getoatmilk.com/docs/api/reports.md): Reports, exports, insights, subscriptions and tax preparation. (75 actions) - [Compliance](https://app.getoatmilk.com/docs/api/compliance.md): The compliance checklist, deadlines and reminders. (10 actions) - [Stripe](https://app.getoatmilk.com/docs/api/stripe.md): Stripe activity, payouts, exceptions and tax confirmation. (14 actions) - [Connectors and webhooks](https://app.getoatmilk.com/docs/api/connectors.md): Webhooks, Wise, Notion, Google Drive and other data sources. (59 actions) - [AI and memory](https://app.getoatmilk.com/docs/api/ai.md): AI settings, classifier guidance, memory, the sandbox and compliance research. (45 actions) - [Administration](https://app.getoatmilk.com/docs/api/admin.md): Company settings, people, API keys, email, runs and suggestions. (95 actions) - [History and rollback](https://app.getoatmilk.com/docs/api/history.md): Every change anyone made to the company, who made it and how, and previewed rollbacks. (7 actions) - [Budgets and reserves](https://app.getoatmilk.com/docs/api/budgets.md): Spending plans, tax and accountant costs, reserve accounts and funding gaps before filing. (8 actions) ## Machine-readable - [/llms.txt](https://app.getoatmilk.com/llms.txt): A short map of Oatmilk and every docs page, with links to their Markdown. - [/llms-full.txt](https://app.getoatmilk.com/llms-full.txt): Every guide and tutorial, the webhook event catalog and a summary of every API action, in one file. - [/docs/api/llms.txt](https://app.getoatmilk.com/docs/api/llms.txt): The whole API reference: every action with its permissions, fields and an example. - [/docs/webhooks/llms.txt](https://app.getoatmilk.com/docs/webhooks/llms.txt): The webhook guides with every event's sample delivery. - [/docs/terminal/llms.txt](https://app.getoatmilk.com/docs/terminal/llms.txt): Every guide to the oatmilk command line, with its command reference. - [/docs/self-hosting/llms.txt](https://app.getoatmilk.com/docs/self-hosting/llms.txt): Every self-hosting guide: your computer, a server, the clouds, local AI models and operations. - [/api/openapi.json](https://app.getoatmilk.com/api/openapi.json): The OpenAPI 3.1 document, including webhooks. - [MCP server](https://app.getoatmilk.com/api/mcp): Streamable HTTP; sign in with OAuth or send an API key. ## Optional - [Oatmilk](https://getoatmilk.com): the product. - [Every error code](https://app.getoatmilk.com/docs/errors.md#every-error-code): generated from the source.