{
  "schemaVersion": "0.3.0",
  "name": "AIgateway",
  "description": "Universal AI gateway. 1150+ frontier and open-weight models across every modality, exposed as one OpenAI-compatible API and one MCP endpoint.",
  "version": "1.0.0",
  "url": "https://aigateway.sh",
  "documentationUrl": "https://aigateway.sh/reference",
  "provider": {
    "organization": "AIgateway",
    "url": "https://aigateway.sh",
    "contact": {
      "email": "support@aigateway.sh"
    }
  },
  "defaultInputModes": [
    "text/plain",
    "application/json",
    "image/*",
    "audio/*",
    "video/*"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json",
    "image/*",
    "audio/*",
    "video/*"
  ],
  "supportedInterfaces": [
    {
      "type": "openapi",
      "url": "https://api.aigateway.sh/v1",
      "transport": "https",
      "description": "OpenAI-compatible HTTP API",
      "specification": {
        "format": "openapi-3.1",
        "url": "https://aigateway.sh/openapi.json"
      }
    },
    {
      "type": "mcp",
      "url": "https://api.aigateway.sh/mcp",
      "transport": "streamable-http",
      "description": "MCP server over Streamable HTTP",
      "specification": {
        "format": "mcp-server-card",
        "url": "https://aigateway.sh/.well-known/mcp/server-card.json"
      }
    }
  ],
  "authentication": {
    "schemes": [
      "bearer"
    ],
    "tokenPrefix": "sk-aig-",
    "discoveryUrl": "https://aigateway.sh/.well-known/oauth-protected-resource",
    "instructionsUrl": "https://aigateway.sh/docs/auth"
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": true,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/v1",
        "description": "Supports the AP2 (Agent Payments Protocol) A2A extension. Settle metered usage via Stripe-backed account credits.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ]
        }
      },
      {
        "uri": "https://modelcontextprotocol.io/",
        "description": "MCP server at /mcp",
        "required": false
      },
      {
        "uri": "https://aigateway.sh/docs/webhooks",
        "description": "Signed webhook callbacks for jobs + lifecycle events",
        "required": false
      },
      {
        "uri": "https://aigateway.sh/docs/async-jobs",
        "description": "Async job submission + polling for video/music/3D",
        "required": false
      },
      {
        "uri": "https://aigateway.sh/docs/sub-accounts",
        "description": "Per-customer scoped keys with spend caps",
        "required": false
      },
      {
        "uri": "https://aigateway.sh/docs/evals",
        "description": "Eval-driven model routing",
        "required": false
      },
      {
        "uri": "https://aigateway.sh/docs/replays",
        "description": "Replay any past request on a new model",
        "required": false
      }
    ]
  },
  "skills": [
    {
      "id": "chat",
      "name": "Chat completions",
      "description": "OpenAI-compatible chat across every text model. Tool calling, vision, streaming, JSON mode.",
      "tags": [
        "text",
        "chat",
        "tool-use",
        "streaming"
      ],
      "examples": [
        "Summarize this PDF",
        "Generate React component from design",
        "Solve this math problem step-by-step"
      ]
    },
    {
      "id": "embed",
      "name": "Embeddings",
      "description": "Vector embeddings across every embedding model in the catalog.",
      "tags": [
        "embeddings",
        "vectors",
        "rag"
      ]
    },
    {
      "id": "image-generate",
      "name": "Image generation",
      "description": "FLUX, SDXL, Imagen, DALL·E, Phoenix, Lucid Origin, plus more.",
      "tags": [
        "image",
        "generation"
      ]
    },
    {
      "id": "speech-to-text",
      "name": "Transcription",
      "description": "Whisper, Deepgram Nova 3, Voxtral, Smart Turn.",
      "tags": [
        "audio",
        "stt",
        "transcription"
      ]
    },
    {
      "id": "text-to-speech",
      "name": "Speech synthesis",
      "description": "Deepgram Aura 1/2, ElevenLabs, MeloTTS.",
      "tags": [
        "audio",
        "tts"
      ]
    },
    {
      "id": "video-generate",
      "name": "Video generation",
      "description": "Async video generation (Runway, Veo, Sora) with webhook callbacks.",
      "tags": [
        "video",
        "async"
      ]
    },
    {
      "id": "moderate",
      "name": "Moderation",
      "description": "Content safety via Llama Guard 3.",
      "tags": [
        "moderation",
        "safety"
      ]
    },
    {
      "id": "rerank",
      "name": "Rerank",
      "description": "Rerank candidate passages for a query — RAG quality boost.",
      "tags": [
        "rerank",
        "rag"
      ]
    },
    {
      "id": "translate",
      "name": "Translate",
      "description": "Translation between any pair of supported languages.",
      "tags": [
        "translation",
        "language"
      ]
    },
    {
      "id": "ocr",
      "name": "OCR",
      "description": "Text extraction from images.",
      "tags": [
        "ocr",
        "vision"
      ]
    },
    {
      "id": "classify",
      "name": "Classification",
      "description": "Zero-shot text classification against your own labels.",
      "tags": [
        "classification",
        "text"
      ]
    },
    {
      "id": "detect-objects",
      "name": "Object detection",
      "description": "Bounding-box object detection over an image.",
      "tags": [
        "vision",
        "detection"
      ]
    },
    {
      "id": "generate-music",
      "name": "Music generation",
      "description": "Async text-to-music generation with webhook callbacks.",
      "tags": [
        "music",
        "audio",
        "async"
      ]
    },
    {
      "id": "generate-3d",
      "name": "3D generation",
      "description": "Async text/image-to-3D asset generation with webhook callbacks.",
      "tags": [
        "3d",
        "async"
      ]
    },
    {
      "id": "jobs",
      "name": "Async jobs",
      "description": "Poll or cancel async jobs (video, music, 3D) by id.",
      "tags": [
        "async",
        "jobs"
      ]
    },
    {
      "id": "list-models",
      "name": "List models",
      "description": "Browse the live catalog: prices, capabilities, latencies, context windows.",
      "tags": [
        "catalog",
        "discovery"
      ]
    },
    {
      "id": "search-models",
      "name": "Search models",
      "description": "Free-text search over the catalog; filter by modality, provider, or capability.",
      "tags": [
        "catalog",
        "discovery",
        "search"
      ]
    },
    {
      "id": "get-model",
      "name": "Model invocation contract",
      "description": "Full schema for a model — endpoint, request/response/streaming examples, quirks, runnable snippets. Call before invoking an unfamiliar model.",
      "tags": [
        "catalog",
        "discovery",
        "schema"
      ]
    }
  ],
  "links": [
    {
      "rel": "service-desc",
      "href": "https://aigateway.sh/openapi.json",
      "type": "application/json"
    },
    {
      "rel": "service-doc",
      "href": "https://aigateway.sh/reference",
      "type": "text/html"
    },
    {
      "rel": "alternate",
      "href": "https://aigateway.sh/llms.txt",
      "type": "text/markdown"
    },
    {
      "rel": "https://modelcontextprotocol.io/rel/server-card",
      "href": "https://aigateway.sh/.well-known/mcp/server-card.json",
      "type": "application/json"
    },
    {
      "rel": "status",
      "href": "https://api.aigateway.sh/v1/health",
      "type": "application/json"
    }
  ]
}