White modern architecture against a pale sky

Azure OpenAI vs OpenAI API vs Amazon Bedrock in 2026: how to choose

The model you want is no longer tied to one cloud. What separates the platforms now is residency, capacity, pricing modifiers and the features that lag behind. Here is how we choose.

By ForthClover EngineeringUpdated October 202611 min readPlatform Comparison

We run production LLM workloads on all three of these platforms, and the question we get every few weeks hasn’t changed: which one should we standardise on? What has changed is the shape of the answer. A year ago the model you wanted usually decided it. In 2026 the catalogs overlap heavily. OpenAI’s GPT models are on Amazon Bedrock, Anthropic’s Claude is on Bedrock and in Microsoft Foundry, and Azure’s OpenAI models are called with the standard OpenAI SDK.

So the decision now turns on operating model: where your identity, network and governance already live, how strictly data must stay in a geography, which discount and capacity mechanisms you need, and how much feature lag you can tolerate. This guide walks through each of those with current numbers, then gives the framework we use with clients.

Model lineups and prices here are as of October 2026. All three vendors change both frequently, and every price below should be re-checked on the linked pricing page before you commit budget.

The short answer

  • Choose Azure (Microsoft Foundry) if your organisation already runs on Azure with Entra ID, private networking and Microsoft’s compliance paperwork in place, and you want OpenAI models with Azure’s residency options and committed-capacity model.
  • Choose Amazon Bedrock if you are AWS-first, want Claude, GPT, Amazon Nova and open-weight models behind one IAM boundary and one bill, or need AWS-native controls such as inference profiles and CloudWatch.
  • Choose the OpenAI API directly if you are building on OpenAI models only, want the vendor’s own feature set with the least surface area, and don’t need a hyperscaler’s network and identity integration.

Plenty of our clients run two of these. That is fine, provided the second one is a deliberate choice (a specific model, a specific residency need) rather than an accident of two teams picking different defaults.

What changed in 2026

  • OpenAI models arrived on Bedrock. GPT-5.5, GPT-5.4 and Codex became generally available on 1 June 2026, with AWS stating that pricing matches OpenAI’s first-party rates.1 GPT-5.6 Sol, Terra and Luna followed on 13 July through the Responses API,2 and Bedrock’s documentation now also lists GPT-6 Astra and GPT-6.1 Sol.3
  • The GPT-6 family reached Foundry. GPT-6 Astra (3 September), GPT-6 Luna (22 September) and GPT-6.1 Sol (29 September) are generally available, and Foundry availability for Claude Opus 5.5 was announced on 24 September.4
  • Claude on Bedrock got a native Messages endpoint. Newer Claude models are served at /anthropic/v1/messages on Bedrock’s bedrock-mantle endpoint with the same request shape as Anthropic’s own API, alongside the older InvokeModel and Converse integration.5
  • Azure dropped the dated API versions. The v1 API lets you use the standard OpenAI() client with an Azure base URL, including Entra ID token refresh, with no api-version parameter.6
  • OpenAI renamed and repriced its tiers. Priority processing became Fast mode on 30 July 2026, and regional-processing (data residency) endpoints carry a 10% uplift for models released on or after 5 March 2026.7

Model availability, October 2026

Model familyOpenAI APIAzure (Foundry)Amazon Bedrock
OpenAI GPTFull lineup, including gpt-6-astra, gpt-6.1-sol and gpt-6-lunaGPT-6 Astra, GPT-6.1 Sol and GPT-6 Luna generally availableGPT-5.4 to GPT-5.6 generally available; GPT-6 Astra and GPT-6.1 Sol listed
Anthropic ClaudeNot offeredClaude in Microsoft Foundry, billed through Azure MarketplaceFable 5.1, Opus 5.5, Sonnet 5.5, Haiku 5.5 and earlier generations
Open-weight and othersNot offeredDeepSeek, Grok, Llama and Microsoft models, among othersLlama, Mistral, Qwen, DeepSeek, gpt-oss and others
Amazon NovaNot offeredNot offeredNova and Nova 2 models

