Docs/Tutorials
Tutorials

Integrate APIs, agents, and any system, step by step

Guided paths for the work your teams already do. Each tutorial is a full story, from the first service to a running integration.

Design and build production-ready integrations in Python

A complete path from the first service to a running integration that orchestrates remote systems. This is the story to start with when the project is still on paper.

Start the main tutorial

Publish, secure, and document REST from one platform

Design the API, attach security, and let OpenAPI come from the services themselves. One control plane for the APIs you expose.

REST API tutorial

Route HL7, FHIR, and EDIFACT on the same platform

Clinical and EDI traffic next to everything else. Destinations in the dashboard or a routing service of your own, no second stack.

HL7 tutorial

Expose Python services as tools for every MCP client

Stand up a gateway, assign keys, and let Cursor, Claude, and the rest of the clients call the services you already run.

MCP tutorial

Call and accept SOAP without making SOAP your job

Build requests as Python objects, unwrap incoming envelopes, and keep WS-Security in definitions. The protocol stays in the platform.

SOAP tutorials

Run background jobs and APIs on a schedule

The same service, on a cron or an interval, with a history operations can read. Jobs live next to the APIs they call.

Scheduler tutorial

Deploy code and configuration the same way every time

A GitOps path from a project on disk to a running environment. Services and config move together.

Deployment tutorial

Microsoft 365 and OData without a side integration

Automate 365 and query SAP or Dynamics through OData from the same dashboard as everything else.

Microsoft 365 tutorial

Rules, tests, and the rest of the path

Express business rules both sides can read, and test services without standing up a server.

Rule engine tutorial
flight_delays.py
def handle(self):

    data = self.request.payload

    # Business people wrote the rule, Python runs it
    if result := self.rules.airport.match(data):
        self.invoke('ops.rebook-passengers', result)

Ready to build your own integrations?

Pick a tutorial above or schedule a demo to see how Zato fits your environment.

Open source In Python