Extract Odoo ERP data with the Data Platform connector
The Odoo connector extracts data from any Odoo ERP instance: contacts, CRM leads, sales orders, invoices, products, inventory, HR, projects, and more
Objective
The Odoo connector extracts data from any Odoo ERP instance: contacts, CRM leads, sales orders, invoices, products, inventory, HR, projects, and more.
26 predefined models covering 9 domains + a custom model endpoint for any Odoo model + a model fields endpoint for schema introspection.
The connector returns raw JSON from the Odoo JSON-RPC API. The platform automatically flattens nested objects into columns and stores the result in the lakehouse. No manual schema definition needed.
Compatible with Odoo 14–19.
1. Get an API Key
- Log in to your Odoo instance
- Click your avatar (top right) > My Profile
- Go to the Account Security tab
- Click New API Key
- Enter a description (e.g.,
data-platform-connector) - Click Generate Key
- Copy the key immediately: it is shown only once
Odoo Online: API access requires the Custom plan. See Odoo Pricing.
2. Configure Credentials
3. Available Endpoint Types
models: Predefined Models
26 commonly-used Odoo models, grouped by domain:
Parameters:
custom_model: Any Odoo Model
For models not in the predefined list (e.g., helpdesk.ticket, mrp.production, fleet.vehicle).
model_fields: Schema Introspection
Returns field definitions for any model (name, type, required, help text, relation). Useful to discover available fields before extracting data.
4. Add an Odoo source on Data Platform
- In the Data Platform Connectors, find Odoo in the source store and click Select.
- Fill in the connection fields from step 2, URL, Login, API Key, and (for self-hosted) Database.
- Click Connect to verify the credentials. The connector authenticates via JSON-RPC and resolves your Odoo
uid. - Click Add an Endpoint, choose
models,custom_model, ormodel_fieldsfrom the dropdown, and fill in the parameters that endpoint requires (e.g. Model, optional Fields Filter, optional Domain Filter, optional Max Items). - Repeat step 4 for every additional endpoint you want to ingest in this source. Each becomes a separate table in the lakehouse.
- Name the source and click Create.
The technical name cannot be changed after the source is created. It is used when opening the source via the Data Platform SDK.
5. Quick Example: Extract Contacts
- Endpoint:
models - Model:
res.partner(Contacts) - Fields Filter:
name, email, phone, is_company, city, country_id - Max Items:
100(or empty to extract all)
The connector returns raw JSON from the Odoo API. The platform automatically flattens nested objects and stores the result in the lakehouse.
6. Domain Filter Syntax
The domain filter uses Odoo's Polish (prefix) notation. Enter it as a JSON array:
Common operators: =, !=, >, <, >=, <=, in, not in, like, ilike
OR conditions use the | prefix:
Leave empty [] to extract all records.
7. Best Practices
Use the fields filter
Without a filter, Odoo returns all fields: some models have 200+ fields. Use the fields filter to keep only what you need, especially for large models like res.partner.
Start with max_items
Set max_items to 10 or 100 to test quickly. Remove the limit once satisfied.
Use model_fields to discover fields
The model_fields endpoint returns the complete schema for any model. Use it to find field names, types, and relationships before setting up extraction.
Stages and reference tables
Extract crm.stage, account.journal, product.category as reference tables. Join them with main data on the stage/journal/category ID fields.
8. Known Limitations
- Model availability depends on installed apps. Models like
crm.leadrequire the CRM app,sale.orderrequires Sales, etc. Usecustom_modelto test if a model exists on your instance. - Some fields require specific user groups. For example,
project.project.stage_idrequires the "Use Stages on Project" group. If you get a permission error, usefields_filterto exclude restricted fields. - Odoo Online API access requires the Custom plan. See Odoo Pricing.
For detailed technical information (auth internals, full endpoint reference, pagination, rate limits, output format, domain filter reference, version compatibility, limitations), see the Odoo Technical Reference.
Go further
If you need training or technical assistance to implement our solutions, contact your sales representative or click on this link to get a quote and ask our Professional Services experts for a custom analysis of your project.
Ask questions, give your feedback and interact directly with the team building the Data Platform on the dedicated Discord channel.
If you need support with your OVHcloud services, create a request in our Help Centre.
Join our community of users.