Sources for the table: the OpenAI pricing page, Microsoft’s September 2026 Foundry changelog and v1 API docs, Anthropic’s pricing and Bedrock pages, and Bedrock’s prompt-caching model list.7468539

The same model name does not mean the same features

This is the gotcha that costs teams the most rework. Three current examples:

  • Claude on Bedrock’s Messages endpoint does not support Anthropic’s Message Batches API, the Files API, or server-side tools such as web search and code execution.5 If your design depends on those, test on Bedrock before you commit.
  • For GPT-5.6 and later on Bedrock, explicit prompt-cache breakpoints work through the Responses, Chat Completions and InvokeModel formats, but not through Converse.3
  • On Azure, new deployment types roll out in a set order (Global first, then Data Zone, then single-geography) and geography-based types have no guaranteed availability date.10 If you need regional processing, a new model may not be usable for you on launch day.

Pricing: list rates converge, the modifiers don’t

For the same model, headline rates are now close or identical across platforms. The real differences come from residency premiums, which discount tiers exist for your model, and how committed capacity is sold.

Per million tokens (input / output)OpenAI APIAzure (Foundry)Amazon Bedrock
GPT-6.1 Sol$2.00 / $10.00; cached input $0.10$2.00 / $10.00 on Global StandardCheck the pricing page; earlier GPT models launched at OpenAI’s rates
Claude Sonnet 5.5Not offeredRated at Anthropic’s standard prices, invoiced in consumption units$2.00 / $10.00 on the global endpoint
Residency premium+10% for regional processing on newer modelsData Zone and regional premiums for models launched from 1 Sep 2026; 1.1x for Claude on US Data Zone+10% for regional or geographic endpoints on Claude 4.5 and later

Sources: OpenAI pricing, Microsoft’s September changelog, Anthropic’s pricing and Bedrock pages.7485 Bedrock bills Claude as a third-party Marketplace product, so it appears under the model provider in Cost Explorer.11

Discount and capacity levers

LeverOpenAI APIAzure (Foundry)Amazon Bedrock
BatchHalf the Standard priceGlobal and Data Zone Batch: 50% off, 24-hour target50% below on-demand for selected models
Flexservice_tier: flex at Batch rates; may return 429 when busyFlex processing on Global Standardflex tier at 50% off Standard, where supported
Faster tierFast mode, about 2x to 2.5x StandardPriority processing on Global and Data Zone Standardpriority tier at a 75% premium, where supported
Prompt cachingAutomatic; GPT-5.6+ cache writes billed at 1.25x for 30 minutesAutomatic; GPT-5.6+ writes may be charged; up to 100% off cached input on PTUsExplicit checkpoints for Claude (5 minutes or 1 hour)
Committed capacityTalk to OpenAI salesPTUs, hourly or 1-month and 1-year reservationsReserved tier (1 or 3 months) or Provisioned Throughput

Sources for the levers table.7121013141516317 “Where supported” matters: the Bedrock model card for Claude Sonnet 5.5 lists Standard tier only, with no Batch, Flex, Priority or Reserved support at the time of writing.11

A worked example

Take a workload of 1,500 million input tokens and 300 million output tokens a month on GPT-6.1 Sol, roughly 50 million in and 10 million out per day.

  • OpenAI API or Azure Global Standard: 1,500 x $2.00 + 300 x $10.00 = $6,000 a month on either.74
  • Add an EU regional-processing requirement on OpenAI: $6,000 x 1.10 = $6,600.7 On Azure, price the Data Zone deployment type for the specific model on the pricing page, since the premium policy depends on launch date.4
  • Move the 40% of traffic that is overnight enrichment to Batch: 0.4 x $6,000 x 0.5 = $1,200 saved, so $4,800 on Standard pricing.

The point of the exercise: the platforms tie on list price, and the decision is made by which modifiers you need and whether they exist for your chosen model in your chosen geography.

Data handling, residency and compliance

