AI Gateway · Schema

AIGatewayProvider

A description of an LLM provider backend registered with an AI gateway. Captures provider identity, API base URL, authentication, supported model families, and BYOK posture.

AI GatewayLLM RouterLLM ProxyModel RoutingPrompt FirewallGuardrailsAI ObservabilityCost ControlsAI GovernanceAPI Gateway

Properties

Name Type Description
providerId string Stable slug for the provider.
displayName string
kind string What kind of provider this is.
baseUrl string
apiCompatibility string The wire format the gateway speaks to this provider.
authentication object
models array Models exposed by this provider through the gateway.
region string Region or zone this provider backend is reached through.
rateLimits object
status string
View JSON Schema on GitHub

JSON Schema

ai-gateway-provider-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ai-gateway/refs/heads/main/json-schema/ai-gateway-provider-schema.json",
  "title": "AIGatewayProvider",
  "description": "A description of an LLM provider backend registered with an AI gateway. Captures provider identity, API base URL, authentication, supported model families, and BYOK posture.",
  "type": "object",
  "properties": {
    "providerId": {
      "type": "string",
      "description": "Stable slug for the provider.",
      "example": "openai"
    },
    "displayName": {
      "type": "string",
      "example": "OpenAI"
    },
    "kind": {
      "type": "string",
      "description": "What kind of provider this is.",
      "enum": ["llm", "embeddings", "vision", "audio", "image", "video", "rerank", "moderation", "self-hosted"],
      "example": "llm"
    },
    "baseUrl": {
      "type": "string",
      "format": "uri",
      "example": "https://api.openai.com/v1"
    },
    "apiCompatibility": {
      "type": "string",
      "description": "The wire format the gateway speaks to this provider.",
      "enum": ["openai", "anthropic", "google-gemini", "cohere", "bedrock", "vertex", "ollama", "vllm", "native"],
      "example": "openai"
    },
    "authentication": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["bearer", "apikey", "basic", "iam", "service-account", "none"],
          "example": "bearer"
        },
        "byok": {
          "type": "boolean",
          "description": "True when the gateway holds the customer's own API key for this provider.",
          "example": true
        },
        "secretRef": {
          "type": "string",
          "example": "openai-prod-key"
        }
      },
      "required": ["type"]
    },
    "models": {
      "type": "array",
      "description": "Models exposed by this provider through the gateway.",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string", "example": "gpt-4o-2024-08-06" },
          "family": { "type": "string", "example": "gpt-4o" },
          "contextWindow": { "type": "integer", "example": 128000 },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["chat", "completion", "embedding", "vision", "audio", "image", "video", "tool-use", "json-mode"]
            }
          },
          "pricing": {
            "type": "object",
            "properties": {
              "inputPerMillionTokens": { "type": "number", "example": 2.5 },
              "outputPerMillionTokens": { "type": "number", "example": 10.0 },
              "currency": { "type": "string", "example": "USD" }
            }
          }
        },
        "required": ["id"]
      }
    },
    "region": {
      "type": "string",
      "description": "Region or zone this provider backend is reached through.",
      "example": "us-east-1"
    },
    "rateLimits": {
      "type": "object",
      "properties": {
        "requestsPerMinute": { "type": "integer", "example": 10000 },
        "tokensPerMinute": { "type": "integer", "example": 2000000 }
      }
    },
    "status": {
      "type": "string",
      "enum": ["active", "deprecated", "disabled"],
      "example": "active"
    }
  },
  "required": ["providerId", "kind", "apiCompatibility"]
}