Skip to content
Back to UnoRouter

Card snapshot

unorouter.com · 2026-10-01 08:57:18 UTC · 5e3e2bb7d5cef87169fb3c0fe4c2ab68c70db64c9f3f271aab874cc78ab0605c

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "UnoRouter",
  "description": "Unified AI model gateway. One OpenAI-compatible endpoint for every major model (OpenAI, Anthropic, Google, DeepSeek, and more) with automatic failover and intelligent routing.",
  "url": "https://api.unorouter.com/v1",
  "version": "1.0.0",
  "provider": {
    "organization": "UnoRouter",
    "url": "https://unorouter.com"
  },
  "documentationUrl": "https://unorouter.com/en/docs",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json",
    "text/event-stream"
  ],
  "preferredTransport": "HTTP+JSON",
  "supportedInterfaces": [
    {
      "url": "https://api.unorouter.com/v1",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "0.3.0"
    }
  ],
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "description": "Two options. (1) UnoRouter API key: generate in the dashboard and send as Authorization: Bearer sk-... . (2) OAuth 2.1 + PKCE for agents acting on behalf of a signed-in user; the agent can then mint its own API key via the tokens:write scope. Discover the authorization server at /.well-known/oauth-authorization-server on the API origin and the resource metadata at /.well-known/oauth-protected-resource on this origin."
    },
    "oauth2": {
      "type": "oauth2",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://api.unorouter.com/oauth/v1/authorize",
          "tokenUrl": "https://api.unorouter.com/oauth/v1/token",
          "refreshUrl": "https://api.unorouter.com/oauth/v1/token",
          "scopes": {
            "models:read": "List available models and their pricing",
            "balance:read": "Read your current balance and quota",
            "tokens:read": "List your API keys",
            "tokens:write": "Create new API keys on your behalf",
            "subscription:read": "View your active subscriptions and purchase history",
            "subscription:cancel": "Cancel an active subscription",
            "checkout:create": "Open a checkout page so you can buy credits or subscriptions (you confirm each purchase)"
          }
        }
      }
    }
  },
  "security": [
    {
      "bearer": []
    },
    {
      "oauth2": [
        "models:read",
        "balance:read",
        "tokens:read",
        "tokens:write",
        "subscription:read",
        "subscription:cancel",
        "checkout:create"
      ]
    }
  ],
  "skills": [
    {
      "id": "chat_completion",
      "name": "Chat completion",
      "description": "OpenAI-compatible chat completion across every supported model. Supports streaming, tool calls, and vision where the underlying model does.",
      "tags": [
        "chat",
        "llm",
        "completion",
        "streaming"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/event-stream"
      ]
    },
    {
      "id": "image_generation",
      "name": "Image generation",
      "description": "Generate images through supported image models.",
      "tags": [
        "image",
        "generation"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "image/png",
        "image/jpeg"
      ]
    },
    {
      "id": "video_generation",
      "name": "Video generation",
      "description": "Generate videos through supported video models, including async task polling for long-running renders.",
      "tags": [
        "video",
        "generation"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "video/mp4"
      ]
    },
    {
      "id": "audio",
      "name": "Audio",
      "description": "Text-to-speech, speech-to-text transcription, and audio understanding through supported audio models.",
      "tags": [
        "audio",
        "speech",
        "tts",
        "transcription"
      ],
      "inputModes": [
        "application/json",
        "audio/mpeg",
        "audio/wav",
        "audio/webm"
      ],
      "outputModes": [
        "application/json",
        "audio/mpeg",
        "audio/wav",
        "text/plain"
      ]
    },
    {
      "id": "embeddings",
      "name": "Embeddings",
      "description": "Text embedding generation through supported embedding models.",
      "tags": [
        "embeddings",
        "vector"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "model_catalog",
      "name": "Model catalog",
      "description": "List all available models with live pricing. Useful for dynamic model selection based on cost, context window, or capability.",
      "tags": [
        "models",
        "pricing",
        "discovery"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}