Skip to content
Integrations

Connecting an app to Odoo

Odoo exposes a complete external API, but it is limited to certain plans and changing under the hood. What to know before linking an app to Odoo, and the budget: from $6,800 (€6,000)excl. VAT for a connected business app.

By Damien Ladurelle · Updated · 6 min read

Contents
  1. What Odoo’s API allows
  2. Odoo module or separate app
  3. Budget and timeline
  4. Good practices
  5. When this is not the right approach
  6. Where to start
In short

Odoo offers an external API (JSON-2 since Odoo 19) that reaches the same data as the interface, with per-user API keys, but it requires the Custom plan. Expect $6,800 to $22,400 (€6,000–€20,000)excl. VAT for a business app connected to Odoo, with the connection itself often around $2,300 (€2,000)excl. VAT and up.

Odoo is one of the few ERPs whose external API is publicly documented and usable without going through a partner. That is good news when you want to connect a business app, a customer portal or a field tool. But two things change the picture in 2026: the plan you need and the move to a new API. Here is what the official documentation said when I checked it in October 2026.

What Odoo’s API allows

Since Odoo 19, the JSON-2 external API documentation describes a single endpoint: each call targets an Odoo model (contacts, orders, invoices, products) and a method (read, search, create, update).

Topic What the Odoo 19 documentation says In practice
Access External API limited to the Custom plan Check this before any estimate
Authentication Per-user API key sent with every call Create a technical user with limited rights
Permissions Same rights and rules as the user in the interface No back door: Odoo’s security applies
Key lifetime Limited lifetime, keys must be renewed Plan key rotation in maintenance
Transactions Each call is its own transaction Group related operations into a single business method
Older APIs /xmlrpc, /xmlrpc/2 and /jsonrpc announced for removal in Odoo 20 Migrate existing connections

In practice, an app can read customers and products from Odoo, create orders or service calls in it, and fetch invoice status, with the same checks as if a user did it by hand. That is an advantage: the rules already configured in Odoo keep applying.

To avoid polling Odoo every minute, automation rules can send a webhook notification to your app when a record changes, and can trigger actions from an external event.

Odoo module or separate app

That is the real question before talking about connections.

  • An Odoo module fits when your users already work in Odoo and a function close to the standard is missing: a field, a screen, a calculation.
  • A separate app connected through the API fits when users have no Odoo license (customers, partners, seasonal staff), when the interface has to be very simple or mobile, or when the need goes beyond what an ERP covers.

My work is custom web applications. If your need clearly calls for a module, an Odoo partner will be better placed, and I will tell you so. The page customize Odoo or build custom software? goes into this choice.

Budget and timeline

Amounts exclude VAT and cover a first version running in production. The connection matches the “connection to other tools” building block in my pricing ($2,300 (€2,000)excl. VAT), plus the work specific to your flows.

Project What it includes Indicative budget Timeline
Business app reading from Odoo Focused app + reading customers, products, stock $6,800 to $13,500 (€6,000–€12,000)excl. VAT 1 to 2 months
Synchronized app App + writing to Odoo (orders, service calls) and webhooks $11,200 to $22,400 (€10,000–€20,000)excl. VAT 2 to 3 months
Customer or partner portal linked to Odoo Separate areas, roles, payments, multiple flows $16,800 to $33,600 (€15,000–€30,000)excl. VAT 3 to 6 months
Migrating an XML-RPC connection Audit, then rewrite to JSON-2, testing Quote after audit A few weeks

The estimator gives you a range in one minute. The quote becomes fixed after scoping.

Good practices

  1. A dedicated technical user. The app connects with an account that has minimal rights, never an administrator’s. Odoo’s documentation also recommends dedicated users for integrations.
  2. One source of truth per piece of data. Odoo for invoicing and stock, the app for what it creates. They must never both edit the same field.
  3. Grouped operations. Since every call stands alone, a booking or a payment should go through a method that does everything at once, not a chain of calls.
  4. A log of exchanges. Every send, every error and every retry is recorded and searchable.

When this is not the right approach

If you are on the Standard plan and the need is modest, upgrading to Custom for a single connection can cost more than the problem it solves. A scheduled export or a module from the Odoo Apps store may be enough.

And if all your teams work in Odoo, a separate app adds one more tool to learn. In that case, invest in configuration or a module, not in an external custom app. The guide custom app vs. SaaS helps frame the question.

Where to start

  1. Check your Odoo plan and version: online, on Odoo.sh or self-hosted.
  2. List the users outside Odoo and what they re-enter today.
  3. A 30-minute call to confirm feasibility.
  4. Scoping (1 to 2 weeks): flows, Odoo models involved, fixed quote.
  5. Development in batches against a test Odoo database, then go-live.

If the app also needs to talk to your online store, see connecting your online store to your ERP. My approach is described on the business apps page.

Frequently asked questions

Can we use Odoo’s API on the Standard plan?

No, according to the Odoo 19 documentation: the external API requires the Custom plan and is not available on the One App Free or Standard plans. Check your subscription before starting a connection project.

Will our current XML-RPC connections stop working?

The Odoo 19 documentation announces that the /xmlrpc, /xmlrpc/2 and /jsonrpc endpoints will be removed in Odoo 20. An existing connection therefore has to be migrated to the JSON-2 API before you move to that version.

Can Odoo notify my app when data changes?

Yes: Odoo’s automation rules include a Send Webhook Notification action that posts selected fields to a given URL. That avoids polling Odoo constantly.

Should we build an Odoo module or a separate app?

If users already work in Odoo and the need is close to what it does, an Odoo module is often more sensible. A separate app makes sense for customers, partners or field teams without Odoo licenses, or for a very specific experience.

Not sure about your project?

Let’s talk for 30 minutes: I’ll tell you honestly which option I would choose in your place.

Book a 30-minute call Version française