SmashCost

Sign in

Welcome back. Enter your credentials to continue.

Don't have an account? Create one  ·  Forgot password?

SmashCost

Reset password

Enter your email and we'll send you a reset link valid for 1 hour.

Back to Sign in

SmashCost

Choose a new password

Enter and confirm your new password.

Minimum 8 characters

SmashCost

Create account

Get started in seconds.

Minimum 8 characters

Already have an account? Sign in

SmashCost
—
support@smashcost.com

Dashboard

Free tier
⚠️ Please verify your email address to ensure you receive important account notifications. Resend verification email
Loading…

Spend Map

Loading…

Spend Trend

Actual spend, last 30 days
Daily provider cost, amber marks anomalies.
Loading…
Filter by key: Status: Model: Customer: Feature: Environment:

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…
—

Cost Attribution

Where AI spend is coming from across customers, features, environments, and models.

Loading…
Unlock cost attribution

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"
  }
)

Top Cost Drivers

Highest spend across customers, features, and models in the last 30 days.

Loading…

Customers

Spend grouped by X-SmashCost-Tag-Customer.

Loading…

Features

Spend grouped by X-SmashCost-Tag-Feature.

Loading…

Environments

Spend grouped by X-SmashCost-Tag-Environment.

Loading…

Budgets

Spend limits that actually cut off traffic when reached — not just an alert.

Organization kill-switch
Blocks ALL traffic once your org's total spend this month hits this limit. Available on every plan.
Loading…
Per-dimension budgets
Limit spend for a specific feature, customer, or environment.
Loading…

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.

Create API Key
Requests without tag headers inherit these — e.g. a key named chat-widget can tag all of its traffic as feature chat-widget without touching code.
Copy this key now — it will never be shown again.
Quick start
1. Connect your code — 2 lines
Replace your OpenAI key (or any provider key) with your SmashCost key. Works with any OpenAI-compatible SDK.
client = OpenAI(
    base_url="https://api.smashcost.com/v1",
    api_key="sk-smashcost-..."  # your SmashCost key from the form above
)
That's it. SmashCost automatically routes to the best model for each task. The 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.
By default SmashCost routes to the best available model. If you need a request to use exactly the model you specified, use the 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)
Three ways to attribute cost, from zero effort to fully precise — you choose the names, SmashCost just groups them. The first one that resolves wins (see order below).
# 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"
    }
)
Precedence per dimension: header > key default > (customer only) 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).

Loading…

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.

Routing modes are available on Starter. Free keeps requests in passthrough while SmashCost maps cost and savings potential. View plans
⚡
Save
Routes to the cheapest capable model per task (≥ 0.78 quality) — never more than your requested model's cost.
Up to 80% savings
⚖️
Balance
Routes to the best model above a 0.82 quality threshold that costs no more than what you requested. Recommended for most workloads.
Recommended
⭐
Quality
Routes to the highest-quality available model (≥ 0.90 threshold) — may cost more than your requested model. No success fee applies if it does.
Best results
Select a routing mode above to see the trade-off before activating.
Routing is paused — every request passes through unchanged and none of it is billable. Resume to reactivate your saved mode instantly, no reconfiguration needed.

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

EmailRoleMember since
Loading…

Invite a teammate

They'll receive an email with a link to join your SmashCost workspace.

Pending invites

EmailRoleExpires
Loading…

Deactivate your account

This deactivates your user, organization, and API keys immediately. Historical usage records may be retained for audit, billing, and security.

Choose your plan

Upgrade anytime. Cancel anytime.

Free
$0/mo
Visibility, always free
  • Core spend dashboard
  • Shadow mode (projected savings)
  • Top customer & feature attribution
  • 7-day history
  • 1 user
  • 10k requests/mo · 30 rpm
  • Up to $500/mo managed
Current plan
Starter
$49/mo
Turn observation into action
  • Routing active — Save / Balance / Quality
  • Full attribution by customer, feature, environment
  • Budgets that enforce — hard spend cutoffs by tag
  • CSV export & spend alerts
  • 90-day history
  • 3 users
  • 100k requests/mo · 120 rpm
  • Up to $2.5k/mo managed
Growth
$199/mo
Govern usage at scale
  • Everything in Starter
  • Unlimited users
  • Rollout controls (partial routing)
  • read_logs / manage API scopes
  • 365-day history
  • 500k requests/mo · 300 rpm
  • Up to $10k/mo managed
Need more volume or a larger team? Business plans are available when your usage needs them.
Contact us

Trend

Last 30 days

Loading…