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

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.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Minuba
Minuba logo Minuba Cloud Browser

14 tools Read and write

Order to invoice

What can you automate in Minuba? Use an AI agent, a workflow or a script.

  • 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

API on request

Does Minuba have an MCP server or an API? An API yes, by request. No MCP server.

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.

  • 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.
Minuba's official API, an HTTP step in your workflow tool and Cotlet compared
What you need Official APIYour own HTTP stepsCotlet
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 · Minuba API documentation · Minuba support: user settings, API and auth key · Minuba integrations

Set up once

How does Cotlet connect to Minuba? One account, two ways to connect.

  1. 1Sign in to Minuba

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run 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. Who can see your session

Any MCP client

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. 1

    Enable Minuba for agents. Sign up, log in to Minuba in its Cloud Browser, then press Enable for agents.

  2. 2

    Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 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
Scripts and HTTP

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

Minuba workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRun list_orders with state=completed and list_invoices with state=draft each Friday to prepare an invoice review sheet.
MakeHTTP > Make a requestRead last week's hours with list_timesheet_entries and compare them with list_users to flag employees with no entries.
Python or Node.jsREST APICall 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 lists operations and inputs. The REST API guide explains authentication, errors and approvals.

9 read, 5 write

Minuba API endpoints and MCP tools

Orders, clients and employees6

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

  • list_orders Orders and quotes with number, client, state and the date it is pending until. read

    Lists orders and quotes. Filter by state, order number or last change. Returns the number, name, client, state, assigned employees and the pending date and note when one is set. Nothing is changed.

    MCP callminuba_read → list_orders

    REST endpointGET https://cotlet.dev/api/v1/minuba/orders

    Parameters

    Parameters: list_orders
    NameTypeDescription
    state string string One of proposal_draft, proposal, order_draft, new, started, delayed, completed, closed, rejected.
    order_number integer integer Exact order number.
    updated_after date date Only orders changed on or after this date.
    all_employees boolean boolean Include orders assigned to other employees. Needs a role that can see them.
    cursor string string Next page cursor from the previous call.

    Example response

    {
      "orders": [
        {
          "order_id": "ord_20418",
          "order_number": 20418,
          "name": "Badeværelse hos Hansen",
          "client": "Familien Hansen",
          "state": "started",
          "pending_date": null
        },
        {
          "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
    }
  • get_order One order with client, address, state, employees, pending note and totals. read

    Returns one order as its work slip shows it: client and address, state, assigned employees, the pending date and note, and the hours and material lines registered so far. Prices are left out for a user without price access. Nothing is changed.

    MCP callminuba_read → get_order

    REST endpointGET https://cotlet.dev/api/v1/minuba/orders/{order_id}

    Parameters

    Parameters: get_order
    NameTypeDescription
    order_id string required string Order ID from list_orders.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "ord_20418",
      "order_number": 20418,
      "name": "Badeværelse hos Hansen",
      "client": "Familien Hansen",
      "address": "Egevej 7, 2800 Kongens Lyngby",
      "state": "started",
      "employees": [
        "Jens Madsen",
        "Ali Yilmaz"
      ],
      "hours_registered": 31.5,
      "material_lines": 9
    }
  • list_clients Clients from the customer register with number, CVR and contact details. read

    Searches the customer register by client number or CVR (org number) and returns name, address, email and phone. Use it before create_client to avoid a duplicate. Nothing is changed.

    MCP callminuba_read → list_clients

    REST endpointGET https://cotlet.dev/api/v1/minuba/clients

    Parameters

    Parameters: list_clients
    NameTypeDescription
    client_number integer integer Exact client number.
    org_number string string CVR number.
    updated_after date date Only clients changed on or after this date.

    Example response

    {
      "clients": [
        {
          "client_id": "cli_3302",
          "client_number": 3302,
          "name": "Skovvej Boligforening",
          "org_number": "29384756",
          "email": "bestyrelse@skovvej.example",
          "phone": "+45 31 00 00 01"
        }
      ]
    }
  • list_users Employees with their user type, for time checks and assigning work. read

    Lists the users of the company with name and user type (administrative, limited or resource). Use the IDs with list_timesheet_entries. Nothing is changed.

    MCP callminuba_read → list_users

    REST endpointGET https://cotlet.dev/api/v1/minuba/users

    Parameters

    No parameters.

    Example response

    {
      "users": [
        {
          "user_id": "usr_11",
          "name": "Jens Madsen",
          "user_type": "resource"
        },
        {
          "user_id": "usr_12",
          "name": "Ali Yilmaz",
          "user_type": "limited"
        },
        {
          "user_id": "usr_01",
          "name": "Mette Holm",
          "user_type": "administrative"
        }
      ]
    }
  • create_client Add a client to the customer register. write

    Adds one client and returns its client_id and number. Check list_clients first so you do not create a duplicate. The client is told nothing. It reaches no one and is undone by deleting the client in Minuba, so it runs without asking.

    MCP callminuba_write → create_client

    REST endpointPOST https://cotlet.dev/api/v1/minuba/clients

    Parameters

    Parameters: create_client
    NameTypeDescription
    name string required string Client name.
    org_number string string CVR number for a company.
    email string string Contact email.
    phone string string Phone number.
    address string string Street, postcode and city.

    Example input

    {
      "name": "Jane Doe"
    }

    Example response

    {
      "client_id": "cli_3318",
      "client_number": 3318,
      "name": "Nordlys Tømrer ApS",
      "org_number": "12345678"
    }
  • create_order Open an order or quote draft for a client. Nothing is sent to the client. write

    Creates a draft for one client and returns the order_id and number. Choose a quote draft or an order draft. The draft stays in Minuba until someone approves it there. It reaches no one and is undone by deleting the draft, so it runs without asking.

    MCP callminuba_write → create_order

    REST endpointPOST https://cotlet.dev/api/v1/minuba/clients/{client_id}/orders

    Parameters

    Parameters: create_order
    NameTypeDescription
    client_id string required string Client ID from list_clients or create_client.
    name string required string Order name.
    kind string string proposal_draft or order_draft. Default: order_draft.
    description string string What the job is.

    Example input

    {
      "client_id": "client_8c41d2",
      "name": "Jane Doe"
    }

    Example response

    {
      "order_id": "ord_20431",
      "order_number": 20431,
      "name": "Tagreparation",
      "client": "Nordlys Tømrer ApS",
      "state": "proposal_draft"
    }

Time, materials and documentation5

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

  • list_timesheet_entries Registered time per employee and day, with order, work type and note. read

    Returns time entries of one employee or of everyone for a date range. Each entry shows whether it is order-related, not order-related or absence, the order it sits on, the work type and the note. Nothing is changed.

    MCP callminuba_read → list_timesheet_entries

    REST endpointGET https://cotlet.dev/api/v1/minuba/timesheet-entries

    Parameters

    Parameters: list_timesheet_entries
    NameTypeDescription
    user_id string string Employee ID from list_users. Leave out for all employees you may see.
    date_from date date First day.
    date_to date date Last day.

    Example response

    {
      "entries": [
        {
          "entry_id": "te_90311",
          "user": "Jens Madsen",
          "date": "2026-10-26",
          "hours": 7.5,
          "kind": "order",
          "order_number": 20418,
          "work_type": "Montering",
          "note": "Fliser i bad"
        },
        {
          "entry_id": "te_90312",
          "user": "Ali Yilmaz",
          "date": "2026-10-26",
          "hours": 8,
          "kind": "order",
          "order_number": 20418,
          "work_type": "Montering",
          "note": ""
        }
      ]
    }
  • register_time Log hours on an order, or as non-order time, for an employee. write

    Adds a time entry for the signed-in employee, or for another one if your role allows it. Give an order to make it order-related; leave the order out for non-order time. Times follow the 15 or 30 minute interval set in the company settings. The hours land on the work slip and in the invoice basis. It reaches no one and is undone by deleting the entry, so it runs without asking.

    MCP callminuba_write → register_time

    REST endpointPOST https://cotlet.dev/api/v1/minuba/times

    Parameters

    Parameters: register_time
    NameTypeDescription
    order_id string string Order ID from list_orders. Leave out for time not related to an order.
    date date required date Day of the work.
    start_time string required string Start, HH:MM.
    end_time string required string End, HH:MM.
    work_type string string Work type as your company set it up, for example Montering.
    note string string What was done. It can appear on the customer invoice, depending on your settings.
    user_id string string Employee ID from list_users. Default: the signed-in user.

    Example input

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

    Example response

    {
      "entry_id": "te_90340",
      "order_number": 20418,
      "date": "2026-10-31",
      "hours": 6,
      "work_type": "Montering",
      "note": "Fuger og silikone"
    }
  • list_order_materials Material lines registered on an order, with quantity and whether they are left off the invoice. read

    Returns the material registrations on one order: material number, description, quantity, who registered it and when, and whether the line is excluded from invoicing. Nothing is changed.

    MCP callminuba_read → list_order_materials

    REST endpointGET https://cotlet.dev/api/v1/minuba/order-materials

    Parameters

    Parameters: list_order_materials
    NameTypeDescription
    order_id string required string Order ID from list_orders.
    registered_after date date Only lines registered on or after this date.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_number": 20418,
      "lines": [
        {
          "material_no": "4410",
          "description": "Fugemasse, 310 ml",
          "quantity": 3,
          "registered_by": "Jens Madsen",
          "date": "2026-10-26",
          "excluded_from_invoice": false
        },
        {
          "material_no": "0001",
          "description": "Parkering",
          "quantity": 1,
          "registered_by": "Ali Yilmaz",
          "date": "2026-10-26",
          "excluded_from_invoice": true
        }
      ]
    }
  • register_material Add a material line to an order from your material list. write

    Adds a quantity of one material from your material list to the order. The line appears on the work slip and flows into the invoice draft unless the material is marked to stay off invoices. It reaches no one and is undone by deleting the line, so it runs without asking.

    MCP callminuba_write → register_material

    REST endpointPOST https://cotlet.dev/api/v1/minuba/orders/{order_id}/materials

    Parameters

    Parameters: register_material
    NameTypeDescription
    order_id string required string Order ID from list_orders.
    material_no string required string Material number from your material list.
    quantity number required number Amount used.

    Example input

    {
      "order_id": "order_8c41d2",
      "material_no": "material no",
      "quantity": 1
    }

    Example response

    {
      "order_number": 20418,
      "material_no": "4410",
      "description": "Fugemasse, 310 ml",
      "quantity": 3,
      "excluded_from_invoice": false
    }
  • list_order_documents Photos and files on an order with folder, uploader and who can see them. read

    Lists the files in the Documentation section of an order: file name, folder, uploader, upload date and who the file is visible to. It returns names and metadata, not the file content. Nothing is changed.

    MCP callminuba_read → list_order_documents

    REST endpointGET https://cotlet.dev/api/v1/minuba/order-documents

    Parameters

    Parameters: list_order_documents
    NameTypeDescription
    order_id string required string Order ID from list_orders.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_number": 20418,
      "files": [
        {
          "name": "vandskade-foer.jpg",
          "folder": "Før",
          "uploaded_by": "Jens Madsen",
          "date": "2026-10-24",
          "visible_to": "everyone"
        },
        {
          "name": "tegning-bad.pdf",
          "folder": "Tegninger",
          "uploaded_by": "Mette Holm",
          "date": "2026-10-22",
          "visible_to": "administrators and billing"
        }
      ]
    }

