Anthropic’s newest model, Claude Opus 5.5, just landed — meaning if you’re already building with Claude, you can call Anthropic’s most capable coding-and-reasoning model with a resource API key. Here’s what’s actually new, and how it looks from C#.

What Actually Shipped

A few facts worth knowing before you touch any code:

  • 40% cheaper than Opus 5. Input tokens at $4/M, output at $20/M (vs. $5/$25), with cache reads at just $0.20/M — a 60% drop that hits hard for agentic workloads where re-read context dominates the bill.
  • Medium effort is now the default. Anthropic reports Opus 5.5 matches Opus 5’s quality at noticeably fewer output tokens when running at the medium effort level. You control reasoning depth with the effort parameter (low → max) instead of the old thinking toggle.
  • Adaptive thinking is always on. You can no longer disable thinking. The effort parameter is your one dial for reasoning depth, latency, and cost.
  • 30%+ faster output. Opus 5.5 generates text noticeably faster than Opus 5 — meaningful when sessions run for hours unattended.
  • Sharper vision. Reads dense charts, diagrams, and screenshots more precisely, so a lot of prompt-side image preprocessing you may have built for earlier models becomes unnecessary.
  • New safety classifiers. Opus 5.5 will decline more requests than Opus 5 did (biology, cybersecurity, and reasoning-extraction categories), which means your error handling needs to check for refusals explicitly now.

Why This Matters for .NET Developers Specifically

The use cases Anthropic is calling out map directly onto real .NET workloads:

  • Long-running agentic coding. Overnight refactors, codebase-wide migrations, and multi-step debugging that would have taken engineering teams days — Opus 5.5 handles these with fewer turns and lower cost.
  • Enterprise knowledge work. Financial analysis, contract review, research synthesis across large document sets, and professional-grade spreadsheets and presentations.
  • Vision-powered workflows. Analyzing screenshots, technical diagrams, and PDFs directly — no separate OCR or vision model pipeline.
  • Cost-efficient scaling. The 40% cost reduction plus cheaper cache reads means you can run Opus 5.5 at larger scale without the bill spiraling — especially for agentic workloads where context per request has grown 2.6x in the last six months.

One thing worth knowing up front if you’re coming from OpenAI models in Foundry: Claude doesn’t use Azure.AI.OpenAI or Microsoft.Extensions.AI‘s OpenAI connector. It has its own official SDK — Anthropic, plus a Foundry-specific Anthropic.Foundry package for Azure-native authentication. As always: no Python, no notebooks — just C# and dotnet run.

Getting Started

Claude ships its own official .NET SDK, and Foundry gets its own package on top of it — this is not the Azure.AI.OpenAI pattern you might already have wired up for GPT models in Foundry.

Deploy Claude Opus 5.5 from the Foundry Model Catalog to your Foundry resource — same process as any other model. You need your resource name and a Foundry resource API key, not a separate Anthropic API key. Replace the placeholders locally; local/key authentication must be enabled on the Foundry resource for this sample to work.

API-key authentication is used in this sample. Using Anthropic.Foundry and AnthropicFoundryApiKeyCredentials with the resource key and resource name. Never commit API keys to source control or include them in screenshots or logs. User secrets keep keys out of the project files but are not encrypted and are for local development only. For production, use a managed secret store or environment variables supplied securely by your hosting environment.

Five Use Cases in One Program.cs

The explicit Anthropic reference pins the Messages API types separately from the Foundry authentication adapter.

Replace the generated Program.cs with the C# blocks below, in order: shared setup first, then Use Cases 1–5. They form one program, not five standalone top-level snippets. All using directives and executable startup code belong in this first block; subsequent blocks declare local functions. No other C# source files are needed. The console project and NuGet packages are still required.

The program runs case 1 by default. Pass 1–5 to select a case, or all to run them sequentially. For example, dotnet run — 2 runs the effort example, and dotnet run — all runs the full demo. Live calls incur charges. Case 3 is an offline refusal-handler test; case 4 skips if no screenshot is present; case 5 is a bounded, read-only agent demonstration, not an unattended repository editor.

Here’s the shared client setup and entry point:

Use your actual deployment name if it differs from claude-opus-5-5; set AZURE_AI_FOUNDRY_DEPLOYMENT through user secrets or an environment variable. Set AZURE_AI_FOUNDRY_RESOURCE and AZURE_AI_FOUNDRY_API_KEY for that same resource, with local/key authentication enabled. Compiling does not verify deployment availability, key validity, resource authentication settings, or model features.

Now append each use-case block below to that same file. Function-local parameters and message variables can safely reuse their names.


Use Case 1: A Basic Call — Same Messages API Shape

Whether you’re reviewing code, summarizing test failures, or asking a question about a codebase, the Messages API shape stays the same. Opus 5.5 just handles longer context and more complex reasoning better than its predecessor:

Dev takeaway: switching between direct Anthropic API and Foundry is basically a client constructor change — your request/response code stays identical, which matters if you want to keep a provider-agnostic AI layer.

Case 1 – Sample Output


Use Case 2: Effort — The New Cost/Quality Dial

This is the biggest operational change from Opus 5. Thinking can no longer be disabled. Instead, the effort parameter controls how much the model reasons through a problem before answering. The default is medium — Anthropic reports it matches Opus 5’s quality at noticeably fewer output tokens.

