export default { id: "xai", priority: 280, alias: "xai", display: { name: "xAI (Grok)", icon: "auto_awesome", color: "#1DA1F2", textIcon: "XA", website: "https://x.ai", notice: { apiKeyUrl: "https://console.x.ai", }, }, category: "oauth", authModes: [ "oauth", "apikey", ], hasOAuth: true, transport: { baseUrl: "https://api.x.ai/v1/chat/completions", validateUrl: "https://api.x.ai/v1/models", responsesUrl: "https://api.x.ai/v1/responses", clientId: "b1a00492-073a-47ea-816f-4c329264a828", tokenUrl: "https://auth.x.ai/oauth2/token", refreshUrl: "https://auth.x.ai/oauth2/token", // OAuth-only SuperGrok quota surfaces: // - url: monthly API usage allotment (JSON) // - creditsUrl: weekly SuperGrok limit (grpc-web) // - settingsUrl: plan label (subscription_tier_display) usage: { url: "https://cli-chat-proxy.grok.com/v1/billing", creditsUrl: "https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig", settingsUrl: "https://cli-chat-proxy.grok.com/v1/settings", }, }, models: [ { id: "grok-4.6", name: "Grok 4.6" }, { id: "grok-4.5", name: "Grok 4.5" }, { id: "grok-4", name: "Grok 4" }, { id: "grok-4-fast-reasoning", name: "Grok 4 Fast Reasoning" }, { id: "grok-code-fast-1", name: "Grok Code Fast" }, { id: "grok-3", name: "Grok 3" }, { id: "grok-imagine-image-quality", name: "Grok Imagine Image Quality", capabilities: ["text2img", "edit"], params: ["n", "aspect_ratio", "resolution", "response_format", "size"], kind: "image", }, { id: "grok-2-image-1212", name: "Grok 2 Image", capabilities: ["text2img", "edit"], params: ["n", "aspect_ratio", "resolution", "response_format", "size"], kind: "image", }, { id: "grok-imagine-video", name: "Grok Imagine Video", params: ["duration", "aspect_ratio", "resolution"], kind: "video", }, ], serviceKinds: ["llm", "imageToText", "webSearch", "image", "video"], imageConfig: { baseUrl: "https://api.x.ai/v1/images/generations", editsUrl: "https://api.x.ai/v1/images/edits", bodyFields: ["model", "prompt", "n", "response_format", "aspect_ratio", "resolution", "image", "images"], }, // Async video jobs (POST returns { request_id }, GET polls until done/failed). // Docs: https://docs.x.ai/developers/rest-api-reference/inference/videos videoConfig: { baseUrl: "https://api.x.ai/v1/videos" }, searchViaChat: { defaultModel: "grok-4.20-reasoning", endpoint: "https://api.x.ai/v1/responses", pricingUrl: "https://x.ai/api#pricing", }, features: { usage: true, }, };