Invoices and service agreements3

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

  • list_invoices Invoices with order, state, total and whether they went to the accounting system. read

    Lists invoices as Minuba shows them: drafts, invoiced and credited. Returns the invoice number, order, client, total and the export status. Set not_exported to see only invoices not yet sent to the accounting system. Nothing is changed.

    MCP callminuba_read → list_invoices

    REST endpointGET https://cotlet.dev/api/v1/minuba/invoices

    Parameters

    Parameters: list_invoices
    NameTypeDescription
    state string string One of draft, invoiced, credited.
    order_id string string Only invoices of this order.
    not_exported boolean boolean Only invoices not yet exported to the accounting system.
    cursor string string Next page cursor from the previous call.

    Example response

    {
      "invoices": [
        {
          "invoice_id": "inv_7710",
          "invoice_number": 5521,
          "order_number": 20405,
          "client": "Skovvej Boligforening",
          "state": "draft",
          "net": 12000,
          "vat": 3000,
          "total": 15000,
          "currency": "DKK",
          "exported": false
        }
      ],
      "next_cursor": null
    }
  • send_invoice Send an invoice to the client by email or EAN. writeasks first

    Sends one invoice to the client by email or EAN, as the send action in Minuba does. The client receives it and is asked to pay. An approved invoice is locked in Minuba, so a mistake needs a credit note. By default you confirm each call; you can switch that off for this tool.

    MCP callminuba_write → send_invoice

    REST endpointPOST https://cotlet.dev/api/v1/minuba/invoices/{invoice_id}

    Parameters

    Parameters: send_invoice
    NameTypeDescription
    invoice_id string required string Invoice ID from list_invoices.
    channel string required string email or ean.
    message string string Note in the email.

    Example input

    {
      "invoice_id": "invoice_8c41d2",
      "channel": "channel"
    }

    Example response

    {
      "invoice_id": "inv_7710",
      "invoice_number": 5521,
      "status": "sent",
      "channel": "email",
      "sent_to": "bestyrelse@skovvej.example",
      "total": 15000,
      "currency": "DKK"
    }
  • list_service_agreements Recurring service agreements with client, interval and next visit. read

    Lists the service agreements, which act as templates for orders at fixed intervals. Returns the client, the interval, the responsible employee and the date of the next visit. Needs the service agreement module on your account. Nothing is changed.

    MCP callminuba_read → list_service_agreements

    REST endpointGET https://cotlet.dev/api/v1/minuba/service-agreements

    Parameters

    Parameters: list_service_agreements
    NameTypeDescription
    client_id string string Client ID from list_clients.
    due_before date date Only agreements with a next visit before this date.

    Example response

    {
      "agreements": [
        {
          "agreement_id": "sa_204",
          "client": "Skovvej Boligforening",
          "name": "Årligt serviceeftersyn varmepumpe",
          "interval": "yearly",
          "responsible": "Jens Madsen",
          "next_visit": "2026-11-18"
        }
      ]
    }
