OpenRouter · checked October 10, 2026
OpenRouter "No endpoints found that support tool use"
OpenRouter answers 404 "No endpoints found that support tool use" when none of the providers serving that model can run a request with tools. It is common on small :free models and in coding agents such as OpenCode, Continue or Cline, which send tools on every request. Pick a model whose supported parameters include tools, or send the request without tools.
The exact error
What you see.
HTTP 404. The message names one of your tools; metadata.failed_routing_step says which filter removed the last endpoint. The data-policy variant was reworded around September 2026.
{"error":{"message":"No endpoints found that support tool use. Try disabling \"chat_observe\". To learn more about provider routing, visit: https://openrouter.ai/docs/guides/routing/provider-selection","code":404,"metadata":{"routing_funnel":[{"step":"Initial Endpoints","endpoint_count":1}],"failed_routing_step":"Filter by Tool Compatibility"}}}No endpoints found that support image input{'error': {'message': '0 endpoints out of 3 requested are available matching your guardrail restrictions and data policy. ...', 'code': 404, 'metadata': {'input_endpoint_count': 3, 'ineligibility_reasons': [{'reason': 'model-ignored-by-guardrail', 'endpoint_count': 3}], 'failed_routing_step': 'Filter by Guardrails'}}}Causes
Why it happens.
- 1
No provider of that model supports tools
Many small :free models are served by providers that do not implement function calling, so every endpoint is filtered out.
- 2
Images in the request or the history
A text-only model rejects a request that contains an image, including one left in an earlier message.
- 3
Privacy settings or guardrails exclude every endpoint
Free endpoints often use prompts for training. Guardrail flags for free-model training and publication default to off, and the strictest guardrail wins over the account privacy toggles.
- 4
Zero data retention routing
Requiring zero data retention, or data_collection: deny, removes providers that log.
Fixes
How to fix it.
Choose a model that supports tools
The models API filters by supported parameters; the same filter works on openrouter.ai/models.
curl -s "https://openrouter.ai/api/v1/models?supported_parameters=tools" | jq -r '.data[].id' | grep ':free'List the models your settings allow
GET /api/v1/models/user returns only the models reachable under your privacy settings and guardrails.
Fix data-policy blocks in settings
Change the options on openrouter.ai/settings/privacy and in the guardrail's edit view; no request option bypasses the guardrail filter.
Remove images or use a vision model
Strip images from the conversation, or route those requests to a model that accepts image input.
With freelm
Handle it automatically.
With model="tools" (or chat:tools) freelm only picks models whose catalogue entry lists tool support, which it reads from OpenRouter's supported_parameters when it discovers the free models. If a provider still answers "no endpoints support tool use", freelm treats it as a capability miss: it tries the next model without setting the first one aside, so that model stays available for requests without tools.
import freelm
llm = freelm.FreeLLM.from_env()
r = llm.chat("What's the weather in Dhaka?", model="tools",
tools=[{"type": "function", "function": {"name": "get_weather",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}}}}])freelm is an open-source Python and Node.js library that pools the free tiers of Gemini, Groq, OpenRouter, Cloudflare Workers AI, Mistral, NVIDIA NIM, Z.ai and Cohere behind one OpenAI-compatible call. See how its failover works.
Questions
Related questions.
Why does OpenCode show "No endpoints found that support tool use"?
OpenCode sends tool definitions with every request, and the free model you selected has no provider with tool support. Choose a model from the supported_parameters=tools list.
What does "No endpoints found matching your data policy" mean?
Your privacy settings or workspace guardrails exclude every provider of that model, usually because free endpoints may train on prompts. Adjust the settings or choose another model.
Sources