Odoo (API Key)
Integrate your application with the Odoo JSON-2 API using an API key
🚀 Quickstart
Connect to Odoo with Tenklo and see data flow in 2 minutes.
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Odoo (API Key).
Go to Connections -> Add Test Connection -> Authorize, then enter your Odoo domain and API key. Later, you'll let your users do the same directly from your app.
Let's make your first request to the Odoo API (search and read partner records). Odoo's JSON-2 API takes the model and method in the URL path, and any arguments in the request body. Replace the placeholders below with your Environment API key, integration ID, and connection ID:
curl "https://api.tenklo.dev/proxy/2/res.partner/search_read" \
-X POST \
-H "Authorization: Bearer <NANGO-API-KEY>" \
-H "Provider-Config-Key: <INTEGRATION-ID>" \
-H "Connection-Id: <CONNECTION-ID>" \
-H "Content-Type: application/json" \
-d '{"domain": [["is_company", "=", true]], "fields": ["name"]}'Or fetch credentials with the Node SDK or API.
✅ You're connected! Check the Logs tab in Tenklo to inspect requests.
Follow our Auth implementation guide to integrate Tenklo in your app.
To obtain your own production credentials, follow the setup guide linked below.
📚 Odoo (API Key) integration guides
Nango-maintained guides for common use cases.
- How do I link my Odoo account?
Connect your Odoo account using the Connect UI
Official docs: Odoo JSON-2 API
This integration uses Odoo's native JSON-2 API (/json/2/<model>/<method>) with a personal API key. If your Odoo instance instead exposes the third-party OCA REST API module, use the Odoo (OAuth) or Odoo (Client Credentials) integration instead.
🧩 Pre-built syncs & actions for Odoo (API Key)
Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.
Others
| Function name | Description | Type | Source code |
|---|---|---|---|
call-method | Call an arbitrary Odoo model method through the JSON-2 API. | Action | 🔗 Github |
count-records | Count Odoo records matching a domain, without fetching them. | Action | 🔗 Github |
create-record | Create an Odoo model record | Action | 🔗 Github |
delete-record | Delete an Odoo model record. | Action | 🔗 Github |
duplicate-record | Duplicate an existing Odoo model record. | Action | 🔗 Github |
find-records-by-name | Find Odoo records by a partial name match, as used for autocomplete/dropdown lookups. | Action | 🔗 Github |
get-record-fields | Fetch Odoo fields metadata for a model. | Action | 🔗 Github |
read-record | Fetch specific Odoo records by ID. | Action | 🔗 Github |
search-read-records | Search and read records from any Odoo model. | Action | 🔗 Github |
search-records | Search for Odoo record IDs matching a domain, without reading their fields. | Action | 🔗 Github |
update-record | Update an Odoo model record | Action | 🔗 Github |
contacts | Sync Odoo contacts and companies. | Sync | 🔗 Github |
crm-leads | Sync Odoo CRM leads and opportunities. | Sync | 🔗 Github |
invoices | Sync Odoo invoices and bills | Sync | 🔗 Github |
payments | Sync Odoo customer and vendor payments | Sync | 🔗 Github |
products | Sync Odoo products. | Sync | 🔗 Github |
project-tasks | Sync Odoo project tasks. | Sync | 🔗 Github |
sale-orders | Sync Odoo sale orders. | Sync | 🔗 Github |