Python Quickstart
Using the OpenAI SDK (Recommended)
The fastest way — just change the base URL:
from openai import OpenAI
client = OpenAI(
base_url="https://api.curate-me.ai/v1/openai",
api_key="YOUR_OPENAI_KEY", # or omit if you use a stored provider secret
default_headers={"X-CM-API-Key": "YOUR_GATEWAY_KEY"},
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Explain AI governance in one sentence."}],
)
print(response.choices[0].message.content)Using the Curate-Me Python SDK
pip install curate-mefrom curate_me import CurateGateway
gw = CurateGateway(api_key="YOUR_GATEWAY_KEY")
# Option A: pass the provider key directly
client = gw.openai(provider_key="YOUR_OPENAI_KEY")
# Option B: use a stored provider secret
# client = gw.openai()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Using Anthropic Models
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.curate-me.ai/v1/anthropic",
api_key="YOUR_ANTHROPIC_KEY", # or omit if you use a stored provider secret
default_headers={"X-CM-API-Key": "YOUR_GATEWAY_KEY"},
)
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)Checking Usage
# Response headers include governance metadata
print(response.headers.get("X-CM-Cost"))
print(response.headers.get("X-CM-Request-ID"))
print(response.headers.get("X-RateLimit-Remaining"))