ODXProxy Documentation
One secure JSON-RPC 2.0 API in front of any number of Odoo instances.
ODXProxy is a Rust reverse proxy that sits in front of one or more Odoo ERP
instances. Instead of every app speaking Odoo's raw XML-RPC / JSON-RPC execute_kw
protocol, clients send one unified JSON-RPC 2.0 request to the proxy, which:
- Validates its integrity (on every request, via a trusted clock).
- Authenticates the caller via the
x-api-keyheader. - Validates the request — on v1, against a fixed allowlist of 9 actions.
- Forwards the call to the Odoo instance named inside the request body.
- Returns a JSON-RPC 2.0 envelope.
It reaches Odoo two ways: v1 runs execute_kw over /jsonrpc and works with any
Odoo up to 21; v2 uses Odoo's JSON-2 API and works with Odoo 19 and later,
including 22+, where /jsonrpc is gone. See API versions.
Where to start
- Getting started — run the proxy and make your first request.
- API versions — v1 or v2: which to use and what changes.
- Actions and methods — what you can call, on v1 and v2.
- Error codes — the full error catalog.
- API reference — endpoints and request/response shapes.
- SDKs — client libraries for Python, Swift, Java, JavaScript, PHP, and .NET.
- Claude Code skill — teach your AI agent the protocol, on both API versions.
- ODXBrain — in development: tells your AI which Odoo model to look in.
HTTP 200 can still carry an error. Odoo logic errors come back with HTTP 200
and a populated error object. Only proxy-layer failures use non-200 status codes.
Always check the error field, not just the HTTP status.