This is still where most enterprise decisions are made. The good news is that all three now have defensible defaults. The differences are in who operates the inference and how narrowly you can pin processing.

QuestionOpenAI APIAzure (Foundry)Amazon Bedrock
Used for training?Not by defaultNo; prompts and outputs are not available to OpenAINo; not shared with model providers
Who runs inference?OpenAIMicrosoft, in Azure; models don’t call OpenAI’s servicesAWS-owned deployment accounts that model providers can’t access
Default retentionAbuse-monitoring logs up to 30 days; zero data retention by approvalAbuse monitoring with sampled human review; modified monitoring by applicationInvocation logging is opt-in and goes to your own CloudWatch or S3
Residency optionsRegional storage in 10 regions; regional processing in the US, EU and UAEGlobal, Data Zone (US, EU, APAC) or single Azure geographyGlobal, geographic profiles (for example US, EU, AU) or in-region
HIPAABAA for eligible endpoints with required retention settingsMicrosoft BAA included via the DPA for in-scope servicesHIPAA-eligible service

Sources for the data table.18192011052122

Diagram

Where inference can run on each platform

Every platform now lets you trade routing scope for residency. Narrower scopes usually cost more; global routing is the cheapest default.

Amazon BedrockIn-Regionone AWS regionGeographic profileus. · eu. · au. · jp.Global profileany supported regionWHO RUNS INFERENCEAWS deployment accounts;model providers have no accessAzure (Foundry)Standard / Regional PTUone Azure geographyData ZoneUS · EU · APACGlobalany Azure regionWHO RUNS INFERENCEMicrosoft-hosted;not available to OpenAIOpenAI APIRegional processingUS · EU · UAERegional storage10 regions; processing may varyGlobal (default)OpenAI infrastructureWHO RUNS INFERENCEOpenAI-operated; zero dataretention by approvalTightest residency, usually a premiumWidest routing, highest quota, lowest price

Residency gotchas we keep running into

  • “Global” means anywhere. Azure Global deployments may process in any Azure region, and Bedrock’s global inference profiles route worldwide.1011 They are the cheapest, highest-quota option, which is exactly why they become the accidental default.
  • OpenAI’s EU processing has prerequisites. Regional processing in Europe requires an approved retention arrangement such as zero data retention or modified abuse monitoring, and outside the US, EU and UAE only storage is regional.18
  • Data zones can grow. Microsoft can add regions to a data zone without prior notice, and the EU zone follows the EU Data Boundary, which can include EFTA countries.10 Check that this matches your legal team’s wording.
  • Stateful features store data. On Azure, the Responses API, Assistants threads and stored completions persist content in your resource’s geography.19 On OpenAI, zero data retention forces store to false.18 Decide deliberately whether you want server-side conversation state.
  • A BAA is not compliance. Each vendor scopes its BAA to specific services, endpoints or configurations.1821 Map every feature you use, not just the platform.

Capacity, quotas and behaviour under load

Single-request latency on comparable models is rarely the deciding factor. What differs is how each platform behaves when you push sustained volume.

  • Bedrock throttles on an upfront reservation of input tokens plus max_tokens, so oversized output ceilings burn quota you never use.23 Cache reads don’t count against tokens per minute. For Claude on the Messages endpoint, Anthropic documents a default of 2 million input tokens per minute, with up to 5 million input and 500,000 output available without extra Anthropic approval; RPM limits are handled by AWS.5
  • Azure gives Global Standard the highest default quota, but notes that high, consistent volume can see more latency variation; provisioned types are the answer when you need low variance.10 PTUs bill hourly whether used or not, can’t be paused, and a reservation is a discount, not a capacity guarantee. Microsoft’s advice is to create the deployment first and buy the reservation second.17
  • OpenAI lets you pick per request: Flex for cheap, slower work (which can return a 429 when capacity is short, at no charge, so build a fallback to Standard), and Fast mode when latency matters more than price.127

Developer experience and portability

