Architecture

How the OTOBO Python SDK is structured and how it talks to GenericInterface.

Architecture — OTOBO Python SDK

The otobo PyPI package is a thin, OTOBO-branded layer over a shared GenericInterface client.

flowchart LR
  App[Your Python app] --> OTOBO[otobo package]
  OTOBO --> GI[otrs_gi_core]
  GI --> REST[OTOBO GenericInterface REST]
  CLI[otobo-cli] --> GI

What you import

from otobo import OTOBOClient, ClientConfig, TicketCreate, OTOBOError

OTOBOClient is the async HTTP client. Domain models (TicketCreate, TicketSearch, …) are Pydantic v2 types validated before each request.

Request flow

  1. You call client.login(BasicAuth(...)).
  2. Each method builds a JSON payload (credentials + ticket data).
  3. The client POSTs/PUTs to {base_url}/Webservice/{name}/{operation}.
  4. Responses are parsed into Ticket models or raise OTOBOError.

CLI vs library

ComponentPurpose
OTOBOClientRuntime ticket CRUD from your application
otobo-cli setup-systemOne-time webservice and user provisioning on the OTOBO host

If you run Znuny instead of OTOBO, use the separate znuny package — same API shape, Znuny-specific CLI defaults.

Further reading