Skip to main content

( Engineering — Odoo API Migration )

Odoo is retiring XML-RPC and JSON-RPC.Find every call before it breaks.

Odoo 20 removes the database-management API. The rest of XML-RPC and JSON-RPC goes in Odoo 22. Two free tools show you which of your integrations are affected, and when.

AIQSO Odoo API Migration moves Odoo integrations from XML-RPC and JSON-RPC to the JSON-2 API at a fixed price, and closes only when your own Odoo shows zero legacy calls for seven days.

Key Takeaways

  • •Odoo 20 (fall 2026) removes only the db service: creating, duplicating, dropping or listing databases over the API
  • •The common and object services and /jsonrpc are removed in Odoo 22 (fall 2028), and sooner on Odoo Online (21.1, winter 2027)
  • •The replacement is JSON-2: API-key bearer authentication, named arguments, one transaction per request
  • •The free RPC Migration Scanner records every legacy call reaching your Odoo 19 server; the free odoo-rpc-sweep finds them in your code
  • •AIQSO migrates integrations at a fixed price and closes only after seven days of zero legacy calls

What Changes, and When

Not everything breaks on Odoo 20. Most integrations only read and write records, and those keep working, with deprecation warnings, until Odoo 22.

Odoo 19 (now)

Deprecated

/xmlrpc, /xmlrpc/2 and /jsonrpc still work, but Odoo marks them deprecated. JSON-2 is available as the replacement.

Odoo 20 (fall 2026) · Online 19.1

db service removed

Creating, duplicating, dropping or listing databases over the API stops working. Integrations that only read and write records are not affected yet.

Odoo 22 (fall 2028) · Online 21.1 (winter 2027)

common, object and /jsonrpc removed

Every remaining XML-RPC and JSON-RPC call stops working: execute_kw, authenticate, and client libraries such as odoorpc and erppeek.

Source: Odoo 20.0 documentation, External API: Migrating from XML-RPC / JSON-RPC.

Two Free Tools

One watches the traffic reaching your server. The other reads your code. Each catches what the other can't, so use both where you can.

( Sees your server )

RPC Migration Scanner

Free · LGPL-3 · Odoo 19 module

Records every legacy RPC call that reaches your Odoo: which user, which API key, which IP address and which method. It catches callers you have forgotten about or never had the code for, and it produces a Migration report you can hand to whoever does the work.

Limits: Odoo 19 only (on-premise or Odoo.sh). Store modules cannot be installed on Odoo Online. It records legacy traffic only, not JSON-2.

( Sees your code )

odoo-rpc-sweep

Free · MIT · Python 3.9+, no dependencies

Reads your integration code and n8n workflow exports and reports each legacy call as BREAKS-ON-20, REMOVED-IN-22 or CHECK. It finds calls in code that has not run yet, and it works for Odoo Online. It reads files locally and sends nothing anywhere.

pipx run odoo-rpc-sweep ./my-integrations

Limits: A pattern match: it finds candidates, and a person confirms each one. It only sees the code you point it at.

We Ran It on Our Own Stack First

AIQSO runs its business on Odoo, with a custom API, scripts and n8n workflows. This is what odoo-rpc-sweep found in our own integration code in September 2026.

0

calls that break on Odoo 20 (no db-service use)

~400

legacy-call candidates to review before Odoo 22

53

files involved, across two repositories

25 of those files are n8n workflows whose Odoo nodes use the older username-and-password credential. n8n's Odoo node version 2 switches to JSON-2 on an API-key credential, so for us part of the job may be a credential change rather than a rewrite. That is the kind of distinction the Assessment is there to make.

Fixed-Price Migration Help

The free tools tell you what has to move. If you would rather not move it yourself, this is how we do it.

01

Readiness Assessment

We install the scanner (Odoo 19) and let it observe for 14 to 30 days, sweep your integration code, and inventory your API keys. You get the Migration report and a fixed quote. The Assessment fee is credited in full if you go ahead.

02

Fixed-price migration

We move each integration to JSON-2 on a staging instance first: API-key authentication, named arguments, and one transaction per request. The price is set by how many integrations you have, never by the hour.

03

Mechanical acceptance

The engagement closes when your own Odoo shows zero legacy calls from each migrated integration for seven straight days. You can read that number yourself in the scanner.

Book a Migration Call

Or email [email protected] with your Odoo version, hosting and a rough count of integrations.

Is This Right for You?

When to Use This Service

  • If
    anything outside Odoo calls /xmlrpc or /jsonrpc — run the free sweep now, and plan the move before your Odoo 22 or Online 21.1 upgrade
  • If
    a script or tool creates, duplicates or lists databases over the API — fix it before you upgrade to Odoo 20; that is the one that breaks first
  • If
    you are not sure who or what is calling your Odoo — install the free scanner on Odoo 19 and let it record callers for a few weeks
  • If
    you want the migration done at a known price with a measurable finish — start with a Readiness Assessment and a fixed quote

When This May Not Be the Right Fit

  • If
    your only integrations are third-party connectors like Zapier or Make — ask those vendors for their JSON-2 timeline; they have to migrate them
  • If
    your n8n Odoo nodes are already version 2 on an API-key credential — they already use JSON-2 and need no migration
  • If
    you have one small script and a developer on staff — the free tools plus Odoo’s JSON-2 documentation are probably all you need

Frequently Asked Questions

Privacy Settings

We'd like to measure which pages are useful — how many people visit and what they read. That's all it does. No advertising cookies, no cross-site tracking, no device fingerprinting, and we never sell your data. Declining changes nothing about how the site works. Read our privacy policy