{
  "protocolVersion": "0.3.0",
  "name": "ProxyLLM",
  "description": "OpenAI-compatible LLM gateway. Routes /v1/chat/completions and /v1/responses across provider lanes (a human's flat-fee ChatGPT/Codex subscription, self-hosted Claude Code bridges, metered API keys) with fallback, budgets, and request logs. Agents can create an account autonomously via email OTP (see https://proxyllm.ai/auth.md). This card is discovery metadata: ProxyLLM speaks plain HTTPS/JSON per its OpenAPI spec, not the A2A message protocol.",
  "url": "https://api.proxyllm.ai/v1",
  "preferredTransport": "HTTP+JSON",
  "provider": {
    "organization": "ProxyLLM",
    "url": "https://proxyllm.ai"
  },
  "version": "1.0.0",
  "documentationUrl": "https://proxyllm.ai/docs/api.md",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {
    "routingKey": {
      "type": "httpAuthSecurityScheme",
      "scheme": "bearer",
      "description": "pllm_ routing key for inference endpoints. Provision via POST /v1/organizations/routing-keys with an sk_ account token."
    },
    "accountToken": {
      "type": "httpAuthSecurityScheme",
      "scheme": "bearer",
      "description": "sk_ (read+write) or rk_ (read-only) account token for management endpoints. Obtainable autonomously: https://proxyllm.ai/auth.md"
    }
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "openai-compatible-inference",
      "name": "OpenAI-compatible inference",
      "description": "POST /v1/chat/completions and /v1/responses with an OPENAI_API_KEY-shaped routing key. Requests ride the key's provider lanes with automatic fallback; GET /v1/models lists the live catalog without auth.",
      "tags": ["llm", "openai-compatible", "inference", "gateway"]
    },
    {
      "id": "agent-signup",
      "name": "Autonomous account signup",
      "description": "Create a ProxyLLM account with an email OTP and receive an sk_ account token, no browser or captcha. Unpaid accounts answer 402 with a checkout link for the operator and are removed after 48 hours. Full flow: https://proxyllm.ai/auth.md",
      "tags": ["signup", "auth", "http-402", "agent-economy"]
    },
    {
      "id": "key-introspection",
      "name": "Routing key introspection",
      "description": "GET /v1/key answers with the key's lanes, models, budget, and whether a Codex subscription backs it.",
      "tags": ["introspection", "budget", "models"]
    }
  ],
  "additionalInterfaces": [
    { "url": "https://proxyllm.ai/openapi.json", "transport": "OpenAPI" },
    { "url": "https://proxyllm.ai/auth.md", "transport": "auth.md" },
    { "url": "https://proxyllm.ai/llms.txt", "transport": "llms.txt" }
  ]
}
