Dynamic REST API Builder | JSON API Generator | Odoo Postman Export | Swagger-Ready Webservice | Low-Code Integration Toolkit | Generic Connector | Developer Utilities | Technical Framework
by Pandoratech https://apps.odoo.com/apps/browse?repo_maintainer_id=409264 , Shawal Ahmad Mohmand https://apps.odoo.com/apps/browse?repo_maintainer_id=409264$ 99.00
Availability |
Odoo Online
Odoo.sh
On Premise
|
Lines of code | 924 |
Technical Name |
pandora_dynamic_api_builder |
License | OPL-1 |
Website | https://apps.odoo.com/apps/browse?repo_maintainer_id=409264 |
Versions | 14.0 15.0 16.0 17.0 18.0 |
Dynamic REST API Builder for Odoo
Design Secure Document JSON endpoints without coding

pandora_dynamic_api_builder lets technical users expose any Odoo model
via JSON-only REST endpoints. Control CRUD, domains, fields and even custom
Python code from the UI, secured by an API Key and optional HTTP Basic.
- Endpoint Types - Create, Read, Write, Delete, Python Code
- API-Key security + Basic Auth per endpoint
- Domain & Field modes - Disallow | Merge | Override
- Automatic M2M / O2M payload conversion
- One-click Postman export, ready for Swagger
- 100% JSON in / JSON out (no query params)
Installation
- Copy the module into your
addons
path. - Activate Developer Mode.
- Apps -> Update Apps List -> Install Dynamic REST API Builder.
Dependencies: base
, web
(standard in Community & Enterprise).
Quick Start - Your First API in 60 seconds
- Menu: Technical -> Dynamic API -> Dynamic APIs -> New
- Name it (Mobile App v1), note the auto-generated API Key.
- Set
/api/v1
as Base Path, Save. - Add an endpoint -> Operation
Read
, Modelproduct.template
. - Save & Close. Ready!
POST /api/v1/read/product/template
Headers: X-API-Key: <key>
Body : {}
Endpoint Fields Explained
Field | Purpose |
---|---|
Type | Public (API-Key) or Authenticated (API-Key + Basic Auth) |
Operation | CRUD or Python Code |
Sub-path | Auto-generated; editable |
Domain / Field Modes | Disallow | Merge | Override |
Required / Optional Fields | Whitelist for Create / Write |
Python Code | Safe-eval script; last expression or result variable is returned |
Relational Field Cheat-Sheet
{
"partner_id": 7, // many2one
"tag_ids": [1,4,9], // many2many -> (6,0,[ids])
"order_line": [ // one2many
{"product_id":3,"qty":2}, // create
{"id":88,"qty":10}, // update
{"id":90,"delete":true} // delete
]
}
Calling Endpoints (curl / Postman)
curl -X POST http://localhost:8069/api/v1/read/product/template \
-H "X-API-Key: key123" -H "Content-Type: application/json" \
-d '{"limit":20,"domain":[["list_price",">",10]]}'
Python Code Endpoint Example
# Variables: env, model, payload, user, request, _
moves = model.search([('state', '=', payload.get('state', 'draft'))])
result = moves.read(['id', 'name'])
Postman Collection Export
Click Export Postman on the API form - import the JSON into Postman and start testing with {{base_url}}
+ {{api_key}}
variables pre-filled.
Instant CRUD Endpoints
Every Dynamic-API endpoint can be created in seconds - no code required. Pick the model, choose the verb (Create / Read / Write / Delete), and you're done.
- Point-and-click - no Python, no REST framework
- Respect ACLs - Odoo security rules are enforced automatically
- Pagination & domain helpers already built-in




Custom Logic with Python Code
Need something beyond CRUD? Switch the endpoint to Python Code, write a few lines, and the safe-eval sandbox executes it on every request.
- Access helpers -
env
,model
,payload
,user
,request
- Return anything - last expression or
result
variable becomes the API response - Still secured - sandbox blocks
import os
,open()
, etc.

Move your APIs in one click
Need to copy the whole Dynamic-API configuration to another server?
Just open the API record -> click Export JSON.
A single file is downloaded containing every endpoint, domain rule and
field list. On the target system choose Import JSON, upload the
file, and you're done - your endpoints appear instantly.
- Full fidelity - domains, fields, Python code, active flags
- Safe - existing APIs can be overridden only if you tick 'Override'
- Portable - works across Odoo databases and versions

Support & Contact
Email: support@pandoratech.example
App Store: Pandora Tech Modules
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module