Why Migrate?

If you're using OpenAI's API directly, you're probably paying more than you need to. Here's the reality:

Model OpenAI Price (per 1M tokens) RollTok Price (per 1M tokens) Savings
GPT-4o $2.50 $2.10 16%
GPT-4o-mini $0.15 $0.14 7%
Claude 3.5 Sonnet N/A (separate provider) $3.00 Access via same API
Gemini 2.0 Flash N/A (separate provider) $0.10 Access via same API
Doubao-Seed-2.0-Mini N/A $0.03 80% cheaper than GPT-4o-mini

The real win isn't just savings on OpenAI models—it's access to 49+ models through a single API. One key, one endpoint, one SDK.

Prerequisites

  • An existing project using OpenAI API (Python, Node.js, or any HTTP client)
  • 5 minutes
  • A RollTok API key (sign up at rolltok.com, $5 free credits included)

Step 1: Get Your RollTok API Key

  1. Go to rolltok.com
  2. Sign up (email or GitHub)
  3. Navigate to Dashboard → API Keys
  4. Create a new key
  5. Copy it—you'll need it in the next step

That's it. You now have access to 49+ models.

Step 2: Change Two Lines of Code

Python (openai SDK)

Before:

from openai import OpenAI client = OpenAI(api_key="sk-proj-...") response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello"}] ) print(response.choices[0].message.content) 

After:

