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

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.10.1
File Size Uploaded
coderpad_py-2026.10.1.tar.gz 118.3 kB Details

Built distribution (wheel)

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

Total release size: 160.4 kB

Release files / coderpad_py-2026.10.1.tar.gz

Download URL coderpad_py-2026.10.1.tar.gz
Size 118.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f9cebdff69ea1f8dfed16c6d8dbb6eea4a319b100a70169ed460dd40072897bb
BLAKE2b-256 checksum
How to use checksums
b2fa1b702f3d4159c4503f5ea3ac7cd757f9dfa6261a515dba462b3a34a1de4d
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 Oct 1, 2026.

Transparency log

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

Download URL coderpad_py-2026.10.1-py3-none-any.whl
Size 42.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6eff7d017c82186d5cc7fb9e5a7df4bb6c201f8234498a9b2429ea8287b0c0f
BLAKE2b-256 checksum
How to use checksums
5f1b4b1e4d4e93f598330f187c8bf789c00db93be20d98e5fd3fc171b854a3a4
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 Oct 1, 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