Odoo's API Isn't a Single REST Endpoint. It's RPC, and It Reaches Almost Everything.

Odoo's official external API is built on XML-RPC and JSON-RPC rather than a single documented REST surface the way some newer SaaS tools offer, but it can read, create, update, and search nearly any object in the system, including custom modules, from outside code. It's part of the core platform on both Community and Enterprise, not something gated behind a paid tier.

What that actually means for building on it

Because Odoo itself is written in Python, the API gets used most often from Python, usually through the `xmlrpc` library or a wrapper around it, but the RPC approach works from any language that can make an HTTP call and handle XML or JSON. The core authentication and call pattern has stayed broadly stable release to release, even as the list of available apps keeps growing version over version.

Where it gets more involved is custom models. If a business has built custom fields or entirely custom objects inside Odoo, which the platform makes genuinely easy to do, the API reaches those too, but mapping them correctly from outside code, matching IDs, relational fields, and record ownership rules, is real development work, not a five-minute setup.

What We Build on Odoo's API

Custom syncs that reach into Odoo's own data model

Whether it's standard objects like invoices and contacts or custom fields a business added for its own workflow, we build the connection against Odoo's actual API rather than assuming a generic integration template fits.

Exposing Odoo data to tools that were never meant to see it

If a reporting tool, a customer portal, or an internal dashboard needs live data out of Odoo, including from custom modules, we pull it through the API on a schedule or in real time rather than someone exporting a CSV.

Trying to get data into or out of Odoo programmatically?

Tell us what you're trying to read or write, standard fields or custom ones, and we'll map out how to reach it.

Let's talk

Trying to build against Odoo's API, or inherited one that's not quite finished?

Tell us what you're trying to connect, a custom module, a reporting tool, something else entirely, and we'll look at what Odoo's API actually exposes for it. And if the API work isn't your real bottleneck, we're glad to look at whatever else is eating up manual time.

Let's talk

Frequently Asked Questions

Does Odoo have a REST API?+
Not quite in the way some newer SaaS tools mean it. Odoo's official external API uses XML-RPC and JSON-RPC, which can still read, write, and search essentially any object in the system, just through a different calling convention than a traditional REST API.
Can I call Odoo's API from Python?+
Yes, and it's the most common way to use it, since Odoo itself is built in Python. Most integrations use the standard `xmlrpc` library or a thin wrapper around it to authenticate and make calls.
Is Odoo's API available on the free Community edition?+
Yes. External API access is part of the core platform on both Community and Enterprise; it isn't held back as an Enterprise-only feature, though which data you can reach still depends on which apps and modules you've actually installed.
Does the Odoo API work with custom modules?+
Yes. Any model you create in Odoo, standard or custom, is reachable through the same API, which is part of why Odoo's heavy customizability doesn't close off integration the way some locked-down platforms do.

Let's talk

Tell us the one thing your team does manually that eats up time. We read every message and reply within a day.