No products
* Prices may vary depending on your country.
* An additional contribution can be added at the time of payment.
New products
GHZ WorkflowPlanner turns your customer orders and quotes into a simple field-service scheduler. For each service line, assign the employee in charge, pick the intervention date, and add a note with instructions — no separate planning tool, no duplicate data entry.
Turn Dolibarr into a complete nursery platform: dashboard, children and guardians, admissions and enrolments, age groups and groups, educators, support staff and contracts, learning areas, planning and schedules, attendance desk, development observations and reports, care rates, payments, transport, meals and menus, activities, documents, parent portal and reporting.
mp23914d20260607102352
Professional REST API for Dolibarr: 32 core domains with native permissions, idempotency, resilience, Scalar docs and an MCP server for AI agents.
|
|
32 core domains with Dolibarr's native permissions, real idempotency and bulk operations. With an MCP server to connect AI agents.
|
32
core domains
|
697
operations
|
3,849
tests
|
V15–V23
PHP 7.0 to 8.3
|
It is not that Dolibarr's native API falls short: it is that every quirk costs you hours. These are the ones that come up in every single integration.
| What you run into | What it costs you |
|---|---|
| One POST returns an integer, another one the object | A different parser for each endpoint, and not one of them reusable |
| The sales rep join uses t.rowid = sc.fk_soc | Thirdparty records that user should never see slip through |
| A 401 arrives where a 403 belonged | Your retry logic keeps hammering something that will never work |
| accountancy only exposes exportData | Accounting stays outside your integration |
| There is no idempotency on any write | One timeout plus one retry and you have charged twice |
EasyAPI is not a layer on top of the native API: it is a complete reimplementation with a uniform declarative contract.
Connect Claude, Cursor or any AI agent to your Dolibarr in a minute: the module URL and your DOLAPIKEY as a Bearer token.
Instead of dumping hundreds of tools on the agent, it exposes three meta-tools —search, describe and invoke— over the 697 operations, with schemas and examples ready to run. The agent chains multi-step operations, writes with idempotency and gets self-correcting errors: a 422 tells it the exact field it has to fix.
It inherits your native Dolibarr permissions and ACL, so it cannot see or touch anything the user could not. And since 2.14 you can put the connection in read-only mode — the whole installation or just the agent's user — so no write ever runs, even if the model tries. It includes an "MCP / AI" admin tab and a connection guide inside the module itself.
The OpenAPI specification generates itself from the resources and is served inside the module, filtered by the permissions of the user requesting it. You pick the viewer: Scalar, Swagger UI or Redoc, all three included.
| Dimension | Dolibarr native API | EasyAPI |
|---|---|---|
| Coverage | ~25 classes with uneven coverage; methods commented out or missing | 32 complete core domains + sub-resources |
| Responses | Heterogeneous: one POST returns an int, another the object | Uniform {success, data} envelope, with meta.pagination on lists · POST → 201 + object · DELETE → 204 |
| Errors | Mismatched codes and messages, no taxonomy, no request_id | Full catalogue (422, 409, 410, 412, 413, 415, 428, 429, 503…) with request_id and doc_url |
| Security | Native rights, but with real ACL bugs and wrong status codes | Same native rights, per-record ACL fixed and uniform, no leaks between entities |
| Idempotency | Does not exist | Idempotency-Key with atomic reservation and replay on every write |
| Validation | 400 with "missing field" | Declarative 422 with error.fields per rule |
| Queries | sqlfilters + limit/page | JSON:API filters, sorting, search, sparse fields, include, offset and cursor pagination |
| Bulk | Do not exist | 207 Multi-Status on create, update and delete (100 per batch) |
| Resilience | Does not exist | Rate limit, deadlock retry, ETag / If-Match, maintenance mode, /health |
| Documentation | Basic Swagger explorer | Full OpenAPI with Scalar, Swagger UI and Redoc embedded |
| Extensibility | You have to touch or fork the core | Resource auto-discovery from your own module |
| AI agents | Not considered | Native MCP server included |
Authentication with your Dolibarr DOLAPIKEY. Every response arrives with the same envelope, so you write your client once and it works for all 32 domains.
curl -X POST https://your-dolibarr.com/custom/easyapi/api/invoices \
-H "DOLAPIKEY: your_key" \
-H "Idempotency-Key: order-4417" \
-H "Content-Type: application/json" \
-d '{"socid": 128, "lines": [{"fk_product": 55, "qty": 2}]}'The base path is custom/easyapi/api on a standard install. If you keep the module in another modules folder registered in your conf.php, replace custom with yours: EasyAPI has no hardcoded paths, it adapts to wherever you install it.
{
"success": true,
"data": {
"id": 902,
"ref": "FA2607-0043"
}
}
{
"success": false,
"error": {
"type": "validation_error",
"code": 422,
"message": "Validation failed",
"fields": {
"socid": "does not exist"
},
"request_id": "req_a1b2",
"doc_url": "…#validation_error"
}
}Lists add a meta.pagination block with the mode (offset or cursor), the total and the page. And every response, successful or failed, carries the X-Request-Id header: if something goes wrong, that identifier lets us trace your specific request.
| Dolibarr | V15 to V23 |
| PHP | 7.0 to 8.3 |
| Database | MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+ |
| Web server | Apache with mod_rewrite, or Nginx |
| Dependencies | Composer, to install the module libraries |
EasyAPI is not a publish-it-and-forget-it module. The current version is 2.14 and every release goes through the 4,116-test suite plus live QA. The latest release closes the gap no permission covers the moment you connect an AI agent, without breaking compatibility:
The version-by-version detail is in the ChangeLog, reachable from the module's own admin tab.
|
24
modules published on Dolistore
|
GPLv3
complete source code
|
8
interface languages
|
365
days of updates
|
Tell us about your case and we will tell you whether EasyAPI works for you — and if it does not, we will tell you that too. We answer on installation, integration and connecting AI agents.
info@easysoft.es www.easysoft.es