[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Minuba API and MCP server: Let your AI agent run your Minuba orders.

> Minuba has an official REST API, but Minuba issues the API key on request and there is no MCP server (checked 31 Oct 2026). Cotlet runs 14 Minuba tools hosted, over MCP for agents and REST for scripts, with no key from Minuba.

Orders, clients, time entries, materials and invoices from your Minuba account. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

[MCP setup](https://cotlet.dev/integrations/minuba-api-mcp-server.md#connect)
[REST API guide](https://cotlet.dev/integrations/minuba-api-mcp-server.md#rest-api)

- Free 7-day trial, no card
- Unofficial, not affiliated with Minuba
- Page: https://cotlet.dev/integrations/minuba-api-mcp-server

## What can you automate in Minuba?

- Check started and delayed orders
- Find missing time registrations
- Log time and materials from a message
- Send invoices for finished work
- Turn an inquiry into a client and order
- Follow up service agreements

## Does Minuba have an MCP server or an API?

- The API key comes from integrationer@minuba.dk after you explain who you are and what for. A user auth key then comes from Administration > Users in your account.
- The documentation lists 41 resources: orders, clients, time entries, expense lines, invoices and more. Its invoice methods approve, export and return the PDF. None sends an invoice, and service agreements are not in it.
- Minuba's integrations page names no Zapier, Make or n8n connector, and no Minuba MCP server turned up on GitHub or npm.

| What you need | Official API | Your own HTTP steps | Cotlet |
|---|---|---|---|
| Read orders, clients and time | Yes, with a key | If you build it | Yes |
| Log time and materials | Yes, with a key | If you build it | Yes |
| Send an invoice to the client | Not documented | No | Yes, after your OK |
| Service agreements | Not documented | No | Yes |
| Start without asking Minuba | Needs approval | Needs approval | Yes, sign in once |

Checked 31 Oct 2026. Sources: [Minuba support: Minuba API](https://minuba.dk/support/minuba-api/), [Minuba API documentation](https://minuba.dk/api), [Minuba support: user settings, API and auth key](https://minuba.dk/support/udvidede-bruger-indstillinger-api-kalender-synkronisering/), [Minuba integrations](https://minuba.dk/integrationer/)

## How does Cotlet connect to Minuba?

1. **Sign in to Minuba.** Use your own account in its Cotlet Cloud Browser.
2. **Choose MCP or REST.** Connect your agent or create a Cotlet API key.
3. **Run your workflow.** Ask your agent or send an HTTP request.

We never keep your Minuba password, and no invoice reaches a client until you approve it.

## Connect Minuba to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

1. **Enable Minuba for agents.** Sign up, log in to Minuba in its Cloud Browser, then press Enable for agents.
2. **Paste the Cotlet address.** Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
3. **Approve the connection.** Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, `https://cotlet.dev/mcp/v1`, also carries Minuba next to your other apps. If you enable Minuba after connecting, refresh the connector so the new tools show up.

Claude:

```
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-minuba \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

ChatGPT:

```
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
```

Cursor:

```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-minuba": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
```

Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet-minuba]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

n8n:

```
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: minuba_read
```

Make, Zapier:

```
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: minuba_write
```

## How to use the Minuba REST API

### Create your Cotlet API key

Create a Cotlet API key with access to Minuba and its read operations. Store it as `COTLET_API_KEY` in your environment or automation platform's credential store.

Connect Minuba in Cotlet and enable it for agents. Account access: your own Minuba user (an administrator or billing user for invoices and clients). Tools follow what that user and your plan can see.

### Make your first Minuba API request

REST:

```
curl "https://cotlet.dev/api/v1/minuba/orders?state=delayed" \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

### Read delayed orders and continue the list

A successful REST call puts the tool output in `result`. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt:

```
{
  "status": "success",
  "app": "minuba",
  "tool": "list_orders",
  "result": {
    "orders": [
      {
        "order_id": "ord_20411",
        "order_number": 20411,
        "name": "Varmepumpe, Skovvej 12",
        "client": "Skovvej Boligforening",
        "state": "delayed",
        "pending_date": "2026-10-28",
        "pending_note": "Waiting for supplier"
      }
    ],
    "next_cursor": null
  }
}
```

Returns orders in the chosen state with client, number and the pending date and note when set. Valid states are `proposal_draft`, `proposal`, `order_draft`, `new`, `started`, `delayed`, `completed`, `closed` and `rejected`.

Without `all_employees`, the list covers what your Minuba user is assigned to or may see.

Pass `next_cursor` unchanged as `cursor` until it is null, keeping the same `state` while paging.

Keep order IDs in your workflow and compare state and pending date on each run, because an existing order can change state.

### Minuba workflows for agents and automations

| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Run `list_orders` with `state=completed` and `list_invoices` with `state=draft` each Friday to prepare an invoice review sheet. |
| Make | HTTP > Make a request | Read last week's hours with `list_timesheet_entries` and compare them with `list_users` to flag employees with no entries. |
| Python or Node.js | REST API | Call `register_time` for each row of a daily CSV of hours. Deleting a wrong entry stays a manual step in Minuba. |

Send `Authorization: Bearer <your Cotlet API key>` in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Minuba; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The [API and MCP reference](https://cotlet.dev/integrations/minuba-api-mcp-server.md#tools) lists operations and inputs. The [REST API guide](https://cotlet.dev/docs/api.md) explains authentication, errors and approvals.

## Minuba API endpoints and MCP tools

### Orders, clients and employees

Reads show what your Minuba user may see. A draft order or a new client reaches no one.

- **List orders** (`list_orders`, read): Orders and quotes with number, client, state and the date it is pending until.
- **Get order** (`get_order`, read): One order with client, address, state, employees, pending note and totals.
- **List clients** (`list_clients`, read): Clients from the customer register with number, CVR and contact details.
- **List employees** (`list_users`, read): Employees with their user type, for time checks and assigning work.
- **Create client** (`create_client`, write): Add a client to the customer register.
- **Create order draft** (`create_order`, write): Open an order or quote draft for a client. Nothing is sent to the client.

### Time, materials and documentation

Time follows the 15 or 30 minute interval of your company settings. Files are listed by name, never downloaded.

- **List time entries** (`list_timesheet_entries`, read): Registered time per employee and day, with order, work type and note.
- **Register time** (`register_time`, write): Log hours on an order, or as non-order time, for an employee.
- **List order materials** (`list_order_materials`, read): Material lines registered on an order, with quantity and whether they are left off the invoice.
- **Register material** (`register_material`, write): Add a material line to an order from your material list.
- **List order documentation** (`list_order_documents`, read): Photos and files on an order with folder, uploader and who can see them.

### Invoices and service agreements

Sending an invoice is the one call a client hears about. Service agreements need that module on your account.

- **List invoices** (`list_invoices`, read): Invoices with order, state, total and whether they went to the accounting system.
- **Send invoice** (`send_invoice`, write, asks first): Send an invoice to the client by email or EAN.
- **List service agreements** (`list_service_agreements`, read): Recurring service agreements with client, interval and next visit.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/minuba-api-mcp-server#tools

## Who can see my Minuba session, and how do I revoke it?

- **What we store.** Your logged-in Minuba profile, encrypted with AES-256-GCM, in Finland. Not the password.
- **What your agent gets.** The 14 Minuba tools. Never the cookie or your password.
- **What the session sees.** What your Minuba user sees: orders, clients, hours, invoices.
- **What no tool touches.** Users, rights, plan, password, payments and deleting.
- **If Minuba asks to verify.** You sign in again yourself. We never type your password.
- **How to cut access.** Disable for agents, reset the browser, or change your Minuba password.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory ([live results](https://cotlet.dev/security.md)). There is no SOC 2 report or third-party pentest yet.

## Is it against Minuba's terms? Account safety

> The customer may under no circumstances hand over Minuba or related material to a third party, unless a separate written agreement exists.
>
> [Minuba PRO terms, version 12, section on ownership (our translation from Danish)](https://minuba.dk/wp-content/uploads/2026/09/DK_PRO-vilkar_version_12.pdf)

The PRO terms have no clause on bots, scraping or AI agents. Minuba could still read the clause above broadly, and it may end an agreement with immediate effect for a breach. Cotlet works in your own session through the Minuba web app. We found no public case of a Minuba account closed for automation (checked 31 Oct 2026).

How we keep your account looking like you:

- Your own Minuba user, logged in by you
- One Cloud Browser with its own IP and cookies
- Invoices wait for your OK
- No tool deletes an order, client, invoice or time entry
- If Minuba objects, we pause the Minuba tools for everyone within 24 h

> Ask Minuba for the official API key if you need an integration its terms bless. Cotlet suits you when you want results now and without code.

## What happens when Minuba changes?

- **12 h** between tests of the Minuba reads and drafts
- **24 h** between tests of the invoice a client would get
- **$0** for a call to a Minuba tool paused for repair

When Minuba moves a button or renames a field, the fix happens on our side and your prompts keep working. Minuba also updates monthly, usually on the second Thursday evening, according to its terms. [status.cotlet.dev](https://status.cotlet.dev) watches the site, console and API every 3 minutes.

## Approvals, undo and mistakes

1. **Finds finished orders.** Lists completed orders with no sent invoice.
2. **Reads the drafts.** Shows each invoice with its total and client.
3. **Waits for your OK.** Each send shows up in your Cotlet console first.
4. **Reports what went out.** Invoice number, channel, recipient and total.

| Action | Undo |
|---|---|
| Create a client or order draft | Delete it in Minuba |
| Register time | Delete or edit the entry |
| Register material | Delete the line on the work slip |
| Send an invoice | No, the client has it; an approved invoice is locked, so credit it |

1 of 14 tools ask first: send_invoice, the one that reaches a client and asks for money. Drafts, time and material lines reach nobody, so they run at once. Switch the wait off per tool for a scheduled run.

> Time you register can reach the customer invoice, because the note may be copied onto it depending on your company settings.

MCP call:

```
{
  "name": "register_time",
  "arguments": {
    "order_id": "ord_20418",
    "date": "2026-10-31",
    "start_time": "08:00",
    "end_time": "14:00",
    "work_type": "Montering",
    "note": "Fuger og silikone"
  }
}
```

REST:

```
curl -X POST https://cotlet.dev/api/v1/minuba/times \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"order_id":"ord_20418","date":"2026-10-31","start_time":"08:00","end_time":"14:00","work_type":"Montering","note":"Fuger og silikone"}'
```

Tool output:

```
{
  "entry_id": "te_90340",
  "order_number": 20418,
  "date": "2026-10-31",
  "hours": 6,
  "work_type": "Montering",
  "note": "Fuger og silikone"
}
```

Scripts and cron jobs reach the same tools over REST at `/api/v1/minuba`, with the same key and price. A tool for a module your Minuba account lacks fails, and a failed call costs nothing. The tools table lists the REST path of each tool.

## How much does the Minuba MCP server cost?

**About $23 a month** for a small firm with about 25 orders a month, 3,900 credits. Your Minuba plan is billed by Minuba as before.

| Job | Calls | Credits |
|---|---|---|
| Daily check of started and delayed orders | 3 × 22 | 660 |
| Weekly check for missing time entries | 2 × 4 | 80 |
| Log time and material from a message | 3 × 40 | 1,200 |
| Weekly invoice run, 5 invoices | 7 × 4 | 280 |
| Inquiry to client and order draft | 3 × 6 | 180 |
| Cloud Browser, 30 days |  | 1,500 |
| Total |  | 3,900 |

- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- Works on Minuba GO and PRO

The month is our example: a small firm with about 25 orders, 6 new inquiries and a weekly invoice run of 5. Minuba PRO starts at 289 kr per administrative user a month ex VAT, and Minuba GO is free for up to two users (minuba.dk, 31 Oct 2026). Dollars at the $29 pack rate.

## Minuba MCP server on GitHub, Zapier or hosted: which to use

| Option | What it does | Where it stops |
|---|---|---|
| [Minuba API](https://minuba.dk/support/minuba-api/) | Official REST API, 41 resources, per-user auth key. | Minuba issues the API key on request. It cannot send an invoice or read service agreements. |
| [becomejgj/minuba-proxy](https://github.com/becomejgj/minuba-proxy) | A small proxy that sends Squarespace form data to the Minuba API. | 0 stars, last commit 29 Jul 2025. One job, and it needs the API key. |
| Zapier, Make, n8n | Generic HTTP steps can call the official API. | No Minuba connector is listed. You build every call and still need the key. |
| Other order systems | Tools with an open API or built-in automation. | You move your orders and history off Minuba. |

There is no Minuba MCP server on GitHub or npm and no hosted one besides ours. If Minuba grants you the API key, a script on the official API is the leaner way to read orders and log time. Cotlet fits when you do not have the key, want an agent without code, or need the invoice send.

## Who runs Cotlet

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Minuba tools.

## Minuba API and MCP: questions

### How do I get access?

Create a free account at https://cotlet.dev, open Minuba under Integrations in the console and log in to Minuba in its Cloud Browser. The trial starts with your first app, no card asked.

### How do I connect Minuba to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Minuba once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Minuba account through Cotlet, in their phone apps too.

### What can ChatGPT do in Minuba?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Minuba: check which orders are started or delayed; find employees with missing time registrations; log time and materials from a message. You ask in plain words, and anything that reaches other people waits for your OK first.

### Which Minuba plan do I need?

Cotlet works in your own account, so the tools follow what your plan includes (checked 31 Oct 2026). Minuba lists service agreements, quotes and reminder handling under the administrative user of Minuba PRO, and Minuba GO is free for up to two users with order management and invoicing. Tools for a module your account lacks fail, and a failed call costs nothing.

### Which rights does the agent have?

Those of the Minuba user you sign in with. Minuba has an administrator and a billing role, so use one of them for invoice and client tools. A user without price access sees orders without prices.

### Does Minuba have webhooks?

Not in its API documentation (checked 31 Oct 2026). Nothing tells an agent that an order changed, so run your agent on a schedule, for example a daily list_orders pass.

### Do I need the official Minuba API key?

No. Cotlet works in your signed-in Minuba session, so you need no API key from Minuba and no auth key. If you want the official API, Minuba issues the key on request at integrationer@minuba.dk.

### Is the MCP server different from the REST API?

Only the door is different. Both expose the same 14 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

### Is Cotlet affiliated with Minuba?

No. Cotlet is independent and not affiliated with Minuba ApS.

### Can I use the Minuba API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
