OpenAI models land on Google Cloud: the Responses API on Vertex AI and the SDK vertex() provider
The 2026-10-21 announcement brings OpenAI frontier models and Codex workflows to Gemini's Model Garden. The same day, openai-python v3.36.0 and openai-node v7.41.0 shipped a vertex() provider so standard clients can call Vertex directly.
OpenAI models just picked up a new distribution channel. On 2026-10-21 an official announcement and same-day updates to both official SDKs turned this from rumor into something you can run: openai-python v3.36.0 and openai-node v7.41.0 each merged a vertex() provider that lets a standard OpenAI / AsyncOpenAI client send Responses API requests straight to Google Cloud Vertex AI. This article walks through what the announcement says, how to configure the SDK, where the guardrails are, and what remains unsaid — every parameter-level fact comes from sources loaded for this batch.
1. What the announcement says
The official news RSS carried an item at 2026-10-21 12:00 GMT titled "OpenAI models are coming to Google Cloud", with this description:
OpenAI and Google Cloud are bringing frontier models and Codex workflows to Gemini’s Model Garden, available through Google Cloud Marketplace.
That breaks into three facts: OpenAI frontier models are entering Gemini's Model Garden; Codex workflows come along; and the delivery channel is Google Cloud Marketplace. Note the announcement page itself (openai.com/index/openai-models-google-cloud) returned 403 to this site's fetch on 2026-10-23 — the quote above comes from the RSS item fields. This is the full extent of the announcement wording this site can assert; details such as which models, at what price, and in which regions did not appear in any officially loadable channel that day.
2. The Python side: standard client plus a provider argument
openai-python v3.36.0 (published_at 2026-10-21T15:53:22Z per the release notes) leads its Features section with add Vertex AI support for the Responses API (#4139). The PR description and the vertex.md shipped inside the v3.37.0 tag give the complete usage:
pip install 'openai[vertex]'
from openai import OpenAI
from openai.providers import vertex
client = OpenAI(provider=vertex(project="my-google-project", location="us-east5"))
response = client.responses.create(model="your-enabled-model", input="Hello", store=False)
print(response.output_text)
Three details worth calling out, all from the tag docs and source:
- Every vertex() argument is keyword-only:
project,location,base_url,token_provider,credentials.projectandlocationfall back to theGOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATIONenvironment variables; if neither is available the client raisesOpenAIError(message text: Vertex requires a project ID). - The example call sets
store=False. The docs do not explain why the example defaults to disabled storage; this article does not infer a reason. credentialsandtoken_providerare mutually exclusive: passing both raisesOpenAIError(message text: Set only one of credentials and token_provider).
3. How the endpoint is derived
The default endpoint rules can be read directly from src/openai/providers/vertex.py in the v3.37.0 tag:
- When
location == "global"the host isaiplatform.googleapis.com; otherwise it is{location}-aiplatform.googleapis.com; - The full path is
/v1/projects/{project}/locations/{location}/publishers/openai/v1—publishers/openaiis a literal path segment whose meaning the official docs do not explain; - With an explicit
base_url=, it must be the complete API root before/responses, and must not carry credentials, a query string, or a fragment (URL validation raisesOpenAIErrorotherwise).
The validation rules are in the source too: project accepts letters, digits, underscore, dot, colon, and hyphen (a comment notes this covers dotted domain-scoped projects); location accepts lowercase letters, digits, and hyphens only.
4. The Node side: the same surface, written its own way
openai-node v7.41.0 (published_at 2026-10-21T15:30:50Z) landed the same feature as add Vertex AI support for the Responses API (#3005). The example from the tag's docs/vertex.md:
npm install openai 'google-auth-library@>=9.15.1 <11'
import OpenAI from 'openai';
import { vertex } from 'openai/providers/vertex';
const client = new OpenAI({
provider: vertex({ project: 'my-google-project', location: 'us-east5' }),
});
const response = await client.responses.create({
model: 'your-enabled-model',
input: 'Hello',
store: false,
});
console.log(response.output_text);
The node docs add three statements the python docs do not spell out: streaming, tools, timeouts, and retries use the ordinary SDK methods and options; authentication uses Google credentials and no OpenAI API key is needed; and per PR #3005, Vertex owns its authentication helper with no dependency on Bedrock's implementation (This PR makes no changes to src/internal/bedrock.ts).
5. Authentication options and security boundaries
Both implementations write the same boundaries into code:
| Method | Extra dependency | Fits when |
|---|---|---|
| Google ADC (default discovery) | python: extra openai[vertex]; node: google-auth-library@>=9.15.1 <11 | Standard GCP environments with automatic discovery and refresh |
Explicit credentials= | Same as above (pass a ready Google credentials object) | Your application already holds Google credentials |
token_provider= callback | None — the base package suffices | Your application manages token refresh; the node docs flag this mode for bundling |
On security, the PR descriptions and docs state four boundaries: credentials are bound to the configured origin; redirects are disabled; Google API endpoints require HTTPS (http requests against *.googleapis.com error out immediately); and on the python side ADC discovery and refresh run under a thread lock with timeout handling — the async token_provider callback runs on the event loop and must not block, with the read timeout as the backstop, raising APITimeoutError when exceeded.
6. What the official sources do not say (and this article will not fill in)
None of these questions had an answer in any channel this site could load on 2026-10-23, itemized for the record:
- Model list: the announcement says only frontier models, naming no model IDs; the SDK docs example uses the placeholder
your-enabled-modeland states plainly that "Model and feature availability depend on your Google Cloud deployment". - Pricing: no figures in either release notes set, the tag docs, or the RSS description.
- Region list: the docs example uses
us-east5, but that is a sample value; no official region list appeared. - What Codex workflows means concretely: the announcement mentions Codex workflows, but the Codex-side documentation index (developers.openai.com/codex) had no Vertex-related page that day — this article makes no claim about what that sentence becomes.
- Other API surfaces: both PR titles scope to the Responses API; whether vertex support exists or is planned for Chat Completions or anything else is unstated.
7. Common errors and troubleshooting
- Vertex requires a project ID / Vertex requires a location: neither the arguments nor the environment variables were set. Note the
locationvalidator only accepts lowercase letters, digits, and hyphens. - Set only one of credentials and token_provider: the two auth arguments are mutually exclusive — pick one.
- Google Vertex endpoints require HTTPS: you passed
httpfor agoogleapis.comhost. Switch tohttps. - Install openai[vertex] to use Google credentials: ADC or
credentials=was used without the extra. Installopenai[vertex](orgoogle-auth-libraryon node), or switch totoken_provider=. - APITimeoutError from the async callback: your
token_providercallback returned after the read timeout. Make the callback non-blocking and fast.
8. Next steps
- For model positioning across the GPT-5.6 / GPT-6 families, see The complete guide to GPT models (2026-07): GPT-5.6 Sol, Terra, Luna; for the GPT-6 family additions, see The GPT-6 family grows: gpt-6-sol, gpt-6-luna, gpt-6.1-sol land in the official SDKs.
- For one priced use of
gpt-6-luna(the Decisions-specific input rate), see Decisions API goes GA: a fast, low-cost judgment endpoint, explained. - For the rest of the week's SDK changes (30-minute cache-write usage counts, compaction trigger IDs, the Decisions type breaking change) and the 10-23 legacy snapshot shutdown, see The 2026-10-23 legacy snapshot shutdown day: 17 model rows go offline, with the official replacement table.
Key points
- Announcement and SDK support landed the same day: the official news RSS carried the 2026-10-21 12:00 GMT item 'OpenAI models are coming to Google Cloud' (description reads: bringing frontier models and Codex workflows to Gemini’s Model Garden, available through Google Cloud Marketplace; the article page returned 403 to this site that day, so facts come from the RSS fetch); python v3.36.0 and node v7.41.0 shipped vertex support the same day
- vertex() covers the Responses API only — both PRs are titled add Vertex AI support for the Responses API; whether other API surfaces are covered is not stated in either release, and this article does not infer it
- The endpoint derives from project and location: https://{location}-aiplatform.googleapis.com/v1/projects/{project}/locations/{location}/publishers/openai/v1 (location global uses aplatform.googleapis.com); base_url= can set an explicit API root, and the docs say to pass it only when you trust the full API root to receive Google credentials
- Three auth options: Google ADC (python extra: pip install 'openai[vertex]'; node: google-auth-library@>=9.15.1 <11), explicit credentials=, or a token_provider= callback (no extra; on AsyncOpenAI the callback may return an awaitable, bounded by the read timeout, raising APITimeoutError); credentials and token_provider are mutually exclusive and raise OpenAIError together
- Security boundaries are built in: Google endpoints require HTTPS (http against googleapis.com errors out), redirects are disabled, credentials go only to the configured origin; project/location are format-validated (project allows alphanumerics, underscore, dot, colon, hyphen; location is lowercase alphanumerics and hyphens only)
- The official example calls responses.create with store=False; python v3.36.0 also carried fix #4140 (preserve Vertex API root for response lifecycle); which OpenAI models are live on Vertex, pricing, and regions were not available in any source loadable on the day of writing (unverified)
Frequently asked questions
Official references
- AnnouncementOpenAI models are coming to Google Cloud (official announcement; fetched by this site via the official news RSS)
- Changelogopenai-python #4139: feat: add Vertex AI support for the Responses API
- Changelogopenai-node #3005: feat: add Vertex AI support for the Responses API
- Docsopenai-python v3.37.0 tag docs: Google Cloud Vertex AI (vertex.md)
- Docsopenai-node v7.43.0 tag docs: Google Vertex AI (docs/vertex.md)
Related articles
The GPT-6 family grows: gpt-6-sol, gpt-6-luna, gpt-6.1-sol land in the official SDKs
Verified 2026-10-09: openai-python and openai-node enums both list gpt-6-astra, gpt-6.1-sol, gpt-6-sol, gpt-6-luna; official RSS positions Sol/Luna and GPT-6.1 Sol. Only SDK- and same-day-RSS-verifiable facts are asserted.
Read articleGPT-6-Astra Goes Live: Codex Model Picker and Amazon Bedrock Catalogs
Codex CLI 0.154.0 (2026-09-09) lists GPT-6-Astra first in its model picker and adds it to Amazon Bedrock; a bundled official guide confirms Responses API usage and six reasoning levels topped by ultra. Pricing figures remain unpublished.
Read articlegpt-6-astra appears in the OpenAI SDK: the new ChatModel ID and the Safety Alerts API
openai-python v3.8.0 and openai-node v7.10.0 (2026-09-03) added gpt-6-astra to the ChatModel enum ahead of the GPT-5.6 tiers, plus a Safety Alerts API and misalignment error details. This article only states what SDK source shows.
Read articleSubscribe to GPTMap Weekly
One email every Monday: curated OpenAI updates, deep dives, and best practices. No ads, unsubscribe anytime.
Submitting opens Buttondown in a new tab to confirm your subscription.