Skip to main content

Build Status PyPI

coderpad-py

Python library for the CoderPad Interview API.

Installation

pip install coderpad-py

This is tested on Python 3.12+.

Getting Started

"""Example usage."""

import sys

from coderpad.client import CoderPad

client = CoderPad(api_key="your-api-key")
pad = client.pads.create(title="Interview", language="python")
sys.stdout.write(pad.title)
for listed_pad in client.pads.list():
    sys.stdout.write(listed_pad.title)
org = client.organization.get()
sys.stdout.write(org.organization_name)
for user in client.organization.users.list():
    sys.stdout.write(user.email)

The organization users endpoint also supports server-side email filtering:

"""Filter organization users by email."""

from coderpad.client import CoderPad

client = CoderPad(api_key="your-api-key")
users = client.organization.users.list(email="person@example.com")

The equivalent asynchronous operation is await client.organization.users.list(email="person@example.com").

HTTPX2 transports

HTTPX remains the default client family. To opt in to HTTPX2, construct the HTTPX2 transport explicitly and pass it to the client. The standard coderpad-py installation includes both client families.

"""Configure CoderPad to use HTTPX2."""

import sys

import httpx2

from coderpad.client import CoderPad
from coderpad.transports import HTTPX2Transport

transport = HTTPX2Transport(timeout=httpx2.Timeout(timeout=10))
with CoderPad(api_key="your-api-key", transport=transport) as client:
    sys.stdout.write(client.base_url)

Use AsyncHTTPX2Transport with AsyncCoderPad for asynchronous calls. The limits, proxy and timeout arguments passed to these transports accept HTTPX2 configuration objects. Do not pass equivalent httpx objects across the package boundary. If the Screen API should also use HTTPX2, pass a separate HTTPX2 transport as screen_transport.

Existing HTTPX users do not need to change anything. Migrating to HTTPX2 only requires selecting the new transport; the CoderPad client methods and returned models are unchanged.

CoderPad Screen

Screen uses a separate API key and host from Interview:

"""List Screen campaigns and candidate tests."""

from coderpad import CoderPad

client = CoderPad(
    api_key="your-interview-api-key",
    screen_api_key="your-screen-api-key",
)
campaigns = client.screen.campaigns.list()
page = client.screen.tests.list(campaign_id=campaigns[0].id, limit=50)
assert page.pagination is not None

Screen test listings use offset pagination. While page.pagination.has_more_items is true, request the next page with start=page.pagination.next_start. Use SCREEN_EU_BASE_URL as screen_base_url for EU-hosted organizations. All Screen operations have equivalent methods on AsyncCoderPad.

Environment variables

Set CODERPAD_API_KEY for the Interview API. Optionally set CODERPAD_SCREEN_API_KEY for Screen. Then construct a client with CoderPad.from_env() or AsyncCoderPad.from_env():

"""Load API keys from the environment."""

import sys

from coderpad.client import CoderPad

client = CoderPad.from_env()
sys.stdout.write(client.base_url)

Full Documentation

See the full documentation.

Metadata

Release files for coderpad-py 2026.9.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coderpad-py 2026.9.7
File Size Uploaded
coderpad_py-2026.9.7.tar.gz 106.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for coderpad-py 2026.9.7
File Interpreter ABI Platform
coderpad_py-2026.9.7-py3-none-any.whl Python 3 none any Details

Total release size: 143.7 kB

Release files / coderpad_py-2026.9.7.tar.gz

Download URL coderpad_py-2026.9.7.tar.gz
Size 106.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d010017fc1fae7059d1bedd15539682339a4bcd93bf834970eb169fb0c0831ce
BLAKE2b-256 checksum
How to use checksums
f662283510364b961c072521c46cfa3ed6a454f04a545bc3d823953e6aa45e56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log

Release files / coderpad_py-2026.9.7-py3-none-any.whl

Download URL coderpad_py-2026.9.7-py3-none-any.whl
Size 36.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
885ee9ac6058438cd1ebbfaadd8ed023cc87f9f0c6da79c8b404708934aaed15
BLAKE2b-256 checksum
How to use checksums
ad55314c4cc414e907bcffc968e91e0c7ad933c26f67c36f333103fee9fb46ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page