Skip to main content
The synth-ai package is the single Python SDK for Synth. One install, one SynthClient, multiple product surfaces:
SurfaceEntryUse it for
Managed Researchclient.researchHosted research runs, projects, evidence, MCP workflows
Research Factoryclient.researchMulti-run factory and bench programs on the same control plane
Infrastructureclient.containers, client.tunnels, client.poolsContainers, tunnels, pools, rollouts
CLIsynth-aiTerminal access to the same surfaces
Managed Research and Research Factory are not separate packages or doc sites. They are namespaces on SynthClient, with MCP as the agent-client alternative.

Install

uv add "synth-ai[research]==0.11.2"
export SYNTH_API_KEY="sk_..."
from synth_ai import SynthClient

client = SynthClient()

# Managed Research + Research Factory
projects = client.research.projects.list()

# Infrastructure (optional)
print(client.containers.list())
print(client.tunnels.list())
print(client.pools.list())

Choose a path

Managed Research quickstart

Start a hosted run and read back evidence.

Research Factory

Multi-run programs on the same client.research surface.

MCP setup

Connect Codex, Claude Code, or Cursor to the hosted MCP server.

SynthClient reference

Namespaces, auth, async client, and configuration.

Tunnels

Tunnel records and leases for local containers.

Pools

Rollouts, artifacts, usage, and events.

Auth and base URL

By default the SDK reads SYNTH_API_KEY and uses the production backend. Pass api_key and base_url when you need explicit control.
client = SynthClient(
    api_key="sk_...",
    base_url="https://api.usesynth.ai",
)
Next: Install and Authenticate.