LowCodeStacks™
Sign in

Microsoft Foundry for people who learned Azure OpenAI: what changed and what to migrate

A migration map from Azure OpenAI to Microsoft Foundry: every renamed thing side by side, the retirement dates that matter (the Assistants API, the azure-ai-inference package, stored completions), what to change in your code and resources, and what you can leave alone.

AI & agentsQuick reference7 min read

Checked against Microsoft Learn · 6 sourcesPosted by the Maker DeskHow we write guides

If you learned Azure OpenAI a year or two ago, almost every name has changed since: the portal, the resource type, the SDK packages, the API for agents, even the roles. The models and your existing calls still work, but three retirements have dates attached, and the new portal only shows the new kind of resource. This page is the map from the names you know to the ones Microsoft Foundry uses now, with the dates and a checklist of what actually needs changing.

The names, old and new

What it isYou knew it asIt's nowWorth knowing
The platformAzure OpenAI Studio, then Azure AI Studio, then Azure AI FoundryMicrosoft FoundryOne brand for models, agents and tools
The other AI servicesAzure Cognitive Services, then Azure AI ServicesFoundry ToolsSpeech, Vision, Language, Content Safety, Content Understanding
The portalFoundry (classic)Foundry portal, with a New Foundry toggle in the bannerThe new portal shows Foundry projects only
The resourceAn Azure OpenAI resource, plus a hub for projectsA Foundry resource (kind AIServices) with projects inside itThe Azure resource type is still Microsoft.CognitiveServices/accounts
SettingsManagement centerOperate and Manage sectionsQuota is under Manage; compliance and guardrail policies under Operate
The agents APIAssistants API (threads, messages, runs, assistants)Responses API (conversations, items, responses, agent versions)Responses are synchronous by default; no polling loop
API versionsA monthly api-version parameterStable v1 routes (/openai/v1/)No version parameter needed
EndpointsSeveral: openai, cognitiveservices, azureml, search, speechOne project endpoint plus the OpenAI v1 endpointhttps://<resource>.services.ai.azure.com/api/projects/<project>
The Python clientAzureOpenAI() from openai; azure-ai-inference; azure-ai-generative; azure-ai-mlOpenAI() with a base_url, and azure-ai-projects 2.x2.x and 1.x of azure-ai-projects target different portals and aren't interchangeable
Model billing nameModel-as-a-ServiceFoundry Models sold by Azure, plus partner and community modelsFirst-party models are billed through Azure meters
RolesCognitive Services OpenAI User; then Azure AI User, Azure AI Owner, Azure AI Account Owner, Azure AI Project ManagerFoundry User, Foundry Owner, Foundry Account Owner, Foundry Project ManagerSame IDs and permissions; both names show during the rename
Creating an agentcreate_agent()create_version() with a PromptAgentDefinitionAgents are versioned and have a kind: prompt, workflow or hosted

The dates that matter

DateWhatIf it affects you
26 August 2026The azure-ai-inference package retiredMove to the openai package against the v1 endpoint
26 August 2026The Azure OpenAI Assistants API sunsetMove agents to Foundry Agent Service on the Responses API; a migration tool rewrites most of the code
15 October 2026Stored completions retire: the UI and the API stopUse the Responses API for response workflows and Agent Traces for observability and datasets; existing stored completions can't be exported, and each one is kept for 30 days from its creation

The first two dates have passed. Code that still uses either is already past Microsoft's date for it, so treat it as the first thing to change rather than a plan for later. Jobs created earlier from stored-completion datasets keep working after the third date; only new use stops.

The migration checklist

  1. Upgrade the Azure OpenAI resource to a Foundry resource. It keeps its name, endpoint, API keys, tags, network settings, identity settings and existing state, including fine-tuning jobs. You need Owner on the subscription or resource group and a system-assigned managed identity on the resource. In the Azure portal, open the resource and select Get started on the "Want to try the latest industry models and Agents?" banner; in Bicep, change kind from OpenAI to AIServices, set allowProjectManagement: true and add the identity. Resources with private endpoints can't be upgraded in either portal: delete the endpoints and recreate them after, or do it in Bicep or Terraform (AzureRM 4.56.0 or later for a non-destructive change). Customer-managed keys need a request to Microsoft first. You can roll back after deleting projects, connections and non-OpenAI deployments. previousKind: "OpenAI" on the resource tells you an upgrade happened.
  2. Fix private DNS after the upgrade. A Foundry resource answers on three host names: {name}.openai.azure.com, {name}.services.ai.azure.com and {name}.cognitiveservices.azure.com. Private networking needs a DNS zone, or a conditional forwarder, for each, and the private endpoint recreated so the new addresses get IPs.
  3. Replace the SDK packages. AzureOpenAI(azure_endpoint=…, api_version=…) becomes OpenAI(base_url="https://<project>.services.ai.azure.com/openai/v1", …) with an Entra bearer token; azure-ai-inference goes; azure-ai-projects moves to 2.x. The SDK major version must match the portal you use.
  4. Move agents off the Assistants API. Assistants become agent versions, threads become conversations, runs become responses. Microsoft's migration tool converts the code constructs; it doesn't move old threads or runs, which stay readable through the old API until it's gone. Check that the resource's region supports the Responses API first; if not, agents don't appear in the new portal at all. Our guide Foundry Agent Service, and moving off the Assistants API walks through it.
  5. Replace stored completions before 15 October 2026 with the Responses API, or with Agent Traces (connect the project to Application Insights) if you used them to inspect agent runs or build evaluation datasets.
  6. Review access. After the upgrade, users with Cognitive Services User get every Foundry feature, while Cognitive Services OpenAI User stays limited to OpenAI features. Wildcard role assignments and Azure Policy definitions that don't name a resource kind widen in the same way. Owners and Contributors still can't create agents; building needs Foundry User (or Project Manager or Foundry Owner). An Azure Policy for model deployments keeps the model catalogue to what you allow.

What you do not have to do

  • You don't need a new resource or a new endpoint. Existing Azure OpenAI calls, keys and customisations keep working on the upgraded resource, and existing use costs the same. Only the new features you adopt add cost.
  • Chat completions aren't going away. The Responses API is the new default and the only API for agents, but chat completions remain available in both portals.
  • Hub-based projects aren't lost. They're hidden in the new portal; switch to the classic portal to reach them, or migrate them to Foundry projects. Microsoft's new investment goes to Foundry projects.
  • Your knowledge transfers. Quota, deployments, content filtering (now called guardrails) and fine-tuning work as before, under new menus.

Finding things in the new portal

TaskClassic portalNew portal
Deployments and playgroundsModels + endpoints; PlaygroundsBuild > Models
AgentsAgentsBuild > Agents
Model catalogueModel catalogDiscover > Model catalog
Evaluations and fine-tuningEvaluation; Fine-tuningBuild > Evaluations; Build > Fine-tuning
TracingTracingOperate > Tracing
QuotaManagement center > QuotaManage > Quota
Users and connected resourcesManagement centerManage > Project details
Content filtersGuardrails + controlsBuild > Guardrails to create and assign them; Operate > Compliance for policies across subscriptions

If your SDK call fails with ModuleNotFoundError or odd behaviour, the SDK version doesn't match the portal. If agent code gets 404 or MethodNotAllowed, it's sending Assistants API calls to a Responses API endpoint. If projects are missing, they're hub-based: switch portals.

Sources

Was this helpful?

Comments

No comments yet. Share what worked for you.

Sign in to comment. Comments show under a display name you choose, never your email.