> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Dolibarr

> Connect Dolibarr to your Atako agents — 14 read and 2 write actions.

Let your agents work in your Dolibarr ERP/CRM: search, read and create third parties and contacts, and read commercial proposals, orders, invoices, products, projects and agenda events.

## Connection

* **Authentication**: API key (Dolibarr user API token).
* **Required settings**:
  * **Dolibarr instance domain** — The domain of your Dolibarr instance, without https\:// nor path (e.g. erp.example.com). Dolibarr must be served over HTTPS at the root of this domain.

<Note>
  Requires Dolibarr 19 or later, served over HTTPS. In Dolibarr: Home → Setup → Modules/Applications, enable "API / Web services (REST server)". Then Users & Groups → open the user the agents will act as → Modify → next to "Token for API" click the Generate icon → Save, and copy the token (called "Key for API" in older versions). The API has exactly this user's permissions (user card → Permissions tab): grant read on third parties, contacts, commercial proposals, orders, invoices, products, projects and agenda, plus create on third parties and contacts if agents must add them. A dedicated user is recommended.

  See [Dolibarr's documentation](https://wiki.dolibarr.org/index.php/Module_Web_Services_API_REST_\(developer\)).
</Note>

## Read actions (14)

| Action | Description |
| - | - |
| `get_contact` | Get a contact by its id (from list\_contacts). |
| `get_invoice` | Get a customer invoice with its lines by its id (from list\_invoices). |
| `get_order` | Get a customer order with its lines by its id (from list\_orders). |
| `get_product` | Get a product or service by its id (from list\_products). |
| `get_proposal` | Get a commercial proposal with its lines by its id (from list\_proposals). |
| `get_status` | Check the connection: returns the Dolibarr version of the instance and whether access is locked. |
| `list_agenda_events` | List agenda events (meetings, calls, logged actions). user\_ids: events owned by these user ids ("1" or "1,2,3"). Filter columns: t.label, t.code (event type, e.g. AC\_RDV, AC\_TEL), t.datep (start), t.fk\_soc (third party id), t.percent (-1 not applicable, 0 to do, 100 done). Default sort: t.id. limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_contacts` | List contacts (people). thirdparty\_ids: contacts of these third parties ("1" or "1,2,3", ids from list\_thirdparties). category: category id. Filter columns: t.lastname, t.firstname, t.email, t.poste, t.town, t.fk\_soc, t.datec, e.g. "(t.email:like:'%@acme.fr')". limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_invoices` | List customer invoices. thirdparty\_ids: invoices of these third parties ("1" or "1,2,3"). status: "draft", "unpaid", "paid" or "cancelled". Filter columns: t.ref, t.datef (invoice date), t.date\_lim\_reglement (due date), t.total\_ttc, t.paye, t.fk\_soc, e.g. "(t.date\_lim\_reglement:\<:'2026-09-30')". limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_orders` | List customer orders. thirdparty\_ids: orders of these third parties ("1" or "1,2,3"). Filter columns: t.ref, t.fk\_statut (-1 canceled, 0 draft, 1 validated, 2 shipment in process, 3 closed), t.date\_commande, t.total\_ht, t.fk\_soc. limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_products` | List products and services. mode: 0 all (default), 1 products only, 2 services only. category: category id. Filter columns: t.ref, t.label, t.tosell, t.tobuy, t.fk\_product\_type, e.g. "(t.label:like:'%cable%')". Default sort: t.ref. limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_projects` | List projects. thirdparty\_ids: projects of these third parties ("1" or "1,2,3"). category: category id. Filter columns: t.ref, t.title, t.fk\_statut (0 draft, 1 open, 2 closed), t.dateo (start date), t.fk\_soc. limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_proposals` | List commercial proposals (quotes). thirdparty\_ids: proposals of these third parties ("1" or "1,2,3"). Filter columns: t.ref, t.fk\_statut (0 draft, 1 validated, 2 signed, 3 not signed, 4 billed), t.datep, t.total\_ht, t.fk\_soc, e.g. "(t.fk\_statut:=:1)". limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. |
| `list_thirdparties` | List or read third parties (customers, prospects, suppliers). id: read one third party by its id. mode: 0 all (default), 1 customers, 2 prospects, 3 neither customer nor prospect, 4 suppliers. category: category id. Filter columns: t.nom (name), t.name\_alias, t.email, t.town, t.zip, t.code\_client, t.siren, t.siret, t.client, t.fournisseur, t.datec, e.g. "(t.nom:like:'%acme%')". properties: optional array of fields to return (default: the usual business fields). limit: 1-100 (Dolibarr default 100); page: page number starting at 0; sortfield: "t.\<column>"; sortorder: "ASC" or "DESC"; sqlfilters: Dolibarr filter syntax "(t.\<column>:\<operator>:'\<value>')" combined with and/or, operators =, !=, \<, >, \<=, >=, like (with %), dates as 'YYYY-MM-DD'. No match → Dolibarr answers 404 "No third parties found". |

## Write actions (2)

| Action | Description |
| - | - |
| `create_contact` | Create a contact; returns its id (integer). Arguments: lastname (string, required); firstname (string); socid (integer, id of its third party from list\_thirdparties); poste (string, job title); email (string); phone\_pro, phone\_mobile (strings); address, zip, town (strings); country\_code (string, ISO 3166 alpha-2, e.g. "FR"); note\_public, note\_private (strings). |
| `create_thirdparty` | Create a third party; returns its id (integer). Arguments: name (string, required); name\_alias (string); client (integer: 0 none, 1 customer, 2 prospect, 3 customer and prospect); fournisseur (integer: 1 supplier, 0 not); code\_client / code\_fournisseur (string, "auto" to let Dolibarr number it — needed when the customer/supplier code is mandatory); address, zip, town (strings); country\_code (string, ISO 3166 alpha-2, e.g. "FR"); phone, email, url (strings); tva\_intra (string, VAT number); idprof1 (string, SIREN in France); idprof2 (string, SIRET in France); note\_public, note\_private (strings). |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.