Extrabat API and MCP server Let your AI agent chase quotes and book site visits.

Extrabat publishes no public API: its API opens only to registered partners (checked 14 Nov 2026). Cotlet runs a hosted Extrabat MCP server with 13 tools that ChatGPT and Claude use in your own Extrabat account. E-signature requests and agenda bookings wait for your OK.

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

13 tools Read and write

Building-trade office work

What can your AI agent do in Extrabat? The office side of a building-trade business: leads, quotes, agenda and after-sales.

  • Turn a website lead into a booked site visit

  • Chase quotes still waiting for a signature

  • Draft a quote from your site notes

  • Move finished after-sales jobs to "à facturer"

  • List service contracts ending in the next 60 days

  • Find unpaid invoices past their due date

Partner API only, no MCP

Does Extrabat have an MCP server or an API? The official Extrabat routes, checked 14 November 2026.

Extrabat has an API, but only for registered partners: a user links a "User API Key" to a partner's "Third-Party" ID, and Extrabat publishes no developer docs. Extrabat has no official MCP server, and the Zapier and n8n directories list no Extrabat app.

  • Extrabat sells three plans per user a month before VAT: Éco 49 EUR, Standard 69 EUR, Premium 99 EUR. Worksites, after-sales and service contracts start at Standard.
  • E-signature is a paid option through Oodrive Sign, and each request needs both the customer's email and phone number.
  • Extrabat comes in versions for building, heating, pools, landscaping and joinery, with its screens in French.
Extrabat by hand and Cotlet compared
What you need Extrabat aloneCotlet
Ask ChatGPT or Claude to do the work Partner API only, no MCP Hosted MCP server
Leads, quotes and e-signature requests By hand, quote by quote 13 tools, sends after your OK
After-sales tickets and service contracts One ticket at a time On request or every morning
Run from n8n or a script Only through a partner REST, same key

Checked 14 Nov 2026. Sources: Extrabat website · Extrabat pricing · Extrabat marketplace · Extrabat blog: connect Install Bois (User API Keys) · Extrabat blog: partner apps and the API login · Extrabat blog: e-signature with Oodrive Sign · Creatic: apps on the Extrabat partner API

Set up once

How does the Extrabat MCP server work? The Extrabat MCP server by Cotlet: your agent works in your own Extrabat account.

  1. 1Sign in to Extrabat

    Once, at myextrabat.com, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the quote chasing

    It lists the unsigned quotes, you pick which go out again.

Your agent works in your own signed-in Cloud Browser. E-signature requests and agenda bookings wait for your OK. Who can see your session

Any MCP client

How to connect Extrabat to your AI agent

  1. 1

    Sign in to Extrabat in a Cloud Browser. Open myextrabat.com in your Cotlet Cloud Browser and log in with your own Extrabat user.

  2. 2

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

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Extrabat runs on the shared address https://cotlet.dev/mcp/v1 next to every other app you enable, so one connector is enough. Turned on Extrabat after connecting? Refresh the connector to see its 13 tools.

ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
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: extrabat_read
8 read, 5 write

All 13 Extrabat MCP tools

One tool per Extrabat module the office uses every day: CRM, Gestion commerciale, the agenda, worksites, Gestion SAV and service contracts. Each reads or writes only what your user can open.

Customers and CRM2

Search customer files by name, phone, email or city, then add a new lead without a duplicate.

  • search_customers Find customers and prospects by name, phone, email or city. read

    Returns the matching customer files with their contact details, in the order Extrabat lists them. Use it before create_customer to avoid duplicates. It reads what your user can open in the Gestion client / CRM module.

    MCP callextrabat_read → search_customers

    REST endpointGET https://cotlet.dev/api/v1/extrabat/customers/search

    Parameters

    Parameters: search_customers
    NameTypeDescription
    query string required string Text to match against name, phone, email or city
    limit integer integer Maximum results to return

    Example input

    {
      "query": "query"
    }

    Example response

    {
      "customers": [
        {
          "customer_id": "c_20481",
          "name": "Durand Piscines",
          "phone": "+33 5 45 00 00 01",
          "email": "contact@durand-example.fr",
          "city": "Angoulême"
        }
      ],
      "total": 1
    }
  • create_customer Add a customer or prospect to the CRM. write

    Creates the file in Gestion client / CRM and returns its ID. It reaches no one: Cotlet sends no message to the customer. Search first with search_customers to avoid a duplicate; this tool does not check for one.

    MCP callextrabat_write → create_customer

    REST endpointPOST https://cotlet.dev/api/v1/extrabat/customers

    Parameters

    Parameters: create_customer
    NameTypeDescription
    name string required string Company or person name
    phone string string Phone number
    email string string Email address
    city string string City
    note string string Free text kept on the file, for example where the lead came from

    Example input

    {
      "name": "Martin Paysage",
      "phone": "+33 5 45 00 00 02",
      "email": "martin@example.fr",
      "city": "Cognac",
      "note": "Lead from website form"
    }

    Example response

    {
      "customer_id": "c_20533",
      "name": "Martin Paysage",
      "created": true
    }

