odoo-direct-jsonrpc-access

Calls Odoo 19's /jsonrpc execute_kw endpoint directly with login and password credentials.

3|1|Updated Apr 8, 2026
One-click install
npx skills add https://github.com/ever-just/agentskills --skill odoo-direct-jsonrpc-access-ever-just
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: odoo-direct-jsonrpc-access
Source: https://github.com/ever-just/agentskills/tree/main/skills/odoo-direct-jsonrpc-access
Command: npx skills add https://github.com/ever-just/agentskills --skill odoo-direct-jsonrpc-access-ever-just

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When you only have an Odoo login and password — no MCP session and no Bearer API key — you still need a reliable way to read and write tenant data from scripts, background subagents, or CI jobs. This Skill provides the exact wire protocol for Odoo 19's classic /jsonrpc endpoint, including the auth quirks, batching patterns, and pitfalls that otherwise cost hours of debugging. ## Core Features & Use Cases - Direct execute_kw access: Authenticate and call any Odoo model method over HTTP using a plain password in the API-key slot, with ready-to-use Python and curl patterns. - Bulk import patterns: Batch create/write in chunks of 50–100 records and use idempotent dedup-before-create logic so re-running an import never duplicates records. - Pitfall guidance: Covers context-in-kwargs nesting, field-name drift between Odoo versions (group_ids vs groups_id), private-method remote-call boundaries, and timeout tuning for bulk operations. - Use Case: You receive a CSV of 1,400 companies and a teammate's Odoo login/password. Use this Skill to batch-import them into res.partner with dedup on website domain, completing in ~18 HTTP calls instead of 1,400. ## Quick Start Ask the agent to connect to your Odoo 19 tenant via the /jsonrpc endpoint using the provided login and password, then search or create records on the model you specify.

Frequently Asked Questions about odoo-direct-jsonrpc-access

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I call Odoo's JSON-RPC API with a username and password?▼

Send a JSON-RPC 2.0 POST to the /jsonrpc endpoint with service 'object' and method 'execute_kw', passing database, uid, password, model, method, args, and kwargs. Odoo accepts a plain user password in the API-key slot, so no separate API-key provisioning is needed.

How do I bulk import records into Odoo without duplicates?▼

Search for existing records on a stable natural key like domain or email before creating, and write instead of create on a match. Batch creates in chunks of 50–100 records per call, and use one search_read per batch rather than one search per record.

Can I use a password instead of an API key for Odoo execute_kw?▼

Yes, Odoo accepts a plain user password in the fourth positional argument of execute_kw where docs show an API key. The uid/password pair is stable across calls, so most scripts skip a separate authenticate round-trip.

Why does Odoo reject my context parameter in execute_kw?▼

Context flags must be nested inside the kwargs dict as {'context': {...}}, not passed as top-level kwargs. Passing them directly makes Odoo treat them as record fields and reject the call with an unexpected-keyword error.

Why does Odoo say private methods cannot be called remotely?▼

Methods with leading underscores or non-API internal methods have no remote call path at all — it is not a permissions issue. Use a public wrapper method or trigger the side effect through a state-field write that an automation reacts to.

When should I use MCP or Bearer API access instead of JSON-RPC?▼

Prefer MCP tools or the Bearer /json/2/ endpoint whenever either is available, because the legacy JSON-RPC/XML-RPC surface is deprecated with removal targeted in Odoo 22. Use direct JSON-RPC only as a fallback when credentials were shared as a plain login/password.