The pricing/plan documentation for Odoo Online https://www.odoo.com/nl_NL/pricing states that the external API (XML-RPC and the new JSON/2 endpoint) is only available on the Custom plan for Odoo Online customers. However, on a freshly-created Online database on the One App Free plan I can authenticate and read data through both endpoints without any restriction.
Test setup:
- URL: https://<subdomain>.odoo.com
- Version: saas~19.3+e
- Plan: One App Free (only Sales installed)
- Auth: personal API key generated under My Profile → Security
Working calls:
# JSON/2
curl -X POST https://<subdomain>.odoo.com/json/2/res.partner/search_count \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{"domain": []}'
# → 3
# XML-RPC
common.authenticate(db, login, api_key, {}) # returns uid
models.execute_kw(db, uid, api_key, 'res.partner', 'search_count', [[]]) # returns 3
Both succeed. So my questions:
- Is the "Custom plan only" line in the docs outdated, or does it only apply to certain operations (e.g. write/admin scope)?
- Is there a trial window after signup during which the API is open to all plans, and it gets locked down later?
- If it does get locked down, when exactly, and is there a way to detect that from the API itself (some specific HTTP status or error code)?
Would appreciate confirmation from anyone at Odoo or anyone who has hit the wall on an older Online database.