| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 1547 |
| Technical Name |
KendrioAPI |
| License | LGPL-3 |
| Website | https://github.com/tovfikur |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 1547 |
| Technical Name |
KendrioAPI |
| License | LGPL-3 |
| Website | https://github.com/tovfikur |
Kendrio API Explorer
Zero-configuration introspection, documentation & live RPC recording for Odoo 17
What is Kendrio API Explorer?
Kendrio API Explorer is a powerful zero-configuration module that automatically scans every installed Odoo model, field, relation, view, action, menu, HTTP route, ORM method, access rule, record rule, state machine, and context/domain pattern — then exposes everything as a live interactive REST API, an OpenAPI 3.0 specification, and a Postman Collection.
Stop writing API documentation by hand. Install the module, navigate to API Explorer → Swagger UI, and every model in your Odoo instance is already documented with real schema definitions, example payloads, authentication scripts, and try-it-out support.
Key Features
Full Model Introspection
Scans every installed model: fields, types, relations, required/readonly/tracking flags, and Python-level ORM methods.
OpenAPI 3.0 Generator
Live OpenAPI 3.0 spec with model schemas, JSON-RPC & XML-RPC endpoint docs, and full CRUD examples.
Postman Collection V2.1
Generates a ready-to-import Postman collection with session auth pre-request script and per-model CRUD requests.
Swagger UI
Embedded Swagger UI at /kendrio/swagger — explore and test every endpoint directly in the browser.
Live RPC Interceptor
Records real call_kw payloads and responses with timing. Survives transaction rollbacks via an isolated cursor.
State Machine Detector
Detects workflows: selection state fields, stage_id Many2ones, statusbar widgets, and state-dependent buttons.
ACL & Record Rules
Lists access rules and record rules per model with group membership and domain expressions.
Route & Menu Scanner
Enumerates all HTTP routes from the Werkzeug routing map and all UI menu items with their actions.
Context/Domain Analyzer
Extracts context keys and domain patterns from field definitions, view arch, and action defaults.
Quick Start
Install the module
Go to Apps, search for Kendrio API Explorer, click Install. Requires Odoo 17 CE or EE.
Open the Swagger UI
Navigate to API Explorer → Swagger UI in the main menu, or go directly to /kendrio/swagger. Requires Administrator access.
Export Postman Collection
Download a ready-to-use Postman collection from /kendrio/api/postman.json or via the Swagger UI download button.
Enable RPC Recording (optional)
Go to API Explorer → RPC Logs → Settings, enable recording, and every ORM call from the web client will be logged with full payloads.
base.group_system) access. Only Odoo Administrators can use the API Explorer.
REST API Endpoints
All endpoints are GET and require an active Odoo session with Administrator rights. The base URL is your Odoo instance root (e.g. https://odoo.example.com).
| Method | Path | Description |
|---|---|---|
| GET | /kendrio/swagger | Interactive Swagger UI (HTML) |
| GET | /kendrio/api/openapi.json | Full OpenAPI 3.0 specification (JSON) |
| GET | /kendrio/api/postman.json | Postman Collection V2.1 download |
| GET | /kendrio/api/models | List all installed models |
| GET | /kendrio/api/models/{name} | Model detail (fields, methods, relations) |
| GET | /kendrio/api/models/{name}/fields | All field definitions for a model |
| GET | /kendrio/api/models/{name}/methods | ORM and custom methods with signatures |
| GET | /kendrio/api/models/{name}/views/{type} | Parsed view arch (form, tree, kanban, search) |
| GET | /kendrio/api/models/{name}/rpc | RPC example payload for any method |
| GET | /kendrio/api/models/{name}/state-machine | State machine definition and transitions |
| GET | /kendrio/api/models/{name}/context | Context keys and domain patterns |
| GET | /kendrio/api/models/{name}/actions | All actions bound to a model |
| GET | /kendrio/api/routes | All HTTP routes from the routing map |
| GET | /kendrio/api/menus | UI menu tree |
| GET | /kendrio/api/actions | All actions (window, server, client) |
| GET | /kendrio/api/acl | Model access rules (ir.model.access) |
| GET | /kendrio/api/acl/rules | Record rules (ir.rule) with domains |
| GET | /kendrio/api/modules | Installed modules with metadata |
| GET | /kendrio/api/server-actions | Server actions (ir.actions.server) |
| GET | /kendrio/api/rpc-logs | Recent RPC log entries |
| GET | /kendrio/api/rpc-logs/status | RPC logging status and log count |
| POST | /kendrio/api/rpc-logs/toggle | Enable/disable RPC recording |
Example: Fetch a Model's Schema
# Using Python requests import requests session = requests.Session() # 1. Authenticate session.post("https://odoo.example.com/web/session/authenticate", json={ "jsonrpc": "2.0", "method": "call", "params": {"db": "mydb", "login": "admin", "password": "admin"} }) # 2. Get sale.order schema r = session.get("https://odoo.example.com/kendrio/api/models/sale.order") model = r.json() # 3. Get OpenAPI spec for specific models r = session.get("https://odoo.example.com/kendrio/api/openapi.json", params={"models": "sale.order,account.move"}) spec = r.json() # OpenAPI 3.0 dict
Please log in to comment on this module