Intermediate

Cost Estimation

Calculate API costs from token counts, compare pricing across models, optimize prompts to reduce spending, and plan budgets for AI projects.

Understanding API Pricing

AI APIs charge separately for input tokens (your prompt) and output tokens (the model's response). Output tokens are almost always more expensive than input tokens because they require more computation.

Cost Formula
# Cost per API call:
Total Cost = (Input Tokens × Input Price) + (Output Tokens × Output Price)

# Example with Claude Sonnet 4:
# Input: $3.00 per 1M tokens, Output: $15.00 per 1M tokens

Input:  500 tokens  × ($3.00 / 1,000,000) = $0.0015
Output: 200 tokens  × ($15.00 / 1,000,000) = $0.0030
Total:  $0.0045 per request

# At 1,000 requests/day: $4.50/day or ~$135/month

Input vs. Output Tokens

Understanding the distinction between input and output tokens is crucial for cost planning:

  • Input tokens include: your system prompt, user message, any context or documents you provide, conversation history, and function/tool definitions.
  • Output tokens include: the model's generated response, any tool calls the model makes, and reasoning tokens (for models like o3 that "think" before responding).
Watch out for reasoning tokens: Models like o1 and o3 produce internal reasoning tokens that you pay for even though you may not see them in the output. These can significantly increase costs for reasoning-heavy tasks.

Price Comparison Across Models

Use this table to estimate costs for 1,000 requests, each with ~500 input tokens and ~200 output tokens:

Model Input $/1M Output $/1M Cost per 1K Requests
GPT-4o mini $0.15 $0.60 $0.20
Gemini 2.5 Flash $0.15 $0.60 $0.20
Claude 3.5 Haiku $0.80 $4.00 $1.20
GPT-4o $2.50 $10.00 $3.25
Claude Sonnet 4 $3.00 $15.00 $4.50
Gemini 2.5 Pro $1.25 $10.00 $2.63
o3 $10.00 $40.00 $13.00
Claude Opus 4 $15.00 $75.00 $22.50

Optimizing Prompts to Reduce Tokens

Small changes to your prompts can significantly reduce token usage:

Prompt Optimization Examples
# VERBOSE (~50 tokens):
"I would really appreciate it if you could please
take a look at the following piece of code and let
me know if there are any bugs or issues that you
can identify in it."

# OPTIMIZED (~12 tokens):
"Find bugs in this code:"

# VERBOSE JSON output instruction (~40 tokens):
"Please format your response as a JSON object with
the following fields: name, age, and email address."

# OPTIMIZED (~15 tokens):
"Reply as JSON: {name, age, email}"

Batch Processing Cost Estimation

For projects that process large volumes, estimate costs before committing:

Python (Cost Calculator)
import tiktoken

def estimate_batch_cost(
    texts,
    model="gpt-4o",
    avg_output_tokens=200,
    input_price_per_m=2.50,
    output_price_per_m=10.00,
):
    enc = tiktoken.encoding_for_model(model)

    total_input_tokens = 0
    for text in texts:
        total_input_tokens += len(enc.encode(text))

    total_output_tokens = len(texts) * avg_output_tokens

    input_cost = (total_input_tokens / 1_000_000) * input_price_per_m
    output_cost = (total_output_tokens / 1_000_000) * output_price_per_m
    total_cost = input_cost + output_cost

    print(f"Items to process:   {len(texts):,}")
    print(f"Total input tokens: {total_input_tokens:,}")
    print(f"Est. output tokens: {total_output_tokens:,}")
    print(f"Input cost:   ${input_cost:.2f}")
    print(f"Output cost:  ${output_cost:.2f}")
    print(f"Total cost:   ${total_cost:.2f}")

    return total_cost

# Example: estimate cost for 10,000 customer emails
emails = ["Sample email text..."] * 10000
estimate_batch_cost(emails)

Budget Planning for AI Projects

When planning budgets, consider these factors:

  1. Average tokens per request: Measure your typical input and output sizes using Tiktokenizer or tiktoken.
  2. Request volume: Estimate daily/monthly request counts based on your user base or workload.
  3. Model choice: The model you choose has the largest impact on cost. Using GPT-4o mini instead of GPT-4o cuts costs by ~16x.
  4. Growth buffer: Add 20-30% to your estimate for growth, retries, and unexpected usage spikes.
  5. Development costs: Use free or cheap models during development. Only switch to production models when needed.
💡
Budget formula: Monthly Cost = (Daily Requests × Avg Input Tokens × Input Price) + (Daily Requests × Avg Output Tokens × Output Price) × 30 days × 1.25 buffer

Cost Saving Strategies

Strategy Potential Savings Effort
Use smaller models for simple tasks 50-95% Low
Shorten system prompts 5-20% Low
Set max_tokens limits 10-30% Low
Cache identical requests 20-80% Medium
Truncate conversation history 30-60% Medium
Use batch APIs (when available) 50% Medium
Route tasks to appropriate models 40-70% High
Key takeaway: Always count tokens and estimate costs before running large batches or launching production features. Use Tiktokenizer for quick estimates and the programmatic libraries for precise calculations. The difference between the cheapest and most expensive model can be 100x.

Ready to Go Deeper?

Live instructor-led courses from our partners. Affiliate disclosure.