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.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| coderpad_py-2026.10.1.1.tar.gz | 122.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| coderpad_py-2026.10.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 164.9 kB
Release files / coderpad_py-2026.10.1.1.tar.gz
| Download URL | coderpad_py-2026.10.1.1.tar.gz |
|---|---|
| Size | 122.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc725eb413b58fc3884d87cb8b19ba9bbb816c50be1c753f6765b31c890a5db3
|
|
BLAKE2b-256 checksum How to use checksums |
fde3510a0e6284d4915e54a20a8d9ee238dd21ccd6492ef9354c9107c3c98b35
|
| 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 logRelease files / coderpad_py-2026.10.1.1-py3-none-any.whl
| Download URL | coderpad_py-2026.10.1.1-py3-none-any.whl |
|---|---|
| Size | 42.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aebeb43d6438bf4da340207e3a4ae95b04add8ddb7f17f974c1a723a71ac4600
|
|
BLAKE2b-256 checksum How to use checksums |
4f660cda32170b3a7c403baee122a9d3ac7fc097316cc9ad1c74767cf82b8972
|
| 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