OdooWiki OCA HUB

External System HTTP

base_external_system_http folder_open OCA/server-backend open_in_new
Base License: AGPL-3

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.0

Lets 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.

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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation 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.0

Create an external system record and optionally define endpoints.

Example configuration:

  • Host: api.example.com
  • Remote path: /v1

Define endpoints such as:

  • status → /status
  • items → /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.

info

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.