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.
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