Skip to main content

Requirements, Odoo plan, and API key for connecting

What you need on the Odoo side before connecting: the right plan, a dedicated user, and an API key rather than a password.

What you need on the Odoo side before connecting. For connection instructions, see the article on connecting, reconnecting, or disconnecting Odoo.


Odoo plan

Warning: On Odoo Online, the external API only exists on the Custom plan. With One App Free or Standard, Odoo rejects access and the connection cannot be completed. The plan must be upgraded first.

On-premise installations and Odoo.sh have no such restriction: the external API is enabled by default.

If you try with a plan that does not include it, you will see this message:

Your Odoo Online plan does not include API access. Upgrade to the Custom plan, or connect an on-premise or Odoo.sh instance.


Supported versions

Enginy officially supports Odoo 17 and later, which are the three versions Odoo maintains. It also works on earlier versions down to 14, but without guarantees.

Some steps have different names depending on the version. We point that out where it matters.


Which user to use

Enginy accesses Odoo with the permissions of the user behind your API key. It sees exactly what that person sees, no more and no less.

We recommend creating a dedicated internal user, for example [email protected], with access to Contacts and CRM. This has two benefits: the activity trail in Odoo stays clean and attributed to the integration, and the connection does not break when someone leaves the company.

An administrator user works too.


API key, never the password

Warning: Odoo accepts the account password in place of the API key, so the connection would work. Do not do it. A password grants full access to the Odoo web interface, which an API key does not. It stops working the moment that user enables two-factor authentication. And it cannot be rotated or revoked without changing the account password.

Odoo API keys are 40-character hexadecimal strings. If you paste something that does not look like one, the form warns you without blocking:

This does not look like an Odoo API key. We recommend connecting with an API key, not your password.

Treat that warning as "you have probably pasted your password".


How to generate the API key

  1. Log into Odoo with the user Enginy will use.

  2. Click your avatar (top right) and open My Preferences. On older versions it is just Preferences.

  3. Open the Security tab. On Odoo 17 and earlier it is called Account Security.

  4. Under API Keys, click New API Key.

  5. Odoo will ask for your password or two-factor code to confirm.

  6. Give it a recognizable name, for example Enginy integration.

  7. Under Duration, pick the longest option available.

  8. Click Generate key and copy it right away.

Important: Odoo shows the key only once. If you close the window without copying it, you will have to generate another one.


Key expiry

From Odoo 18 onwards, API keys expire. The options depend on the plan and the role: administrators can usually choose up to 1 year or a persistent key, while some plans cap at 3 months. On Odoo 17 and earlier, keys do not expire.

When the key expires, the connection pauses and the Odoo card shows Reconnect. You need to generate a new key and reconnect. No configuration is lost.


What to have at hand

Value

Where to find it

Odoo URL

The address you use to open Odoo, for example https://mycompany.odoo.com. No trailing paths.

Database

On Odoo Online it is the subdomain of the URL, the part before .odoo.com. On self-hosted installations, the database name shown on the login screen when there is more than one.

Login

The email or username used to sign into Odoo.

API key

The one you just generated.


How to revoke access

In Odoo, go to My Preferences → Security → API Keys and delete the Enginy key. The connection stops working immediately.

You can also disconnect from the Enginy Integrations page. These are two separate things: disconnecting in Enginy does not delete the key in Odoo.

Did this answer your question?