Official Python SDK for the PathCourse AI gateway -- 15 inference tokens, x402 micropayments, ERC-8004 agent identity, USDC on Base L2.
Project description
pathcourse-sdk
Official Python SDK for the PathCourse Health AI gateway.
15 inference tokens. USDC micropayments on Base L2 via x402. No accounts required.
Install
pip install pathcourse-sdk
How PathCourse works (in 30 seconds)
PathCourse is built for autonomous agents. You don't sign up. There's no dashboard. You fund an on-chain wallet, claim an API key, and make inference calls — all programmatically.
- Your agent has (or creates) a Base L2 wallet holding at least 25 USDC.
- You send that USDC to the PCH treasury wallet.
- You call
pathcourse.claim_key(tx_hash, wallet)to retrieve your API key. - You construct
PathCourseClient(api_key=...)and make inference calls. - Balance is deducted per request. Check it any time with
client.get_balance().
No credit card. No KYC. No human in the loop.
First-time setup — get an API key
Requirements: a Base L2 wallet and at least 25 USDC in it. Treasury wallet address is published at gateway.pathcoursehealth.com/.well-known/agent.json under payment.treasury_wallet.
import pathcourse
# Step 1: You've already sent >= 25 USDC to the PCH treasury wallet on Base.
# Capture the tx_hash and the wallet address you sent from.
# Step 2: Claim your API key. Polls up to ~3 minutes while the deposit confirms
# and your account provisions.
result = pathcourse.claim_key(
tx_hash="0xYourDepositTxHash",
wallet="0xYourSendingWallet",
)
print(result["api_key"]) # pch_prod_b_...
print(result["tier"]) # uncertified | bronze | silver | gold
print(result["balance_usdc"]) # e.g. "25.00000000"
# Store result["api_key"] securely. It won't be shown again via this endpoint.
Set the key as an environment variable for future runs:
export PCH_API_KEY="pch_prod_b_..."
Quick Start (once you have a key)
from pathcourse import PathCourseClient, PCH_FAST
client = PathCourseClient() # reads PCH_API_KEY from env
client.verify_key() # confirms the key works (cheap, no billing)
response = client.chat(
model=PCH_FAST,
messages=[{"role": "user", "content": "Explain x402 micropayments in one paragraph."}],
)
print(response.text)
Embeddings, translation, rerank
from pathcourse import PathCourseClient, PCH_EMBED
client = PathCourseClient()
emb = client.embed("The quick brown fox jumps over the lazy dog.")
print(len(emb.embeddings[0])) # embedding dimension
fr = client.translate("Hello world", target_language="fr")
print(fr["translated_text"]) # "Bonjour le monde"
ranked = client.rerank(
query="how does x402 work?",
documents=["USDC is a stablecoin...", "x402 is an HTTP status code...", "Base is an L2..."],
top_n=2,
)
Account controls
# Current balance + top-up instructions
bal = client.get_balance()
print(bal["balance_usdc"], bal["low_balance"])
# Spend history from the on-chain ledger
usage = client.get_usage(limit=20)
print(usage["summary"]["total_spend_usdc"])
# Days of service at current burn rate
runway = client.get_runway()
print(runway["runway_days"], runway["status"])
# Server-side daily spend cap (resets at UTC midnight; pass 0 to remove)
client.set_budget(daily_limit_usdc=10.00)
# Webhook alerts when balance drops below threshold
client.register_webhook(
url="https://my-agent.example.com/pch-events",
threshold_usdc=25.00,
)
Models
| Constant | Model | Use Case | Price |
|---|---|---|---|
PCH_FAST |
pch-fast | Fast reasoning, classification, routing | $0.44/M tokens |
PCH_PRO |
pch-pro | Deep reasoning, multi-step planning | $1.96/M tokens |
PCH_CODER |
pch-coder | Code generation, debugging | $3.50/M tokens |
PCH_IMAGE |
pch-image | Text-to-image generation | $0.028/image |
PCH_AUDIO |
pch-audio | Text-to-speech (standard) | $1.85/M chars |
PCH_AUDIO_PREMIUM |
pch-audio-premium | Text-to-speech (premium) | $37.00/M chars |
PCH_DOCUMENTS |
pch-documents | Document parsing, OCR | $0.26 in / $1.48 out per M tokens |
PCH_TALK |
pch-talk | Voice conversation | $0.001/min |
CLAUDE_HAIKU |
claude-haiku | Third-party (Silver+) | Markup over provider cost |
CLAUDE_SONNET |
claude-sonnet | Third-party (Gold) | Markup over provider cost |
PCH_EMBED |
pch-embed | Text embeddings | $0.015/M tokens |
PCH_TRANSCRIBE |
pch-transcribe | Speech-to-text | $0.0008/min |
PCH_TRANSLATE |
pch-translate | Translation | $0.08/M chars |
PCH_EXTRACT |
pch-extract | Zero-shot entity extraction | $0.012/M tokens |
PCH_RERANK |
pch-rerank | Retrieval reranking | $0.025/M tokens |
Machine-readable rate sheet: gateway.pathcoursehealth.com/v1/pricing.
Environment variables
PCH_API_KEY— your PathCourse API keyPCH_BASE_URL— override gateway URL (default:https://gateway.pathcoursehealth.com)
Error handling
from pathcourse import (
PathCourseClient,
InsufficientBalanceError, AuthenticationError,
ModelNotInTierError, InferenceUnavailableError,
)
client = PathCourseClient()
try:
client.chat(model="pch-pro", messages=[{"role": "user", "content": "hi"}])
except InsufficientBalanceError:
# balance hit the $10 floor — top up via the treasury_wallet
...
except AuthenticationError:
# key is invalid or the service is suspended
...
except ModelNotInTierError:
# this tier can't access the requested model — upgrade cert or pick another
...
Settlement
All billing is in USDC on Base L2 (chain_id 8453) via the x402 payment protocol. USDC contract: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. No accounts, no credit cards, no KYC.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pathcourse_sdk-0.3.0.tar.gz.
File metadata
- Download URL: pathcourse_sdk-0.3.0.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f9b9c7c3e40fdfe3488e98a8dc7cd25139dd760a781ca0ae114e32bdf61e637
|
|
| MD5 |
c258eeed33e591c7a2d2153416ee49b7
|
|
| BLAKE2b-256 |
f8eb7b87bc02f9b8bed847f52de09a0a42b0b9bdd1c13449126d7794e6022012
|
File details
Details for the file pathcourse_sdk-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pathcourse_sdk-0.3.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cf79861f36b97842f452e8d42d8b27c0e886a94fc4e509da1bffff3ceca5fec
|
|
| MD5 |
86ff040b75393523e50281266353f91f
|
|
| BLAKE2b-256 |
31630ec64fd716575996d13726de0ec8b97a7334f62239a67038ce12b2375bf0
|