python
Migra de XML-RPC a JSON-2 antes de Odoo 22
La documentación oficial de Odoo programa la eliminación de XML-RPC y JSON-RPC para Odoo 22. Así se ve la misma llamada con la API JSON-2.
Focuz Academy · 6 de octubre de 2026 · 7 min
La documentación de la API externa de Odoo 19 presenta JSON-2 como la nueva API y programa la eliminación de los endpoints /xmlrpc, /xmlrpc/2 y /jsonrpc para Odoo 22 (otoño de 2028).
Antes: XML-RPC
import xmlrpc.client
models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
leads = models.execute_kw(db, uid, password, "crm.lead", "search_read",
[[["type", "=", "opportunity"]]], {"fields": ["name"], "limit": 5})
Después: JSON-2
import httpx
r = httpx.post(f"{url}/json/2/crm.lead/search_read",
headers={"Authorization": f"bearer {api_key}", "X-Odoo-Database": db},
json={"domain": [["type", "=", "opportunity"]], "fields": ["name"], "limit": 5})
r.raise_for_status()
leads = r.json()
Lo que cambia
- Autenticación con API key en la cabecera, sin
uidni contraseña. - Argumentos con nombre: JSON-2 no acepta argumentos posicionales.
- Una transacción por llamada: usa métodos compuestos como
search_readen lugar de encadenar. - Errores HTTP reales (4xx/5xx) con un JSON que describe el problema.
- Según la documentación, el acceso a la API externa no está disponible en los planes One App Free ni Standard de Odoo Online.
Código probado por Focuz contra Odoo 20.
Guía gratuita: 5 agentes Python para Odoo
Casos de Junior a Senior, con código verificado contra Odoo 20.
Descargar →