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.30

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.30
File Size Uploaded
coderpad_py-2026.9.30.tar.gz 115.8 kB Details

Built distribution (wheel)

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

Total release size: 157.9 kB

Release files / coderpad_py-2026.9.30.tar.gz

Download URL coderpad_py-2026.9.30.tar.gz
Size 115.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bfcf7c37b15d213abece3805dbf0c85ab72ef4503ab910cddff0b1e7bcccfc1d
BLAKE2b-256 checksum
How to use checksums
7d980881b02a136c82f8f2d852cb847fe1c1b4232dc7afd86ef6ed7d74368d1e
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 30, 2026.

Transparency log

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

Download URL coderpad_py-2026.9.30-py3-none-any.whl
Size 42.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cec184c79223932bd94d73b35214a9171711512ba54a4446028f9584379ee475
BLAKE2b-256 checksum
How to use checksums
b96e34e7bd573b086f22950b2053720d8323380499ac97ce40b01a6c85c5b28d
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 30, 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