Quotes and invoices5

Quotes with their signature state, draft quotes from your lines, Oodrive Sign requests and unpaid invoices.

  • list_quotes List quotes (devis) with customer, amount and signature state. read

    Returns quotes from the Gestion commerciale module, newest first, with number, customer, total and the signature state. Reads only, nothing is sent. Quotes you cannot open with your Extrabat user are left out.

    MCP callextrabat_read → list_quotes

    REST endpointGET https://cotlet.dev/api/v1/extrabat/quotes

    Parameters

    Parameters: list_quotes
    NameTypeDescription
    customer_id string string Only quotes of this customer
    status string string Signature state to filter on, as the Commercial documents list shows it
    created_before string string ISO date; only quotes created before it
    limit integer integer Maximum results to return

    Example response

    {
      "quotes": [
        {
          "quote_id": "q_5530",
          "number": "DEV-2026-0412",
          "customer": "Durand Piscines",
          "total": 8450,
          "created": "2026-10-28",
          "signature": "waiting"
        }
      ],
      "total": 1
    }
  • get_quote Read one quote with its lines, totals and customer contact. read

    Returns the document lines, the totals and the customer email and phone that the e-signature request needs. Reads only.

    MCP callextrabat_read → get_quote

    REST endpointGET https://cotlet.dev/api/v1/extrabat/quotes/{quote_id}

    Parameters

    Parameters: get_quote
    NameTypeDescription
    quote_id string required string Quote ID from list_quotes

    Example input

    {
      "quote_id": "quote_8c41d2"
    }

    Example response

    {
      "quote_id": "q_5530",
      "number": "DEV-2026-0412",
      "customer": "Durand Piscines",
      "email": "contact@durand-example.fr",
      "phone": "+33 5 45 00 00 01",
      "lines": [
        {
          "label": "Pool liner replacement",
          "quantity": 1,
          "unit_price": 6800
        },
        {
          "label": "Filtration pump",
          "quantity": 1,
          "unit_price": 1650
        }
      ],
      "total": 8450
    }
  • create_quote Create a draft quote for a customer from lines you give. write

    Creates the quote in Gestion commerciale and returns its number and total. It sends nothing to the customer: sending is a separate step, send_quote_for_signature. Check the draft in Extrabat before it goes out.

    MCP callextrabat_write → create_quote

    REST endpointPOST https://cotlet.dev/api/v1/extrabat/customers/{customer_id}/quotes

    Parameters

    Parameters: create_quote
    NameTypeDescription
    customer_id string required string Customer ID from search_customers
    lines array required array Lines, each with label, quantity and unit_price
    note string string Free text for the quote

    Example input

    {
      "customer_id": "customer_8c41d2",
      "lines": "lines"
    }

    Example response

    {
      "quote_id": "q_5561",
      "number": "DEV-2026-0431",
      "customer": "Martin Paysage",
      "total": 2160
    }
  • send_quote_for_signature Send a quote to the customer to sign electronically. writeAsks first

    Sends the signature request through Extrabat's Oodrive Sign option, which must be switched on for your account. Extrabat needs both an email and a phone number for the customer, so the call fails when either is missing. The customer gets a message right away. By default you confirm each call; you can switch that off for this tool.

    MCP callextrabat_write → send_quote_for_signature

    REST endpointPOST https://cotlet.dev/api/v1/extrabat/quotes/{quote_id}/for-signature

    Parameters

    Parameters: send_quote_for_signature
    NameTypeDescription
    quote_id string required string Quote ID from list_quotes
    email string string Customer email; defaults to the one on the quote
    phone string string Customer phone; defaults to the one on the quote

    Example input

    {
      "quote_id": "quote_8c41d2"
    }

    Example response

    {
      "quote_id": "q_5530",
      "number": "DEV-2026-0412",
      "sent_to": "contact@durand-example.fr",
      "signature": "sent"
    }
  • list_invoices List invoices with customer, amount, due date and payment state. read

    Returns invoices from the Gestion commerciale module with number, customer, total, amount still due and due date. Reads only. Payments are recorded in Extrabat, not by this tool.

    MCP callextrabat_read → list_invoices

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

    Parameters

    Parameters: list_invoices
    NameTypeDescription
    customer_id string string Only invoices of this customer
    unpaid_only boolean boolean Only invoices not fully paid
    due_before string string ISO date; only invoices due before it
    limit integer integer Maximum results to return

    Example response

    {
      "invoices": [
        {
          "invoice_id": "i_9021",
          "number": "FAC-2026-0388",
          "customer": "Durand Piscines",
          "total": 3200,
          "due": 1200,
          "due_date": "2026-10-15"
        }
      ],
      "total": 1
    }

