AI Studio vs Vertex AI: Why Gemini Quotas Behave Differently
Same model IDs (gemini-2.5-pro, gemini-2.5-flash) — but two completely separate deployment surfaces with different quotas, auth models, billing, and features. Confusion here causes production outages when teams "migrate" without realizing quotas don't carry over. This page maps every difference and gives you a clean migration checklist.
generativelanguage.googleapis.comSurface B: aiplatform.googleapis.comCategory: DeploymentLast tested: Nov 15, 2026AI Studio has a real free tier (rate-limited, no card). Vertex has no free tier — every call bills GCP from token one. Quotas are per-project on Vertex, per-API-key on AI Studio, and quota metric names differ. Migrations require: (1) new auth (ADC vs API key), (2) new SDK client (Client(vertexai=True, ...)), (3) new quota page in GCP console, (4) validating feature parity — grounding, tuning, and batch behave differently.
The Symptoms You're Seeing
# PATTERN 1: "It worked in dev, dead in prod"
# Dev used AI Studio API key (free tier).
# Prod deployed on Vertex, no billing set up.
google.api_core.exceptions.PermissionDenied:
403 Vertex AI API has not been used in project 12345 before
or it is disabled.
# PATTERN 2: Free tier assumption on Vertex
# Team assumes small volume = free. Bill shows up.
google.api_core.exceptions.FailedPrecondition:
400 Billing account not configured for project.
# PATTERN 3: Same key, different endpoints
# Trying to use AI Studio API key against aiplatform.googleapis.com
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials.",
"status": "UNAUTHENTICATED"
}
}
# PATTERN 4: Quota migration surprise
# AI Studio 1000 RPM key → Vertex project has 60 RPM default
google.api_core.exceptions.ResourceExhausted:
429 Quota exceeded for aiplatform.googleapis.com/generate_content_requests_per_minute
Limit: 60. Consumer: projects/PROJECT.Side-by-Side: AI Studio vs Vertex AI
| Aspect | AI Studio | Vertex AI |
|---|---|---|
| API endpoint | generativelanguage.googleapis.com | aiplatform.googleapis.com |
| Auth | API key (query param or header) | OAuth 2 / ADC / service account |
| Free tier | Yes — real free RPM/RPD | No — GCP billing from token 1 |
| Billing model | Pay-as-you-go on API key | GCP project billing |
| Quota scope | Per API key | Per project × region |
| Data residency | Google-managed regions | Explicit region choice |
| SDK init | Client(api_key=...) | Client(vertexai=True, project=..., location=...) |
| Grounding with Search | Limited | Full (grounding source config) |
| Batch mode | Yes, simpler | Yes, GCS-based, higher scale |
| Fine-tuning / Model tuning | Limited | Vertex-only (supervised tuning) |
| Audit logging | Basic | Cloud Audit Logs (compliance-grade) |
| VPC-SC / private endpoints | No | Yes |
| IAM controls | None | Full IAM (roles, conditions) |
Quota Metric Names Differ
| Concept | AI Studio quota | Vertex AI quota |
|---|---|---|
| Requests / min | Requests per minute (per key) | generate_content_requests_per_minute_per_project_per_base_model |
| Tokens / min | Tokens per minute (per key) | generate_content_input_tokens_per_minute_per_project_per_base_model |
| Requests / day | Requests per day (free tier only) | N/A — no daily cap on paid |
| Where to view | AI Studio dashboard | GCP Console → IAM → Quotas |
| How to raise | Upgrade to paid tier | File quota increase request |
What Actually Causes Migration Failures
Fixes That Work (Tested Nov 2026)
1Pick the Right Surface Before You Build
2Environment-Switchable Client Factory
Run your integration tests against both backends. Features like tools=[{google_search:{}}] or tuning_job silently no-op on the wrong backend. CI-detected mismatches beat production surprises.
3Migration Checklist: AI Studio → Vertex
Preventing This Error Going Forward
- Decide backend at project kickoff. Free tier & simplicity → AI Studio. Compliance & scale → Vertex.
- Never assume free tier on Vertex. Every call bills GCP from token one — set budget alerts.
- Log backend name at startup. Prevents "I thought we were on Vertex" incidents.
- Check quota before traffic migration. Vertex default is often lower than AI Studio paid.
- Use environment-switchable client factory. Same code, different init per env.
- Test Vertex-only features on Vertex before shipping. Grounding, tuning, VPC-SC don't exist on AI Studio.
- Set budget alerts on GCP project. Catch runaway spend from ex-free-tier assumptions.
- Document backend choice in team wiki. New engineers don't guess.
Researcher · AI Error Hub
Frequently Asked Questions
No. AI Studio API keys authenticate against generativelanguage.googleapis.com. Vertex AI (aiplatform.googleapis.com) requires OAuth 2 / ADC / service account credentials. Different auth systems entirely. You'll get 401 UNAUTHENTICATED if you cross-wire them.
No. Vertex has no free tier for Gemini API calls — every request bills your GCP project. Google offers new-user GCP credits ($300) which effectively subsidize early testing, but there's no ongoing free tier like AI Studio has. Set budget alerts.
Mostly yes: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite all exist on both. But experimental models and preview releases sometimes land on one surface first. And regional availability differs — some models are in us-central1 on Vertex before landing on AI Studio's global endpoint.
Depends on your tier. Paid AI Studio can have generous per-key RPM. Vertex has per-project quotas that are often lower by default but can be increased via quota request. For very high throughput, Vertex is the right path because you can file quota increases with justification; AI Studio caps are less flexible.
Yes — the safety_settings parameter and HARM_CATEGORY_* enums are identical. Same thresholds, same block behavior. This is one of the more stable areas of feature parity between the two surfaces.
Related Errors
Ship Gemini Right the First Time
Weekly deep dives on Gemini deployment: AI Studio vs Vertex, quotas, and production migrations. 12,000+ developers subscribe.
Subscribe Free →