# List programs (paginated)
result = client.programs.list(status="active", limit=10, page=1)
# Auto-paginate through all programs
for program in client.programs.list_all():
print(program.name)
# Async auto-pagination
async for program in client.programs.list_all():
print(program.name)
# Get program details (includes readiness status)
detail = client.programs.get("prog-uuid")
print(detail.readiness) # 'setup' | 'partial' | 'ready'
# Create a program
program = client.programs.create(
name="Acme Referrals",
commission_type="recurring",
commission_percent=25,
cookie_duration=60,
currency="USD",
idempotency_key="create-acme-v1",
)
# Update a program
client.programs.update("prog-uuid", commission_percent=30, status="active")
# Delete a program
client.programs.delete("prog-uuid")
# Get program stats
stats = client.programs.stats("prog-uuid", period="30d")
# List program affiliates
affiliates = client.programs.list_affiliates("prog-uuid", include_blocked=False)
# Manage invites
invite = client.programs.create_invite(
"prog-uuid",
email="partner@example.com",
expires_in_days=7,
idempotency_key="invite-partner-v1",
)
invites = client.programs.list_invites("prog-uuid")
# Manage coupons
coupon = client.programs.create_coupon(
"prog-uuid",
affiliate_id="aff-uuid",
code="PARTNER20",
idempotency_key="coupon-partner20",
)
coupons = client.programs.list_coupons("prog-uuid")
client.programs.delete_coupon("coupon-uuid")
# Marketplace settings
client.programs.update_marketplace(
"prog-uuid",
status="public",
category="SaaS",
description="Earn 25% recurring for every referral.",
)
# Stripe connection
stripe = client.programs.connect_stripe("prog-uuid")
print(stripe.auth_url) # redirect merchant to complete OAuth
client.programs.disconnect_stripe("prog-uuid")