OpenAI and Azure now share a client. The only differences are the base URL, the credential, and that Azure’s model field is your deployment name:

# OpenAI API
from openai import OpenAI

client = OpenAI()  # reads OPENAI_API_KEY
r = client.responses.create(model="gpt-6.1-sol", input="Summarise this ticket: ...")
print(r.output_text)

# Azure (Foundry) v1 API with Entra ID
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)
azure = OpenAI(
    base_url="https://YOUR-RESOURCE.openai.azure.com/openai/v1/",
    api_key=token_provider,
)
r = azure.responses.create(model="support-gpt-61-sol", input="Summarise this ticket: ...")

Bedrock offers several API shapes. For Claude through boto3, Converse is the lowest-friction option; the model ID carries the routing scope as a prefix (global., us., eu.).11

import boto3

brt = boto3.client("bedrock-runtime", region_name="eu-west-1")
r = brt.converse(
    modelId="eu.anthropic.claude-sonnet-5-5",   # EU geographic profile
    messages=[{"role": "user", "content": [{"text": "Summarise this ticket: ..."}]}],
    inferenceConfig={"maxTokens": 800},
)
print(next(b["text"] for b in r["output"]["message"]["content"] if "text" in b))

Whatever you choose, put a thin interface of your own between application code and the provider SDK: one function for “generate”, one for “generate with tools”, one for “embed”. Gateways such as LiteLLM can do this for you, but test the parts that don’t abstract cleanly: tool-call formats, structured output, and especially caching, which is automatic on OpenAI and Azure but uses explicit checkpoints for Claude on Bedrock.15163

A decision framework

Work down these questions in order. The first one that gets a firm answer usually settles it.

QuestionIf yes, lean towards
Must inference stay in a specific country or zone?Compare exact options: OpenAI processes regionally only in the US, EU and UAE; Azure offers zones and single geographies; Bedrock offers geographic profiles and in-region routing
Are identity, private networking and audit already standardised on one cloud?That cloud. Security review is usually the longest pole, and it is shortest where the controls already exist
Do you need Claude and GPT under one bill and one access model?Bedrock (both generally available) or Foundry (Claude through Azure Marketplace)
Do you want Amazon Nova or a broad managed catalog of open-weight models?Bedrock
Do you need committed, low-variance throughput?Azure PTUs or Bedrock Reserved tier; both need capacity planning before purchase
OpenAI-only, small team, no hyperscaler requirement?OpenAI API

When each one wins

Azure wins for Microsoft-centric enterprises. Entra ID, Azure Policy controls on deployment types, the BAA in the default DPA and familiar procurement remove months from an enterprise rollout. Its PTU reservations are the most self-service committed-capacity option of the three, bought directly in the Azure portal.17

Bedrock wins on breadth inside an AWS boundary. It is the only one of the three with Claude, GPT, Nova and a large open-weight catalog together, and its cost tooling (inference profiles, request metadata, CloudWatch token metrics) is good once configured.

The OpenAI API wins on simplicity and on access to OpenAI’s full feature set from the vendor itself, including per-request Flex and Fast tiers. For a team that only uses OpenAI models and has no hyperscaler mandate, the extra layers add little.

Failure modes we see in platform choices

  • Choosing on list price, then discovering the residency premium or a missing batch tier for the chosen model.
  • Assuming a model name implies feature parity, and finding a required tool or API missing on the cloud listing.
  • Assuming “in our cloud” means “in our account”. Hyperscaler inference runs in provider-operated infrastructure under contractual controls, and global routing crosses regions.
  • Buying committed capacity before deploying, or sizing it for peak rather than floor.
  • Hard-coding one SDK’s tool-calling and caching behaviour throughout the codebase, making the second provider a rewrite.
  • Missing Marketplace-billed lines (Claude on Bedrock, Claude in Foundry) in cost dashboards that filter by service name.

