From db5af6b9f9f938cf8a1d9bc6a7e0ba789309f609 Mon Sep 17 00:00:00 2001 From: sresam89 Date: Mon, 16 Mar 2026 15:34:10 -0500 Subject: [PATCH 1/3] Fix for sending x-api-key instead of api-key as header for newer azure hosted anthropic service --- packages/openai-adapters/src/apis/AnthropicUtils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/openai-adapters/src/apis/AnthropicUtils.ts b/packages/openai-adapters/src/apis/AnthropicUtils.ts index 46b28e5785c..3777cdde88c 100644 --- a/packages/openai-adapters/src/apis/AnthropicUtils.ts +++ b/packages/openai-adapters/src/apis/AnthropicUtils.ts @@ -78,7 +78,10 @@ export function getAnthropicHeaders( ); } - const authHeaderName = isAzure ? "api-key" : "x-api-key"; + const authHeaderName = + isAzure && apiBase?.includes("cognitiveservices.azure.com") + ? "api-key" + : "x-api-key"; const headers: Record = { "Content-Type": "application/json", From 9178f87faa3689b8adb44be23a75b05498907e0d Mon Sep 17 00:00:00 2001 From: sresam89 Date: Tue, 17 Mar 2026 08:17:12 -0500 Subject: [PATCH 2/3] Update packages/openai-adapters/src/apis/AnthropicUtils.ts Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- packages/openai-adapters/src/apis/AnthropicUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/openai-adapters/src/apis/AnthropicUtils.ts b/packages/openai-adapters/src/apis/AnthropicUtils.ts index 3777cdde88c..4e279a5ea82 100644 --- a/packages/openai-adapters/src/apis/AnthropicUtils.ts +++ b/packages/openai-adapters/src/apis/AnthropicUtils.ts @@ -79,7 +79,7 @@ export function getAnthropicHeaders( } const authHeaderName = - isAzure && apiBase?.includes("cognitiveservices.azure.com") + isAzure && apiBase?.toLowerCase().includes("cognitiveservices.azure.com") ? "api-key" : "x-api-key"; From 69548c4632575f49329c68b184de2fc57747847f Mon Sep 17 00:00:00 2001 From: Dallin Romney Date: Tue, 24 Mar 2026 17:14:20 -0700 Subject: [PATCH 3/3] fix: update test to expect x-api-key for Azure AI Foundry endpoints Azure AI Foundry (services.ai.azure.com) uses x-api-key, while only cognitiveservices.azure.com uses api-key. Update the test to match. --- packages/openai-adapters/src/apis/AnthropicUtils.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/openai-adapters/src/apis/AnthropicUtils.test.ts b/packages/openai-adapters/src/apis/AnthropicUtils.test.ts index 7ed572c8057..29e7f79c5b3 100644 --- a/packages/openai-adapters/src/apis/AnthropicUtils.test.ts +++ b/packages/openai-adapters/src/apis/AnthropicUtils.test.ts @@ -93,14 +93,14 @@ describe("getAnthropicHeaders", () => { expect(headers["api-key"]).toBeUndefined(); }); - it("uses api-key for Azure AI Foundry endpoint", () => { + it("uses x-api-key for Azure AI Foundry endpoint", () => { const headers = getAnthropicHeaders( "azure-key", false, "https://my-resource.services.ai.azure.com/anthropic", ); - expect(headers["api-key"]).toBe("azure-key"); - expect(headers["x-api-key"]).toBeUndefined(); + expect(headers["x-api-key"]).toBe("azure-key"); + expect(headers["api-key"]).toBeUndefined(); }); it("uses api-key for Azure Cognitive Services endpoint", () => {