Encrypted, revocable

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). There is no SOC 2 report or third-party pentest yet.

Read the ownership clause

Is it against Minuba's terms? Account safety The terms say nothing about automation.

"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)

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.

Tested every 12 h

What happens when Minuba changes? We repair the tool; your prompts stay the same.

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

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 watches the site, console and API every 3 minutes.

1 tool asks first

Approvals, undo and mistakes Clients hear nothing until you say so.

  1. 01 Finds finished orders Lists completed orders with no sent invoice.
  2. 02 Reads the drafts Shows each invoice with its total and client.
  3. 03 Waits for your OK Each send shows up in your Cotlet console first.
  4. 04 Reports what went out Invoice number, channel, recipient and total.
Which Minuba actions can be undone
ActionUndo
Create a client or order draftDelete it in Minuba
Register timeDelete or edit the entry
Register materialDelete the line on the work slip
Send an invoiceNo, 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.

Pay per call

How much does the Minuba MCP server cost?

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

A month of Minuba jobs for one small firm, in credits
JobCallsCredits
Daily check of started and delayed orders3 × 22660
Weekly check for missing time entries2 × 480
Log time and material from a message3 × 401,200
Weekly invoice run, 5 invoices7 × 4280
Inquiry to client and order draft3 × 6180
Cloud Browser, 30 days1,500
Total3,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.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Minuba MCP server on GitHub, Zapier or hosted: which to use Nobody else offers one yet.

Other ways to reach Minuba from code, checked 31 Oct 2026
OptionWhat it doesWhere it stops
Minuba APIOfficial 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-proxyA 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, n8nGeneric HTTP steps can call the official API.No Minuba connector is listed. You build every call and still need the key.
Other order systemsTools 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.

EU company, since 2019

Who runs Cotlet A company you can look up.

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 agent access to Minuba.

Free 7-day trial with 2,000 credits, no card needed.