Agenda and worksites3

Free slots in the synced agenda, bookings linked to a customer or chantier, and the open worksites.

  • list_agenda_events List agenda events of one user or the whole team for a date range. read

    Returns events in time order with title, start, end, the user and the linked customer when there is one. Use it to find a free slot before create_agenda_event. Reads only.

    MCP callextrabat_read → list_agenda_events

    REST endpointGET https://cotlet.dev/api/v1/extrabat/agenda-events

    Parameters

    Parameters: list_agenda_events
    NameTypeDescription
    from string required string ISO date or datetime, start of the range
    to string required string ISO date or datetime, end of the range
    user string string Only events of this Extrabat user

    Example input

    {
      "from": "from",
      "to": "to"
    }

    Example response

    {
      "events": [
        {
          "event_id": "e_7710",
          "title": "Visit: Durand Piscines",
          "start": "2026-11-17T09:00",
          "end": "2026-11-17T10:30",
          "user": "Luc",
          "customer": "Durand Piscines"
        }
      ],
      "total": 1
    }
  • create_agenda_event Book an event in the agenda, optionally linked to a customer or worksite. writeAsks first

    Creates the event in the agenda and returns its ID. The agenda syncs to phones, so a technician can see it there soon after. Check list_agenda_events first for a free slot. By default you confirm each call; you can switch that off for this tool.

    MCP callextrabat_write → create_agenda_event

    REST endpointPOST https://cotlet.dev/api/v1/extrabat/agenda-events

    Parameters

    Parameters: create_agenda_event
    NameTypeDescription
    title string required string Event title
    start string required string ISO datetime
    end string required string ISO datetime
    user string string Extrabat user whose agenda gets the event
    customer_id string string Customer to link
    worksite_id string string Worksite to link

    Example input

    {
      "title": "title",
      "start": "start",
      "end": "end"
    }

    Example response

    {
      "event_id": "e_7745",
      "title": "Visit: Martin Paysage",
      "start": "2026-11-18T09:00",
      "end": "2026-11-18T10:00",
      "user": "Luc"
    }
  • list_worksites List worksites (chantiers) with customer, address and planning state. read

    Returns the worksites from Gestion et planification des chantiers with customer, address and the planned dates when set. Reads only. Which worksites you see depends on your Extrabat user rights.

    MCP callextrabat_read → list_worksites

    REST endpointGET https://cotlet.dev/api/v1/extrabat/worksites

    Parameters

    Parameters: list_worksites
    NameTypeDescription
    customer_id string string Only worksites of this customer
    open_only boolean boolean Skip finished worksites
    limit integer integer Maximum results to return

    Example response

    {
      "worksites": [
        {
          "worksite_id": "w_3302",
          "name": "Pool renovation, rue des Lilas",
          "customer": "Durand Piscines",
          "city": "Angoulême",
          "planned_start": "2026-11-24"
        }
      ],
      "total": 1
    }

After-sales and service contracts3

