# Oatmilk developer docs

> Build on Oatmilk: the REST API, webhooks, MCP for AI assistants, the command line, self-hosting, guides and tutorials.

Oatmilk runs a company's finance and operations: transactions, receipts, bank matching, invoices, contractors, agreements, compliance and AI-assisted review. Everything the Oatmilk app does is an action you can call: 793 company actions and 44 contractor actions, 53 webhook events, and an MCP server for AI assistants.

## Pages

- [Quickstart](https://app.getoatmilk.com/docs/quickstart.md): Get an API key, read your books and add a receipt in about five minutes.
- [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](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.
- [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.
- [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.
- [Contractor API](https://app.getoatmilk.com/docs/contractors.md): Let contractors log hours, submit timesheets and read their pay from their own tools.
- [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 company records and files](https://app.getoatmilk.com/docs/tutorials/export-company-data.md): Download your company's database records and stored files, and understand what closing removes.
- [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-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. (44 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. (109 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)