Checklist

  • Written residency requirement, mapped to a specific deployment type or inference profile.
  • Every model you plan to use checked for the API, tools and tiers you need on that platform.
  • Prices recomputed with the residency premium and the tiers actually available for your model.
  • Data retention, abuse monitoring and stateful-storage settings chosen and documented.
  • BAA or DPA scope confirmed per feature, not per platform.
  • Quota and throttling behaviour load-tested at expected peak, including max_tokens settings.
  • Committed capacity deferred until you have a measured traffic floor.
  • A provider-neutral interface in your code, with tests per provider.

ForthClover helps teams make and implement this choice, from the security review to the cost model. If you want a second opinion on yours, see what we do or get in touch.

Sources

  1. AWS Machine Learning Blog, “OpenAI models and Codex on Amazon Bedrock are now generally available,” 1 Jun 2026 — aws.amazon.com/blogs/machine-learning/openai-models-and-codex-on-amazon-bedrock-are-now-generally-available/
  2. AWS What’s New, “OpenAI GPT-5.6 Sol, Terra, and Luna now generally available on Amazon Bedrock,” 13 Jul 2026 — aws.amazon.com/about-aws/whats-new/2026/07/openai-gpt-sol-terra/
  3. AWS, Amazon Bedrock User Guide — Prompt caching (supported models and limits) — docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html
  4. Microsoft Foundry Blog, “What’s new in Microsoft Foundry — September 2026,” 15 Oct 2026 — devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-september-2026/
  5. Anthropic, “Claude in Amazon Bedrock” (endpoints, regions, quotas, feature support) — platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock
  6. Microsoft Learn, “Azure OpenAI in Microsoft Foundry Models v1 API” — learn.microsoft.com/en-us/azure/foundry/openai/api-version-lifecycle
  7. OpenAI, API pricing — developers.openai.com/api/docs/pricing
  8. Anthropic, Claude API documentation — Pricing (incl. cloud platform and Foundry billing) — platform.claude.com/docs/en/about-claude/pricing
  9. AWS, “Supported Regions and models for batch inference” (Bedrock model catalog by provider) — docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-supported.html
  10. Microsoft Learn, “Understanding deployment types in Microsoft Foundry Models,” Aug 2026 — learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/deployment-types
  11. AWS, Amazon Bedrock model card — Claude Sonnet 5.5 — docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-5-5.html
  12. OpenAI, API guide — Flex processing — developers.openai.com/api/docs/guides/flex-processing
  13. AWS, Amazon Bedrock pricing — aws.amazon.com/bedrock/pricing/
  14. AWS, “Service tiers for optimizing performance and cost” — docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html
  15. OpenAI, API guide — Prompt caching — developers.openai.com/api/docs/guides/prompt-caching
  16. Microsoft Learn, “Prompt caching with Azure OpenAI in Microsoft Foundry Models,” Aug 2026 — learn.microsoft.com/en-us/azure/foundry/openai/how-to/prompt-caching
  17. Microsoft Learn, “Provisioned throughput billing and cost management” — learn.microsoft.com/en-us/azure/foundry/openai/concepts/provisioned-throughput-billing
  18. OpenAI, API guide — Your data (retention, ZDR, data residency) — developers.openai.com/api/docs/guides/your-data
  19. Microsoft Learn, “Data, privacy, and security for Foundry Models sold by Azure” — learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/data-privacy
  20. AWS, Amazon Bedrock User Guide — Data protection — docs.aws.amazon.com/bedrock/latest/userguide/data-protection.html
  21. Microsoft Learn, HIPAA and HITECH Act compliance offering — learn.microsoft.com/en-us/compliance/regulatory/offering-hipaa-hitech
  22. AWS, HIPAA Eligible Services Reference (updated 15 Oct 2026) — aws.amazon.com/compliance/hipaa-eligible-services-reference/
  23. AWS, “Monitor bedrock-runtime inference using CloudWatch metrics” — docs.aws.amazon.com/bedrock/latest/userguide/monitoring-runtime-metrics.html

All sources were checked in October 2026. Worked-example figures are our own arithmetic on list prices, not measurements from a client system.