pretalx-client

A typed Python client for the Pretalx REST API. No Django required.


pretalx-client talks to the Pretalx conference management API and gives you back frozen dataclasses instead of nested dicts. It handles pagination, multilingual field extraction, and the /talks/ vs /submissions/ endpoint inconsistency so you don’t have to.

The package depends only on httpx. Install it anywhere Python runs.

from pretalx_client import PretalxClient

client = PretalxClient("pycon-us-2026", api_token="abc123")

for speaker in client.fetch_speakers():
    print(f"{speaker.name} ({speaker.code})")

for talk in client.fetch_talks():
    print(f"{talk.title} -- {talk.submission_type}")
Getting Started

Install the package and make your first API call in under a minute.

Getting Started
API Reference

Complete autodoc reference for every public class, function, and module.

API Reference
Architecture

Three-layer design, adapter patterns, and the generated HTTP layer.

Architecture & Internals

What It Does

  • Typed responsesPretalxSpeaker, PretalxTalk, PretalxSlot frozen dataclasses with from_api() constructors

  • Automatic pagination – follows next links until all pages are collected

  • Multilingual fields – extracts the en value from Pretalx’s {"en": "...", "de": "..."} dicts

  • Endpoint fallback – tries /talks/ first, falls back to /submissions/?state=confirmed + accepted when the endpoint 404s

  • ID-to-name resolution – maps integer IDs for rooms, tracks, submission types, and tags to display names

  • Event discoveryPretalxClient.fetch_events() lists all events visible to your token

  • No framework dependency – just httpx under the hood

Indices and tables