Skip to main content

odoo-rpc-sweep

Find the code that still calls Odoo through XML-RPC or JSON-RPC, before Odoo removes those APIs.

pipx run odoo-rpc-sweep ./my-integrations          # Markdown report
odoo-rpc-sweep ./my-integrations --format csv > sweep.csv
odoo-rpc-sweep workflow-export.json                 # a single n8n export

Until the first PyPI release, install from GitHub: pipx install git+https://github.com/AIQSO/odoo-rpc-sweep.

No dependencies. Python 3.9+. It reads files and prints a report. Nothing is sent anywhere.

Why

From Odoo's own documentation:

  • /xmlrpc, /xmlrpc/2 and /jsonrpc are deprecated in Odoo 19.
  • The db service (create, duplicate, drop or list databases) is removed in Odoo 20 (fall 2026) and in Odoo Online 19.1.
  • The common and object services are scheduled for removal in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027).
  • The replacement is JSON-2: POST /json/2/<model>/<method>, an API key as a bearer token, named arguments only, one transaction per request.

Sources: Odoo 19.0 External API · Odoo 20.0 External API

So not everything breaks on Odoo 20. Only database-management calls do. The rest keeps working, with deprecation warnings, until Odoo 22. This tool tells you which is which.

What it reports

Severity Meaning
BREAKS-ON-20 db-service calls: /xmlrpc/2/db, "service": "db", create_database, duplicate_database, db_exist, change_admin_password
REMOVED-IN-22 /xmlrpc/2/common, /xmlrpc/2/object, /jsonrpc, execute_kw, the odoorpc / erppeek / odoo-xmlrpc / ripcord client libraries, and n8n Odoo nodes that still use JSON-RPC
CHECK Likely legacy but needs a person to look: an XML-RPC client import, or an n8n Odoo node that can't be classified

It reads .py .js .mjs .cjs .ts .php .rb .java .cs .go .sh .json .yml .yaml. It skips .git, node_modules, virtualenvs, build output and tool caches, and any file over 2 MB (listed as "not read").

n8n: workflow exports are parsed, not just searched. The Odoo node's v2 uses JSON-2 when it's set up with the API-key credential, and /jsonrpc with the older username/password credential. v1 always uses /jsonrpc. So a v2 node on an API-key credential is reported as clean (n8n source).

Exit codes

Code Meaning
0 Nothing found
1 Legacy calls found
3 Couldn't tell: the path doesn't exist, it held no readable files, or files were skipped and nothing was found

3 is never reported as clean, so it's safe to use as a CI gate:

- run: pipx run odoo-rpc-sweep .   # fails the build while legacy calls remain

Limits (read these)

  • It's a pattern match. It finds candidates, and a person confirms each one. A URL built from pieces (base + "/xml" + "rpc") can slip past it.
  • It only sees the code you point it at. For the calls actually hitting your Odoo, including ones from code you don't have, install the free RPC Migration Scanner module on Odoo 19. It records every legacy caller by user, API key and method. Store modules can't be installed on Odoo Online, and that's where this tool comes in.
  • Third-party connectors (Zapier, Make, a vendor's packaged app) have to be migrated by their vendors.

Help with the migration

Built and maintained by AIQSO, which offers fixed-price Odoo API migrations. Questions and bugs: GitHub issues, or odoo-apps@aiqso.io.

License

MIT

Releasing (maintainers)

  1. Bump __version__ in src/odoo_rpc_sweep/__init__.py and date the CHANGELOG.md entry.
  2. git tag vX.Y.Z && git push origin vX.Y.Z
  3. Approve the pypi environment in the Actions run. The upload uses PyPI trusted publishing, with no stored token.

Metadata

Release files for odoo-rpc-sweep 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odoo-rpc-sweep 0.1.0
File Size Uploaded
odoo_rpc_sweep-0.1.0.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for odoo-rpc-sweep 0.1.0
File Interpreter ABI Platform
odoo_rpc_sweep-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.5 kB

Release files / odoo_rpc_sweep-0.1.0.tar.gz

Download URL odoo_rpc_sweep-0.1.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5bd7fa6fbaf5e0240d9ce6aeb480ad8c053f47de6867afcd7ede899bc23ea327
BLAKE2b-256 checksum
How to use checksums
db252db88bf197bf860b2946cc189b755aa2b072cfcb744a64b590f3d6841a6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / odoo_rpc_sweep-0.1.0-py3-none-any.whl

Download URL odoo_rpc_sweep-0.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a22215723a11771ad2760d3f200aac8bbfa44a45fbd9f18e2c4e95c0c2b6589
BLAKE2b-256 checksum
How to use checksums
3b3c671d886093a67f784ceac61bd0a251f053646a81e662e05d24b7acedca86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page