SAV tickets in your own status names, status changes, and maintenance contracts by end date.

  • list_service_tickets List after-sales (SAV) tickets with customer, status and age. read

    Returns tickets from the Gestion SAV module, oldest first, with customer, status and creation date. Statuses are the ones your account uses, for example "Intervention en cours" or "Retour atelier". Reads only.

    MCP callextrabat_read → list_service_tickets

    REST endpointGET https://cotlet.dev/api/v1/extrabat/service-tickets

    Parameters

    Parameters: list_service_tickets
    NameTypeDescription
    status string string Only tickets in this status, using the status names set up in your account
    customer_id string string Only tickets of this customer
    limit integer integer Maximum results to return

    Example response

    {
      "tickets": [
        {
          "ticket_id": "s_1180",
          "customer": "Durand Piscines",
          "title": "Heat pump alarm",
          "status": "Intervention en cours",
          "created": "2026-11-03"
        }
      ],
      "total": 1
    }
  • update_service_ticket_status Change the status of one after-sales ticket. write

    Sets the status and returns the ticket as it is now. It reaches no one and changes back with one more call. A status name that does not exist in your account is rejected.

    MCP callextrabat_write → update_service_ticket_status

    REST endpointPATCH https://cotlet.dev/api/v1/extrabat/tickets/{ticket_id}/service-ticket-status

    Parameters

    Parameters: update_service_ticket_status
    NameTypeDescription
    ticket_id string required string Ticket ID from list_service_tickets
    status string required string A status name that exists in your account, for example "Intervention terminée à facturer"

    Example input

    {
      "ticket_id": "ticket_8c41d2",
      "status": "status"
    }

    Example response

    {
      "ticket_id": "s_1180",
      "status": "Intervention terminée à facturer",
      "previous": "Intervention en cours"
    }
  • list_service_contracts List maintenance (service) contracts with customer and end date. read

    Returns contracts from the Gestion des contrats de services module, ordered by end date. Extrabat can also send SMS reminders for service contracts if you switch them on in the app; this tool only reads.

    MCP callextrabat_read → list_service_contracts

    REST endpointGET https://cotlet.dev/api/v1/extrabat/service-contracts

    Parameters

    Parameters: list_service_contracts
    NameTypeDescription
    ends_before string string ISO date; only contracts ending before it
    customer_id string string Only contracts of this customer
    limit integer integer Maximum results to return

    Example response

    {
      "contracts": [
        {
          "contract_id": "k_640",
          "customer": "Durand Piscines",
          "title": "Yearly pool maintenance",
          "ends": "2027-01-12"
        }
      ],
      "total": 1
    }
Encrypted, revocable

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

  • What we store

    Your signed-in Extrabat browser profile, AES-256-GCM encrypted, in Finland. Never your password.

  • What your agent gets

    The 13 Extrabat tools. The session cookie stays in the Cloud Browser.

  • What the session sees

    The customers, quotes, worksites and tickets your user and its rights can open, and nothing more.

  • What no tool touches

    Accounting, recorded payments, e-invoices, SMS and email campaigns, the shop till, your user settings and API keys, and your plan.

  • If Extrabat signs you out

    You sign in again yourself at myextrabat.com, in the same Cloud Browser.

  • How to cut access

    Disable Extrabat for agents, reset the browser, or change your password.

You type your Extrabat password yourself; the agent only uses the session that sign-in leaves behind. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

We keep it working

What happens when Extrabat changes? The tools use the same myextrabat.com screens your office uses.

The agent works through the pages you use, so an Extrabat update to the quote editor or the SAV list does not stop quote chasing or ticket moves.

Cotlet watches the apps it serves and updates the Extrabat server when those screens change. Modules you add later, such as worksite planning on the Standard plan, become available to the agent.

It still sees only what your own Extrabat user and its rights can open. Cotlet never sees or stores your password. If Extrabat signs you out, one click in the Cotlet console reopens the Cloud Browser so you can sign in again.

2 tools ask first

Approvals, undo and mistakes Customers and technicians get nothing until you say so.

  1. 01 Find the quotes list_quotes picks the unsigned ones.
  2. 02 Read each one get_quote checks the email and phone.
  3. 03 Show you the list Customer, number and total, before sending.
  4. 04 Send after your OK send_quote_for_signature goes out via Oodrive Sign.
Fixing an Extrabat write that went wrong
ActionHow to put it right
After-sales status changedCall update_service_ticket_status with the previous status it returned
Draft quote createdNothing was sent: delete the draft in Gestion commerciale
Customer file addedDelete or merge it in Gestion client / CRM
Agenda event bookedMove or delete it in the agenda; it syncs to phones
Signature request sentAlready with your customer: tell them to ignore it

