Welcome back. Enter your credentials to continue.
Don't have an account? Create one · Forgot password?
Enter your email and we'll send you a reset link valid for 1 hour.
Back to Sign in
Enter and confirm your new password.
Minimum 8 characters
Get started in seconds.
Minimum 8 characters
Already have an account? Sign in
Spend Map
Spend Trend
Status/Model/Customer/Feature/Environment filter the current page only (not server-side pagination).
| Timestamp | Model | Cost | Latency | Status | Attribution | Task | Routing | Tokens | Key |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Where AI spend is coming from across customers, features, environments, and models.
You're sending AI traffic — add these headers to attribute spend by customer and feature. Takes 2 minutes.
openai.chat.completions.create(
model="gpt-4o",
messages=[...],
extra_headers={
"X-SmashCost-Tag-Customer": customer_id, # e.g. "acme-corp"
"X-SmashCost-Tag-Feature": feature_name, # e.g. "/api/summarize"
}
)
Highest spend across customers, features, and models in the last 30 days.
Spend grouped by X-SmashCost-Tag-Customer.
Spend grouped by X-SmashCost-Tag-Feature.
Spend grouped by X-SmashCost-Tag-Environment.
Spend limits that actually cut off traffic when reached — not just an alert.
SmashCost API keys replace your provider key in your application code. Instead of putting your OpenAI key directly, you put a SmashCost key.
Golden rule: one key per service or environment.
If you share a single key across multiple places and it leaks, you have to revoke it everywhere at once — including production. With separate keys, if one is compromised you revoke it alone without affecting the others.
Examples: production, staging, backend-api, data-pipeline.
client = OpenAI(
base_url="https://api.smashcost.com/v1",
api_key="sk-smashcost-..." # your SmashCost key from the form above
)
model field in your request is the base preference — SmashCost may route to another available model. The model field in the response shows which model actually ran.X-Model-Override header. To permanently disable routing for your organization, set routing_mode: strict via the API.# One-off override — this single request uses gpt-4o exactly
response = client.chat.completions.create(
model="gpt-4o",
messages=[...],
extra_headers={"X-Model-Override": "gpt-4o"}
)
# The model field in the response confirms what actually ran:
# response.model → "gpt-4o-mini" (what SmashCost chose)
# response.model → "gpt-4o" (if you used X-Model-Override)
# 1. Free — the OpenAI `user` field, if you already send it, is used
# as customer attribution automatically. No code change needed.
response = client.chat.completions.create(
model="gpt-4o",
messages=[...],
user="acme_corp"
)
# 2. Set-and-forget — a key's "Default tags" (Access tab, below) label
# ALL of that key's traffic, e.g. a key named "chat-widget" tagged
# with default feature "chat-widget".
# 3. Most precise — per-request headers override both of the above
response = client.chat.completions.create(
model="gpt-4o",
messages=[...],
extra_headers={
"X-SmashCost-Tag-Feature": "reports",
"X-SmashCost-Tag-Customer": "acme_corp",
"X-SmashCost-Tag-Environment": "production"
}
)
user field > untagged. Without any of these SmashCost works the same — you'll just see total cost with no breakdown.Loading…
Provider credentials — add your API keys for each AI provider. SmashCost encrypts them. You keep the direct billing relationship with each provider (BYOK — Bring Your Own Keys).
Model catalog
| Model | Provider | Input / 1K tokens | Output / 1K tokens | Typical (500in+200out) | Last updated | Status |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Routing Mode
Controls how aggressively the router optimises for cost vs. quality on every request.
Spend alerts
Get an email when your AI spend exceeds a threshold in any rolling 60-minute window. Set to 0 to disable.
Danger zone
Deactivate your account, organization, and API keys. Historical usage records may be retained for audit, billing, and security.
Team members
| Role | Member since | ||
|---|---|---|---|
| Loading… | |||
Invite a teammate
They'll receive an email with a link to join your SmashCost workspace.
Pending invites
| Role | Expires | ||
|---|---|---|---|
| Loading… | |||
This deactivates your user, organization, and API keys immediately. Historical usage records may be retained for audit, billing, and security.
Upgrade anytime. Cancel anytime.
read_logs / manage API scopesLast 30 days