SDKsPython
Python
Official Everstack Python SDK with sync and async clients.
The official Python SDK provides both synchronous and asynchronous clients for every Everstack API.
Installation
pip install everstackRequires Python 3.9+. Uses httpx for HTTP transport and Pydantic v2 for typed responses.
Initialize the client
Synchronous:
from everstack import Everstack
client = Everstack(api_key="pk_...")Asynchronous:
from everstack import AsyncEverstack
async with AsyncEverstack(api_key="pk_...") as client:
response = await client.chat.completions.create(...)Both clients accept the same options:
api_key(required) -- authentication tokenbase_url-- gateway URL (defaults tohttps://{instance}.{region}.everstack.ai)provider-- default provider for routing (e.g.,"@openai")org_id-- organization ID for multi-tenant setupsuser_id-- user ID for trackingheaders-- additional default headerstimeout-- request timeout in seconds (default: 60)
Gateway APIs
Chat completions
response = client.chat.completions.create(
model="@openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Streaming:
for chunk in client.chat.completions.create(
model="@anthropic/claude-sonnet-4-20250514",
messages=[{"role": "user", "content": "Tell me a joke"}],
stream=True,
):
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Embeddings
response = client.embeddings.create(
model="@openai/text-embedding-3-small",
input=["Hello world", "How are you?"],
)Models
models = client.models.list()Audio
Text-to-speech:
audio = client.audio.speech.create(
model="tts-1",
input="Hello from Everstack.",
voice="alloy",
)Speech-to-text:
transcription = client.audio.transcriptions.create(
file=audio_bytes,
model="whisper-1",
)Images
images = client.images.generate(
prompt="A sunset over the ocean",
model="@openai/dall-e-3",
size="1024x1024",
)Moderations
result = client.moderations.create(input="Text to check")Reranking
result = client.rerank.create(
model="rerank-v1",
query="What is Everstack?",
documents=["Everstack is an AI platform.", "Unrelated text."],
)Responses (agentic orchestration)
response = client.responses.create(
model="@openai/gpt-4o",
input="Summarize this document",
)
# Streaming
for event in client.responses.create(
model="@openai/gpt-4o",
input="Summarize this document",
stream=True,
):
print(event)Platform APIs
Agents
agent = client.agents.create(
name="support-agent",
systemPrompt="You are a concise support assistant.",
)
session = client.agents.sessions.create(agent_id=agent["id"])
response = client.agents.sessions.run_turn(
session_id=session["id"],
input="Summarize open tickets.",
)Agent sub-resources: sessions, reviews, sandboxes, lifecycle, memories, deployments, triggers, links, channels, crons, webhooks, github, ssh_keys.
Datasets and evaluations
dataset = client.datasets.create(name="support-regression")
client.datasets.items.create_batch(
dataset_id=dataset["id"],
items=[{"input": {"query": "How do I reset my password?"}}],
)
run = client.evaluations.runs.create(
dataset_id=dataset["id"],
name="nightly-regression",
)
summary = client.evaluations.runs.get_summary(run_id=run["id"])Observability and traces
dashboard = client.observability.metrics.get_dashboard()
sessions = client.observability.sessions.list()
traces = client.traces.list_rich(limit=50, environment="production")
client.traces.scores.create(
trace_id="abc123",
name="quality",
source="ANNOTATION",
data_type="NUMERIC",
numeric_value=0.9,
)Error handling
from everstack import (
AuthenticationError,
RateLimitError,
NotFoundError,
APIError,
)
try:
response = client.chat.completions.create(...)
except AuthenticationError:
print("Invalid API key")
except RateLimitError:
print("Rate limited, retry later")
except NotFoundError:
print("Resource not found")
except APIError as e:
print(f"API error: {e}")Full resource map
client.chat.completions.create()
client.embeddings.create()
client.models.list()
client.audio.speech.create()
client.audio.transcriptions.create()
client.audio.translations.create()
client.images.generate(), .edit(), .create_variation()
client.moderations.create()
client.rerank.create()
client.responses.create(), .get(), .list(), .cancel(), .delete()
client.agents.create(), .get(), .list(), .update(), .delete()
client.agents.sessions.create(), .run_turn(), .run_turn_stream(), .steer(), .cancel(), .complete()
client.agents.reviews.submit(), .get(), .list()
client.agents.sandboxes.create(), .list_instances(), .stop(), .revive(), .terminate()
client.agents.lifecycle.provision(), .sleep(), .wake()
client.agents.memories.list(), .create(), .update(), .deactivate(), .delete()
client.agents.deployments.create(), .list(), .get(), .update()
client.agents.triggers.create(), .list(), .get(), .update(), .delete()
client.agents.links.create(), .list(), .delete()
client.agents.channels.bind(), .unbind(), .list()
client.datasets.create(), .get(), .list(), .update(), .delete()
client.datasets.items.create(), .create_batch(), .get(), .list(), .update(), .delete()
client.datasets.score_configs.create(), .get(), .list(), .update(), .delete()
client.evaluations.runs.create(), .get(), .list(), .cancel(), .delete(), .retry()
client.evaluations.runs.get_items(), .get_summary(), .compare(), .set_baseline()
client.evaluations.schedules.create(), .get(), .list(), .update(), .delete()
client.observability.metrics.get_dashboard(), .get_time_series()
client.observability.sessions.list(), .get()
client.observability.users.list(), .get()
client.observability.outcomes.get_dashboard(), .get_time_series()
client.traces.get(), .get_spans(), .get_tree(), .get_rich(), .list_rich(), .get_analytics()
client.traces.scores.list(), .create(), .delete()
client.traces.performance.breakdown(), .utilization()
