( 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-integrationsLimits: 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.
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.
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.
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.
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
- Ifanything outside Odoo calls /xmlrpc or /jsonrpc — run the free sweep now, and plan the move before your Odoo 22 or Online 21.1 upgrade
- Ifa 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
- Ifyou 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
- Ifyou 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
- Ifyour only integrations are third-party connectors like Zapier or Make — ask those vendors for their JSON-2 timeline; they have to migrate them
- Ifyour n8n Odoo nodes are already version 2 on an API-key credential — they already use JSON-2 and need no migration
- Ifyou have one small script and a developer on staff — the free tools plus Odoo’s JSON-2 documentation are probably all you need