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.

Create the integration

In Tenklo (free signup), go to Integrations -> Configure New Integration -> Odoo (API Key).

Authorize Odoo

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.

Call the Odoo API

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.

Implement Tenklo in your app

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.

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 nameDescriptionTypeSource code
call-methodCall an arbitrary Odoo model method through the JSON-2 API.Action🔗 Github
count-recordsCount Odoo records matching a domain, without fetching them.Action🔗 Github
create-recordCreate an Odoo model recordAction🔗 Github
delete-recordDelete an Odoo model record.Action🔗 Github
duplicate-recordDuplicate an existing Odoo model record.Action🔗 Github
find-records-by-nameFind Odoo records by a partial name match, as used for autocomplete/dropdown lookups.Action🔗 Github
get-record-fieldsFetch Odoo fields metadata for a model.Action🔗 Github
read-recordFetch specific Odoo records by ID.Action🔗 Github
search-read-recordsSearch and read records from any Odoo model.Action🔗 Github
search-recordsSearch for Odoo record IDs matching a domain, without reading their fields.Action🔗 Github
update-recordUpdate an Odoo model recordAction🔗 Github
contactsSync Odoo contacts and companies.Sync🔗 Github
crm-leadsSync Odoo CRM leads and opportunities.Sync🔗 Github
invoicesSync Odoo invoices and billsSync🔗 Github
paymentsSync Odoo customer and vendor paymentsSync🔗 Github
productsSync Odoo products.Sync🔗 Github
project-tasksSync Odoo project tasks.Sync🔗 Github
sale-ordersSync Odoo sale orders.Sync🔗 Github

On this page