Skip to Content
Getting StartedPython Quickstart

Python Quickstart

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-me
from 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"))