Derek Coleman & Associates Inc logoDerek Coleman & Associates Inc

Home / Support / DCA Model Gateway

DCA Model Gateway: usage and support

One OpenAI- and Anthropic-compatible endpoint in front of the Azure AI Foundry deployments you run in your own Azure subscription. Model usage stays on your Azure bill; the gateway adds routes, a data boundary, per-key token budgets and usage metering. This page covers setup, calling the gateway, errors, limits and billing.

At a glance

Endpointhttps://ai-gateway-east-us1.azure-api.net/gateway
Your keyapi-key header (OpenAI and Azure OpenAI APIs); x-api-key (Anthropic API, base URL https://ai-gateway-east-us1.azure-api.net/gateway/anthropic)
APIsOpenAI v1 chat completions, responses and embeddings; the Azure OpenAI deployments path; the Anthropic Messages API. Streaming works.
ModelsThe deployments in your Azure AI Foundry, Azure AI Services or Azure OpenAI resource
ConnectorDCA Model Gateway Connector, application ID 7154fd27-4506-4cd5-8e3a-b2e5208d0846: no secrets; it reaches only what you assign it a role on
Portalhttps://saas.dcassociatesgroup.com: subscriptions, Connect your Foundry, Regenerate gateway key

Quick start

  1. Subscribe on the Azure Marketplace listing, select Configure account now, sign in with your work account and select Subscribe. If the status then shows Pending activation, our team confirms new subscriptions before billing starts; carry on with the next steps.
  2. Add the connector to your tenant and give it a data-only role on your Foundry resource. In Azure Cloud Shell, signed in to the subscription that holds the resource:
    git clone https://github.com/Derek-Coleman-Associates-Corporation/dca-model-gateway
    bash dca-model-gateway/samples/connect/connect-foundry.sh <resource-group> <foundry-resource-name>
    The script creates the custom role DCA Model Gateway Inference (calls to deployments only: no keys, no settings) and assigns it. The built-in Cognitive Services User role also works but additionally allows listing the resource's keys. Manual steps: Connect your Foundry.
  3. Connect: in the portal open Subscriptions, the subscription's menu, Connect your Foundry. Enter your endpoint and at least a default deployment, then select Save and test.
  4. Get your key: in the same menu choose Regenerate gateway key. It is shown once; store it in your secret manager.
  5. Call the gateway:
    curl https://ai-gateway-east-us1.azure-api.net/gateway/openai/v1/chat/completions \
      -H "api-key: $DCA_GATEWAY_KEY" -H "Content-Type: application/json" \
      -d '{"messages":[{"role":"user","content":"Hello"}]}'

Until a Foundry is connected, requests are refused with 409 foundry_not_connected and nothing is forwarded.

Use your SDK

from openai import OpenAI

key = "<your gateway key>"
client = OpenAI(base_url="https://ai-gateway-east-us1.azure-api.net/gateway/openai/v1", api_key=key,
                default_headers={"api-key": key})   # the gateway reads the api-key header
reply = client.chat.completions.create(
    model="gpt-4.1-mini",                         # a deployment in YOUR Foundry
    messages=[{"role": "user", "content": "Hello"}])

Azure OpenAI SDK: azure_endpoint="https://ai-gateway-east-us1.azure-api.net/gateway" and your key, unchanged code. Anthropic SDK: base_url="https://ai-gateway-east-us1.azure-api.net/gateway/anthropic". Tested samples for Python, Node.js and curl: samples.

Which deployment answers

x-dca-routeUsesIf you did not map it
cheap, auto, reasoning, code, frontierThe deployment you mapped to that routeYour default deployment
oss-onlyYour mapped open-weight deploymentRefused with 422; never sent to the default
No headerThe deployment named in modelYour default deployment when model is empty

Send x-dca-data-boundary: us to use only the deployments you declared for the United States data boundary; anything else is refused with 422 no_eligible_provider, never rerouted. Response headers x-dca-backend, x-dca-model and x-dca-remaining-quota-tokens show who served the request and what budget is left. Full reference: API reference.

Errors and fixes

You seeMeaningFix
409 foundry_not_connectedNo Foundry connected to this subscriptionOpen Connect your Foundry in the portal and save a connection
502 foundry_auth_failed with AADSTS700016The connector is not in your Microsoft Entra tenantAdmin consent on the portal page, or az ad sp create --id 7154fd27-4506-4cd5-8e3a-b2e5208d0846
401 PermissionDenied from your FoundryThe connector has no role on the resource yetAssign the role; allow up to 10 minutes; select Test again
403 from your FoundryThe resource refuses public network trafficAllow public network access on the resource
404 DeploymentNotFoundNo deployment with that nameCheck the deployment name, not the model name
422 route_not_configured / no_eligible_providerRoute not mapped / nothing declared for the US boundaryMap it on the Connect your Foundry page
401 invalid subscription keyWrong, rotated or cancelled keyUse the current key, or Regenerate gateway key
429 / 403 without an error codeThis key's per-minute / monthly token limitWait retry-after seconds / the monthly cap resets on the 1st (UTC)

Every code: Errors. A gateway refusal is never forwarded to any model.

Limits and billing

PlanPer keyMonthly fee and included routed tokensBeyond the included amount
Team60,000 tokens/minute; 500M tokens/monthUS$199; 200M open-weight + 25M frontierUS$0.25 per 1M open-weight; US$0.60 per 1M frontier
Partner Edition120,000 tokens/minute; 2,500M tokens/monthUS$499; 1,000M open-weight + 100M frontier

Model usage is billed by Microsoft on your own Azure subscription; the gateway does not resell it. Routed tokens are counted only for requests that reached your deployment, by the tier of the model your deployment serves. Each subscription has one gateway key; the plan's active tenants meter is not charged. Prices as listed on 2026-10-15; the Marketplace listing is authoritative. Details: Limits and billing.

Security and privacy

Details: Security and privacy and our privacy notice.

Still stuck?

Email support@dcassociatesgroup.com (response within 1 business day) with your Marketplace subscription ID, the time of a failing request (UTC) and the full error body. Never send your gateway key.