This module provides an HTTP(S) adapter for the base_external_system framework.
It allows Odoo to communicate with external systems over HTTP using a consistent adapter interface, supporting GET, POST and PUT requests, endpoint resolution, and connection testing.
The adapter itself acts as the client and is yielded via the standard system.client() context manager.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Lets Odoo talk to external web services over HTTP(S): you register an external system with its host, port and path, define named endpoints, and the module sends GET, POST, PUT and DELETE requests and tests the connection.
This module adds an HTTP connector to the external systems framework. On an external system record you get a new tab called "Configure http endpoints" where you list named endpoints, each with a logical name and the remote path to append to the base address.
The connection address is built automatically from the system's host, port and remote path plus the chosen endpoint. If the host has no http:// or https:// prefix, https:// is assumed.
- Requests can be sent with GET, POST, PUT and DELETE, with optional parameters, data or JSON payload and a timeout (16 seconds by default).
- If the endpoint name given does not exist on that system, an error is raised.
- Any response with an error status (400 or above) is turned into a clear error message showing the endpoint, the HTTP status and the returned text.
- A connection test performs a GET on the base address and reports failure with details.
All users can read endpoints; only administrators (settings group) can create, edit or delete them. Demo data includes an example connection to GitHub with a "tools" endpoint.
The module works on external.system and adds the new models external.system.endpoint and external.system.adapter.http.
Depends on
Models and fields (3)
- external.system · extends an existing modelendpoint_ids (Endpoints)
- external.system.endpoint · new modelname (Logical name for endpoint), endpoint, system_id
- external.system.adapter.http · new model
Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/server-backend.
terminal Installation and usage
OCA documentation · Odoo 16.0Usage
Source · Odoo 16.0Create an external system record and optionally define endpoints.
Example configuration:
- Host:
api.example.com - Remote path:
/v1
Define endpoints such as:
status→/statusitems→/items
Use the adapter:
with system.client() as client:
response = client.get(endpoint="status")
response = client.post(endpoint="items", json={"name": "Item"})
response = client.put(endpoint="items", json={"active": True})Responses are returned as requests.Response objects.
Errors raise ValidationError with detailed messages.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.