ODXProxy

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:

  1. Validates its integrity (on every request, via a trusted clock).
  2. Authenticates the caller via the x-api-key header.
  3. Validates the request — on v1, against a fixed allowlist of 9 actions.
  4. Forwards the call to the Odoo instance named inside the request body.
  5. 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.

On this page