send_quote_for_signature and create_agenda_event ask first: by default you confirm each call, and you can switch that off per tool. The other 3 writes reach no one and run at once, like the 8 read tools.

MCP call
{
  "name": "create_customer",
  "arguments": {
    "name": "Martin Paysage",
    "phone": "+33 5 45 00 00 02",
    "email": "martin@example.fr",
    "city": "Cognac",
    "note": "Lead from website form"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/extrabat/customers \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Martin Paysage","phone":"+33 5 45 00 00 02","email":"martin@example.fr","city":"Cognac","note":"Lead from website form"}'
Response
{
  "customer_id": "c_20533",
  "name": "Martin Paysage",
  "created": true
}

The example adds Martin Paysage of Cognac, a lead from your website form, as a customer file; Cotlet sends nothing to them. A cron job or n8n flow can make the same call over REST at /api/v1/extrabat with the same key and price, in JSON. Failed calls are free.

Pay per call

How much does the Extrabat MCP server cost?

About $19 a monthfor a pool and heating installer with three office users, 3,320 credits. Your Extrabat plan stays as it is.

Illustrative month, our assumption: successful calls for this workload
JobCallsCredits
Website leads checked and added to the CRM2 × 20400
Site visits booked in the agenda2 × 15300
Quotes drafted from site notes2 × 10200
Unsigned quotes read and sent again3 × 8240
After-sales tickets moved on2 × 20400
Weekly worksite and agenda check3 × 4120
Service contracts ending soon2 × 480
Unpaid invoice list2 × 480
Cloud Browser, 30 days1,500
Total182 calls3,320

The $29 pack covers a typical month for most owners. A firm with more technicians and more SAV tickets uses more calls.

  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Your Extrabat plan applies as it is

Credit packs are one-time purchases, not a subscription. The month above is an example built from our own assumptions, not measured customer usage.

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

Extrabat MCP server: other ways to connect What each route does for a building-trade office, and where it stops.

Other ways to work with Extrabat, checked 14 Nov 2026
OptionWhat it doesWhere it stops
Extrabat's own AIThe marketplace "Assistant IA SAV" finds manufacturer documentation from an error code or serial number.It answers technical questions; it does not work in your quotes or agenda.
Partner APIA "User API Key" tied to a registered partner, or partner software with "Se connecter avec Extrabat".No public docs: a partner builds and runs each connection.
Marketplace connectorsRingover, Oodrive Sign, SimplyMeet, Urbassist and others each connect one job.One job each; none takes requests from ChatGPT or Claude.
Zapier and n8nNeither directory lists an Extrabat app (both pages answer 404).No triggers or actions to build on.
"Statistiques & Exports"Exports lists for a spreadsheet or your accountant.A file out; nothing goes back into Extrabat.
By handOpen each quote, ticket or agenda slot in myextrabat.com.Only while someone sits at the office screen.

If you sell software to Extrabat customers, the partner program ("Rejoindre la marketplace") is the right route. For your own office, only Cotlet lets your agent do the daily Extrabat work on every screen you use, reading and writing, from ChatGPT, Claude or any MCP client, with no API key from Extrabat and on the plan you already have.

EU company, since 2019

Who runs Cotlet A company you can look up.

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

Extrabat MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev/signup?app=extrabat, turn on Extrabat under Integrations in the console and log in at https://myextrabat.com in your Cloud Browser. Then connect your AI agent and ask it which quotes are still waiting for a signature. The trial needs no card.

Which Extrabat plan or user do I need?

Your own My Extrabat user. Cotlet sees what that user can open, so a module your plan does not include, such as Signature électronique (a paid option you take through your Extrabat adviser), is not available to the agent. Extrabat starts at 49 EUR per user per month excl. VAT (checked 14 Nov 2026).

Do I need Extrabat's partner API for this?

No. The partner API is for software vendors registered with Extrabat. Cotlet works in your own signed-in account, so you need no "User API Key" and no partner ID.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 13 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.

Is Cotlet affiliated with Extrabat?

No. Cotlet is independent and not affiliated with Extrabat.

Hand your next Extrabat quote chase to your agent.

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