Use case: a build-pipeline bot that triages CI failures at low effort by default, and only escalates to high when the first summary is ambiguous — real cost control without a model swap.

Case 2 – Sample Output


Use Case 3: Refusal Handling — Now a Required Pattern

Handle the API’s refusal stop reason explicitly rather than assuming every successful HTTP response contains an answer. The shared PrintResponse function already does this for every live call. To exercise that branch reliably without trying to provoke a refusal, use this synthetic response fixture. It is a local handler test, not a model request or a complete API response.

Dev takeaway: a refusal can come back as a normal HTTP 200, not an exception. Always check StopReason; surface a clear message or escalate for review rather than automatically routing around the refusal. Authentication failures, throttling, and transport errors are separate failures handled at the entry point.

Case 3 – Sample Output


Use Case 4: Vision — Reading Screenshots Without a Preprocessing Pipeline

Opus 5.5’s sharper vision means you can send raw screenshots and get accurate analysis without a separate OCR step:

For example, dotnet run — 4 “C:\screenshots\error-dialog.png” selects this case. Relative paths are resolved from the current working directory. Only send screenshots you are authorized to share with the model; remove secrets and personal information first.

Use case: a support-ticket triage tool in your backend that reads user-submitted crash screenshots directly, skipping a separate OCR step.

Case 4 – Sample Output


Use Case 5: Long-Running Agent — The Overnight Refactor

Long-running coding work requires more than a single request: the application must preserve conversation history, execute allowed tools, and return each result with its matching tool-use ID. This runnable example demonstrates that loop with a read-only, in-memory sample repository and an eight-request limit. It asks for a migration plan, not file edits; no shell commands or model-generated code are executed.

That’s the final C# block: your single Program.cs now contains the startup code, the response helper, and all five use cases.

Validation scope: the original combined code was compiled with .NET SDK 10.0.302 and the package versions listed above. The offline refusal fixture, argument handling, missing-image behavior, and invalid-PNG guard were exercised locally. Live Foundry requests and the multi-turn agent exchange were not tested against an Azure deployment; those still require a valid Foundry resource API key, local/key authentication enabled, and a compatible model deployment. This code check does not verify the article’s pricing or model-performance claims.

Case 5 – Sample Output

Dev takeaway: the model proposes tool calls; your application decides what actually runs. A production overnight refactor additionally needs an isolated workspace, explicit approval for writes, a restricted test runner, checkpoints, cost limits, and telemetry. Direct Anthropic.Foundry calls do not automatically register this loop with Foundry Agent Service or provide end-to-end tracing; that integration requires separate setup.


Cost Optimization: Making Opus 5.5 Work Harder for Less

Opus 5.5 is already 40% cheaper than Opus 5, but there are practical steps to push costs down further on long-running workloads:

1. Pick the Right Effort Level

Not every task needs max effort. Use this guide:

  • low — CI triage, test summaries, quick b reviews
  • medium (default) — general-purpose coding, design tasks, knowledge work
  • high / xhigh — complex refactors, multi-file migrations, financial analysis
  • max — frontier-level benchmarks, extremely complex reasoning

2. Protect Your Cached Reads

Cache reads are just $0.20/M tokens — a fifth of what they cost on competing models — but they still add up at scale. As agentic coding has matured, organizations have shifted from asking developers to scale at all costs to asking developers to scale efficiently:

  • Pick your model at the start of a session rather than switching midway
  • Compact before you step away rather than after
  • If you’re on API keys or cloud providers, set the one-hour cache lifetime for long sessions
  • Forked subagents start from the parent’s cache instead of paying for the same context again

3. Measure Open-Ended Tasks

On well-scoped tasks, both Opus 5.5 and Opus 5 finish in about the same number of turns — the price cut is all you get. The gap is biggest on open-ended tasks, where a model can spend many turns on the wrong approach. Opus 5.5’s efficiency gains compound on harder, more ambiguous work.


Opus 5 vs. Opus 5.5 — Quick Comparison

Feature Opus 5 Opus 5.5
Input price / MTok $5 $4
Output price / MTok $25 $20
Cache read / MTok $0.50 $0.20
Default effort high medium
Thinking toggleable always on (effort parameter)
Output speed baseline 30%+ faster
Safety classifiers standard expanded (bio, cyber, reasoning)
Available on Foundry yes yes

Bottom Line

Opus 5.5 isn’t just a bigger model — it’s a shift from one-shot demos to sustained, hours-long work. Whether you’re refactoring a 680K-line bbase, analyzing financial filings, or building multi-step agents that run overnight, the 40% cost reduction plus the efficiency gains mean this is the first Opus model you should seriously evaluate for production workloads on Azure.

Deploy it from Foundry, configure your resource name and Foundry resource API key, and start with medium effort on your agentic workloads. You’ll see the cost savings immediately — and on harder, more open-ended tasks, the quality improvement compounds.

Ready to try it? Deploy claude-opus-5-5 from the Foundry Model Catalog and start with the code above. The Anthropic SDK for .NET is the only thing you need — no Python, no notebooks, just C#.

Source code: https://github.com/taswar/GptImage2.5-flare-sunburst-demo


Building AI features in C#? I write about practical, no-hype prompt engineering and Azure AI patterns for .NET developers. Check out Prompt Engineering for .NET Developers — free, no Python required. Also subscribe to my mailing list for the latest blogs, tips and tricks I share.