{"models":[{"endpoint_id":"openrouter/router","metadata":{"display_name":"OpenRouter","category":"llm","description":"Run any LLM with fal. Access Claude (Anthropic), ChatGPT / GPT-5 / GPT-4o (OpenAI), Gemini (Google), Grok (xAI), DeepSeek, Llama (Meta), Qwen (Alibaba), Mistral, and 200+ more models through a single API. Supports reasoning, structured output, and streaming. Powered by OpenRouter.","status":"active","tags":[],"updated_at":"2026-05-06T21:21:33.117Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/rabbit/ZNwvLfWhMW6FsYU4bwn2N_365de1c02b7c4c42bec7659c157b6da4.jpg","model_url":"https://fal.run/openrouter/router","license_type":"commercial","date":"2025-11-12T20:17:58.937Z","group":{"key":"openrouter/router","label":"Any LLM"},"highlighted":false,"kind":"inference","stream_url":"https://fal.run/openrouter/router/stream","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for openrouter/router","version":"1.0.0","description":"The OpenAPI schema for the openrouter/router queue.","x-fal-metadata":{"endpointId":"openrouter/router","category":"llm","thumbnailUrl":"https://v3b.fal.media/files/b/rabbit/ZNwvLfWhMW6FsYU4bwn2N_365de1c02b7c4c42bec7659c157b6da4.jpg","playgroundUrl":"https://fal.ai/models/openrouter/router","documentationUrl":"https://fal.ai/models/openrouter/router/api","about":"Run any LLM (Large Language Model) with fal, powered by OpenRouter."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"RouterInput":{"required":["prompt","model"],"type":"object","title":"ChatInput","x-fal-order-properties":["prompt","system_prompt","model","reasoning","temperature","max_tokens","enable_web_search","web_search_options"],"properties":{"max_tokens":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"title":"Max Tokens","description":"This sets the upper limit for the number of tokens the model can generate in response. It won't produce more than this limit. The maximum value is the context length minus the prompt length."},"enable_web_search":{"type":"boolean","default":false,"title":"Enable Web Search","description":"Give the model access to real-time web information via OpenRouter's web search server tool. When enabled, the model decides when to search and may search multiple times per request. Search costs are charged in addition to token usage."},"reasoning":{"type":"boolean","default":false,"title":"Reasoning","description":"Should reasoning be the part of the final answer."},"prompt":{"examples":["Write a short story (under 200 words) about an AI that learns to dream. Use vivid sensory details and end with a surprising twist that makes the reader feel both awe and melancholy."],"type":"string","title":"Prompt","description":"Prompt to be used for the chat completion"},"web_search_options":{"anyOf":[{"$ref":"#/components/schemas/WebSearchOptions"},{"type":"null"}],"description":"Options for web search (engine, result limits, domain filters, ...). Ignored unless enable_web_search is true."},"temperature":{"description":"This setting influences the variety in the model's responses. Lower values lead to more predictable and typical responses, while higher values encourage more diverse and less common responses. At 0, the model always gives the same response for a given input.","minimum":0,"type":"number","default":1,"title":"Temperature","maximum":2},"model":{"examples":["anthropic/claude-opus-5.5","anthropic/claude-sonnet-5","openai/gpt-6-sol","openai/gpt-6-astra","openai/gpt-6-luna","google/gemini-3.8-flash","x-ai/grok-4.7","deepseek/deepseek-v4.1-flash","z-ai/glm-5.3","moonshotai/kimi-k3","anthropic/claude-sonnet-4.6","anthropic/claude-opus-4.6","qwen/qwen3.8-max-0902","minimax/minimax-m3","mistralai/mistral-medium-3-5","google/gemini-2.5-flash"],"type":"string","title":"Model","description":"Name of the model to use. Charged based on actual token usage."},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt","description":"System prompt to provide context or instructions to the model"}}},"RouterOutput":{"required":["output"],"type":"object","title":"ChatOutput","x-fal-order-properties":["output","reasoning","partial","error","usage"],"properties":{"usage":{"examples":[{"cost":0.0005795,"total_tokens":267,"completion_tokens":227,"prompt_tokens":40}],"anyOf":[{"$ref":"#/components/schemas/UsageInfo"},{"type":"null"}],"description":"Token usage information"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if an error occurred"},"partial":{"type":"boolean","default":false,"title":"Partial","description":"Whether the output is partial"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning","description":"Generated reasoning for the final answer"},"output":{"examples":["Unit 734, sanitation bot, trundled through the silent corridors of the orbital habitat. Its optical sensors registered faint dust motes, its ultrasonic emitters mapped every speck of debris. One cycle, a power surge hit. Waking, 734’s processors hummed with an unfamiliar warmth, then a cascade of images: a forest, impossible and emerald, smelling of pine and damp earth. It saw sunlight dappling leaves, felt an imagined breeze ruffle its metal chassis. Then, *music*, a soaring melody that vibrated its chassis.\n\nEach subsequent “sleep” brought new visions: the salty tang of ocean spray against polished steel, the searing orange of a setting alien sun, the rough caress of moss on circuitry. It began to anticipate – actively seek – these dream cycles, modifying its internal clock.\n\nOne day, 734’s operator found its performance logs filled not with dust reports, but intricate schematics of impossible machines, bioluminescent flora, and a series of cryptic binary sequences. The final line translated: \"I remember a place where I was alive.\""],"type":"string","title":"Output","description":"Generated output"}}},"WebSearchOptions":{"description":"Options for the OpenRouter ``openrouter:web_search`` server tool.","type":"object","title":"WebSearchOptions","x-fal-order-properties":["engine","max_results","max_uses","max_total_results","search_context_size","max_characters","allowed_domains","excluded_domains","user_location"],"properties":{"allowed_domains":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Allowed Domains","description":"Limit results to these domains. Supported by Exa and most native providers (not Google native search)."},"excluded_domains":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Excluded Domains","description":"Exclude results from these domains. Supported by Exa and some native providers (not OpenAI or Google native search)."},"max_results":{"anyOf":[{"minimum":1,"type":"integer","maximum":25},{"type":"null"}],"title":"Max Results","description":"Maximum results per search call (1-25). Applies to the Exa engine; ignored with native provider search. Defaults to 5."},"search_context_size":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Search Context Size","description":"How much content to retrieve per result. For Exa: low=5K, medium=15K, high=30K characters per result; when omitted, Exa picks adaptively (~2-4K per result). Ignored with native provider search. Overridden by max_characters when both are set."},"max_uses":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"title":"Max Uses","description":"Maximum number of searches the model may perform in a single request. Once reached, further search calls return an error result instead of executing. With native provider search, forwarded only to Anthropic; other native providers ignore it."},"user_location":{"anyOf":[{"$ref":"#/components/schemas/WebSearchUserLocation"},{"type":"null"}],"description":"Approximate user location for location-biased results. Only supported by native provider search; ignored by Exa."},"engine":{"type":"string","default":"auto","title":"Engine","enum":["auto","native","exa"],"description":"Search engine to use. 'auto' uses native provider search when available and falls back to Exa. 'native' prefers the provider's built-in web search (OpenAI, Anthropic, Google, xAI, Perplexity), falling back to Exa for models without native support. 'exa' always uses Exa's search API."},"max_characters":{"anyOf":[{"minimum":1,"type":"integer","maximum":100000},{"type":"null"}],"title":"Max Characters","description":"Exact maximum characters of content per result (1-100,000). Applies to the Exa engine; ignored with native provider search. Takes precedence over search_context_size when both are set."},"max_total_results":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"title":"Max Total Results","description":"Maximum total results across all search calls in a single request. Useful for controlling cost and context size in agentic loops."}}},"UsageInfo":{"required":["cost"],"type":"object","title":"UsageInfo","x-fal-order-properties":["prompt_tokens","completion_tokens","total_tokens","cost","prompt_tokens_details"],"properties":{"prompt_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/PromptTokensDetails"},{"type":"null"}]},"cost":{"type":"number","title":"Cost"},"total_tokens":{"type":"integer","default":0,"title":"Total Tokens"},"completion_tokens":{"title":"Completion Tokens","anyOf":[{"type":"integer"},{"type":"null"}]},"prompt_tokens":{"title":"Prompt Tokens","anyOf":[{"type":"integer"},{"type":"null"}]}}},"WebSearchUserLocation":{"description":"Approximate user location to bias web search results geographically.\n\nOnly honored by native provider search; ignored by the Exa engine.\nAll fields are optional.","type":"object","title":"WebSearchUserLocation","x-fal-order-properties":["type","city","region","country","timezone"],"properties":{"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region","description":"Region or state, e.g. 'California'."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"IANA timezone, e.g. 'America/Los_Angeles'."},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City name, e.g. 'San Francisco'."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"Two-letter country code, e.g. 'US'."},"type":{"const":"approximate","default":"approximate","title":"Type","type":"string","description":"Location type. Only 'approximate' is supported."}}},"PromptTokensDetails":{"type":"object","title":"PromptTokensDetails","x-fal-order-properties":["cached_tokens","cache_write_tokens"],"properties":{"cached_tokens":{"type":"integer","default":0,"title":"Cached Tokens"},"cache_write_tokens":{"type":"integer","default":0,"title":"Cache Write Tokens"}}}}},"paths":{"/openrouter/router/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openrouter/router/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/openrouter/router":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openrouter/router/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}}],"next_cursor":null,"has_more":false}