from openai import OpenAI client = OpenAI( api_key="rolltok-YOUR_KEY", # Change 1: API key  base_url="https://api.rolltok.com/v1" # Change 2: Base URL ) # Same code, now you can use ANY model response = client.chat.completions.create( model="gpt-4o", # Or: claude-sonnet-4-5, gemini-3-flash, etc.  messages=[{"role": "user", "content": "Hello"}] ) print(response.choices[0].message.content) 

That's it. Two lines changed.

Node.js (openai SDK)

Before:

import OpenAI from 'openai'; const client = new OpenAI({ apiKey: 'sk-proj-...' }); const response = await client.chat.completions.create({ model: 'gpt-4o', messages: [{ role: 'user', content: 'Hello' }] }); 

After:

import OpenAI from 'openai'; const client = new OpenAI({ apiKey: 'rolltok-YOUR_KEY', baseURL: 'https://api.rolltok.com/v1' }); const response = await client.chat.completions.create({ model: 'gpt-4o', // Or any of 49+ models messages: [{ role: 'user', content: 'Hello' }] }); 

cURL / HTTP

Before:

curl https://api.openai.com/v1/chat/completions \ -H "Authorization: Bearer sk-proj-..." \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello"}]}' 

After:

curl https://api.rolltok.com/v1/chat/completions \ -H "Authorization: Bearer rolltok-YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello"}]}' 

Step 3: Try Different Models (No Code Changes)

Here's where it gets interesting. Want to test Claude instead of GPT?

# Same code, different model response = client.chat.completions.create( model="claude-sonnet-4-5", # Just change the model name  messages=[{"role": "user", "content": "Hello"}] ) 

Want to try a cheaper model for simple tasks?

response = client.chat.completions.create( model="doubao-seed-2.0-mini", # $0.03/1M tokens — 80% cheaper  messages=[{"role": "user", "content": "Hello"}] ) 

No new SDK. No new API key. No code restructuring.

Available Models (Partial List)

Provider Models Available Price Range
OpenAI GPT-6, GPT-4o, GPT-4o-mini, o3 $0.15-$17.00
Anthropic Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.5 $1.00-$15.00
Google Gemini 3 Pro, Gemini 3 Flash $0.10-$7.50
ByteDance Doubao-Seed-2.0, Doubao-Seed-2.0-Mini $0.03-$0.29
Meta Llama 3.3 70B, Llama 3.1 405B $0.20-$3.00
DeepSeek DeepSeek-V3, DeepSeek-R1 $0.28-$2.19
Qwen Qwen3-Max, Qwen3-Coder $0.30-$6.00

Full list: rolltok.com/models

Step 4: Smart Model Routing (Optional)

Here's a pattern we see developers use: route different tasks to different models based on complexity.

def smart_completion(prompt: str, complexity: str = "simple"): """Route prompts to cost-optimal models.""" model_map = { "simple": "doubao-seed-2.0-mini", # $0.03/1M — fast, cheap  "medium": "gpt-4o-mini", # $0.15/1M — balanced  "complex": "claude-sonnet-4-5", # $3.00/1M — high quality  "reasoning": "deepseek-r1", # $0.55/1M — chain-of-thought  } response = client.chat.completions.create( model=model_map.get(complexity, "gpt-4o-mini"), messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content # Usage summary = smart_completion("Summarize this article...", "simple") analysis = smart_completion("Analyze this code for bugs...", "complex") math = smart_completion("Solve this equation...", "reasoning") 

Real cost impact: A developer processing 1M tokens/day might spend:

  • Before (all GPT-4o): ~$7.50/day
  • After (smart routing): ~$1.50/day for same quality
  • Savings: 80%

Step 5: Verify Everything Works

Run this quick test script:

import time models_to_test = [ "gpt-4o", "claude-sonnet-4-5", "gemini-3-flash", "doubao-seed-2.0-mini", ] for model in models_to_test: start = time.time() response = client.chat.completions.create( model=model, messages=[{"role": "user", "content": "Say hello in one word"}], max_tokens=10 ) elapsed = time.time() - start print(f"✅ {model}: {response.choices[0].message.content} ({elapsed:.2f}s)") 

Expected output:

✅ gpt-4o: Hello (0.83s) ✅ claude-sonnet-4-5: Hello (1.12s) ✅ gemini-3-flash: Hello (0.45s) ✅ doubao-seed-2.0-mini: Hello (0.67s) 

If all four return responses, your migration is complete.

Common Questions

"Will my existing prompts work the same way?"

Yes. RollTok uses the OpenAI-compatible API format. Your prompts, system messages, function calling, streaming—all of it works identically.

"What about streaming?"

Streaming works the same way:

stream = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello"}], stream=True ) for chunk in stream: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="") 

"What about function calling / tool use?"

Supported on compatible models, same syntax:

response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "What's the weather in Tokyo?"}], tools=[{ "type": "function", "function": { "name": "get_weather", "description": "Get current weather", "parameters": { "type": "object", "properties": { "location": {"type": "string"} }, "required": ["location"] } } }] ) 

"What if I need to switch back?"

Change two lines back. No lock-in. Your code is identical.

"Is my data safe?"

RollTok doesn't store prompts after processing. We don't use your data for training. For detailed privacy information, check rolltok.com/privacy.

Cost Comparison: Real-World Scenarios

Scenario 1: Chat App (1M tokens/month)

Setup Monthly Cost
OpenAI GPT-4o only $2.50
RollTok GPT-4o only $2.10
RollTok smart routing (80% simple, 20% complex) $0.63

Scenario 2: Content Platform (10M tokens/month)

Setup Monthly Cost
OpenAI GPT-4o only $25.00
RollTok mixed (GPT-4o + Claude + Gemini) $18.00
RollTok smart routing $8.50

Scenario 3: Enterprise (100M tokens/month)

Setup Monthly Cost
OpenAI GPT-4o only $250.00
RollTok subscription ($50/mo for 7M) + pay-as-you-go ~$180.00
RollTok with open-source models for simple tasks ~$45.00

What You Lose (Being Honest)

Transparency matters. Here's what you should know:

  1. No enterprise SLA yet: We're a small team. We target 99% uptime but don't offer contractual SLAs yet.
  2. Limited enterprise features: SSO, audit logs, and dedicated support are on our roadmap but not available today.
  3. Newer platform: We launched recently. We don't have years of track record like OpenAI.

If any of these are deal-breakers for your use case, we're happy to tell you to stick with your current provider until we ship those features.

What's Next?

Once you've migrated:

  1. Monitor your costs: Check your dashboard weekly
  2. Experiment with models: Try open-source models for simple tasks
  3. Set up alerts: Get notified when spending exceeds your budget
  4. Share feedback: We're building based on user requests

Resources

  • Docs: docs.rolltok.com
  • Model list: rolltok.com/models
  • Pricing: rolltok.com/pricing
  • Support: support@rolltok.com
  • GitHub examples: github.com/rolltok/examples

Disclosure: We're transparent about our product capabilities and limitations. The migration code above has been tested and works with the current RollTok API.