DEV Community

Phil IPS
Phil IPS

Posted on

OpenRouter Gemini API Tutorial (Free Tier)

OpenRouter Gemini API Tutorial (Free Tier)

Learn how to use Google's Gemini model for free via OpenRouter.

Prerequisites

  • OpenRouter API key (free at https://openrouter.ai)
  • Python 3.8+ with requests library: pip install requests

Quick Start

import requests
import os

# Get your free API key from OpenRouter
api_key = os.getenv("OPENROUTER_API_KEY")

url = "https://openrouter.ai/api/v1/chat/completions"
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

# Use Google's free Gemini model
data = {
    "model": "google/gemini-2.0-flash-exp:free",
    "messages": [
        {"role": "user", "content": "Explain quantum computing in simple terms"}
    ],
    "temperature": 0.7,
    "max_tokens": 150
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    result = response.json()
    print(result["choices"][0]["message"]["content"])
else:
    print(f"Error: {response.status_code} - {response.text}")
Enter fullscreen mode Exit fullscreen mode

Understanding the Response

{
  "id": "cmpl-abc123",
  "object": "chat.completion",
  "created": 1735681234,
  "model": "google/gemini-2.0-flash-exp:free",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Quantum computing uses quantum bits that can be 0 and 1 simultaneously..."
    }
  }]
}
Enter fullscreen mode Exit fullscreen mode

Key Parameters

  • model: Choose from free models (:free suffix)
  • temperature: 0.2-0.5 for factual, 0.7-1.0 for creative
  • max_tokens: Limit response length to control costs

Best Practices

  1. Use environment variables for API keys
  2. Implement retry logic for rate limits (429)
  3. Monitor usage in OpenRouter dashboard
  4. Cache responses when possible

Conclusion

OpenRouter's free tier makes it easy to experiment with Gemini and other models without any upfront cost. Perfect for learning, prototyping, and small projects.

Top comments (0)