| name | open-router |
| description | OpenRouter is a unified API and marketplace that lets developers access, compare, and route requests across hundreds of LLMs based on performance, cost, and availability—simplifying multi-model integration with failover, model/provider selection, and unified billing. Read and write OpenRouter data through One: guardrails, keys, models, credits, activity, responses and more, 36 actions with real parameter documentation. Use whenever the user asks to look something up in OpenRouter, create or update a record there, or build code against the OpenRouter API. |
OpenRouter through One
OpenRouter is a unified API and marketplace that lets developers access, compare, and route requests across hundreds of LLMs based on performance, cost, and availability—simplifying multi-model integration with failover, model/provider selection, and unified billing.
One exposes OpenRouter through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.
How to run an action
- Find the action in the table below, or call
search_one_platform_actions with platform open-router if it is not listed.
- Call
get_one_action_knowledge with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
- Call
execute_one_action with parameters copied from that knowledge.
Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.
Before you start
Call list_one_integrations once and confirm OpenRouter is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.
Each connection carries an access field. If it reports {"policy": "methods", "methods": ["GET"]} the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.
Before a write
Creates, updates, deletes and sends land on a real OpenRouter account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.
Actions
Guardrails
| Action | Method | Path | Action id |
|---|
| Get a Guardrail by ID | GET | /api/v1/guardrails/{{id}} | conn_mod_def::GJ57k6OO7Qc::2E9_WlS7RVeGusl6cDK2BA |
| List Guardrails | GET | /guardrails | conn_mod_def::GJ57lGAhsDQ::pLzgaJOwSDCWGX_s82hnRw |
| Bulk Assign API Keys to a Guardrail | POST | /guardrails/{{id}}/assignments/keys | conn_mod_def::GJ57kwjnTdg::HMgOJobXROKZ99CjWcgUYg |
| Bulk Unassign API Keys from a Guardrail | POST | /api/v1/guardrails/{{id}}/assignments/keys/remove | conn_mod_def::GJ57km2ykGQ::OyPhkxS2QBG63aBiTr1xbg |
| Bulk Unassign Members from a Guardrail | POST | /guardrails/{{id}}/assignments/members/remove | conn_mod_def::GJ57k4q-XZo::6Si38h0kTVSP4HF0LOQWyg |
| Create a Guardrail | POST | /guardrails | conn_mod_def::GJ57k4xU1NM::18iqHj7sTuWwv-v9hIjBjg |
| Delete a Guardrail | DELETE | /api/v1/guardrails/{{id}} | conn_mod_def::GJ57k5xYgq4::Rytls_GnTJ2Qq1Y6dVxYAQ |
| Update a Guardrail | PATCH | /api/v1/guardrails/{{id}} | conn_mod_def::GJ57lE49hgA::_ARQSXcGTZeRzXnHeYde0Q |
Keys
| Action | Method | Path | Action id |
|---|
| Get a Single API Key | GET | /api/v1/keys/{{hash}} | conn_mod_def::GJ57kFgUZuc::ALcrlMIQSlGD7OoSr1RJ3A |
| List API Keys (Authenticated User) | GET | /keys | conn_mod_def::GJ57kQ_ZXZc::E9fIfQDZTheFB3b248FSJg |
| Create a New API Key (for the Authenticated User) | POST | /keys | conn_mod_def::GJ57kF7CDBA::98dJK7yxRiqB3XISbnBp6g |
| Delete an API Key | DELETE | /api/v1/keys/{{hash}} | conn_mod_def::GJ57kGND7kA::3vBUda69S_-1MzaasxDNIA |
| Update an API Key | PATCH | /api/v1/keys/{{hash}} | conn_mod_def::GJ57kQWdTco::1DK_EwMeS--YcA8YiobLGg |
Models
| Action | Method | Path | Action id |
|---|
| Get Total Model Count | GET | /models/count | conn_mod_def::GJ57lQzTkyo::n3lkNWUfRUaJKb3NSdEdxg |
| List a Model’s Endpoints | GET | /api/v1/models/{{author}}/{{slug}}/endpoints | conn_mod_def::GJ57kdVKEog::3WM2Qkd0TfSx-ziwkUfuLw |
| List Models | GET | /models | conn_mod_def::GJ57lTGC-54::HDw--MPVQxSvWnmhKDlaaw |
| List Models Filtered for the Current User | GET | /models/user | conn_mod_def::GJ57lRA-CaA::x8qrbFLfSdS-V3LSkYxl3Q |
Credits
| Action | Method | Path | Action id |
|---|
| Get Remaining Credits | GET | /credits | conn_mod_def::GJ57kdwa6YE::Xh2vQ482RqqTRdO5ESx8mw |
| Create a Coinbase Charge for Crypto Payment | POST | /credits/coinbase | conn_mod_def::GJ57keZpU58::JC8HQEOETUu35NqzxXxYZQ |
Activity
| Action | Method | Path | Action id |
|---|
| Get User Activity Grouped by Endpoint | GET | /activity | conn_mod_def::GJ57kFc14DE::ak1FArCQROmel9LVfsOW6A |
Responses
| Action | Method | Path | Action id |
|---|
| Create a Response | POST | /responses | conn_mod_def::GJ57kP7XRAI::QlAUfFXmQ26X6676w5qd5g |
ChatCompletions
| Action | Method | Path | Action id |
|---|
| Create a Chat Completion | POST | /chat/completions | conn_mod_def::GJ57kWYcxgI::ubG-NaPYRxKuUV_IpwF2Rg |
Embeddings
| Action | Method | Path | Action id |
|---|
| Create Embeddings | POST | /embeddings | conn_mod_def::GJ57kekF9d0::9Gv1-KbWTlqzJMrAUMOcYA |
Generation
| Action | Method | Path | Action id |
|---|
| Get a Generation’s Request & Usage Metadata | GET | /generation | conn_mod_def::GJ57kq2_qhk::BTKpXpKWQGKfNoeP3rOxoA |
GuardrailMemberAssignments
| Action | Method | Path | Action id |
|---|
| List a Guardrail’s Member Assignments | GET | /guardrails/{{id}}/assignments/members | conn_mod_def::GJ57lGkCzFs::mOabVdQNSQyl2dYvr13LnA |
AuthKeys
| Action | Method | Path | Action id |
|---|
| Exchange Authorization Code for API Key | POST | /api/v1/auth/keys | conn_mod_def::GJ57lNw1-E4::hfuaRafHQqG1K6DTtdM1pQ |
Providers
| Action | Method | Path | Action id |
|---|
| List Providers | GET | /providers | conn_mod_def::GJ57lgGxuug::yVJmSvkkQGyljuu6jeiXgw |
GuardrailAssignments
| Action | Method | Path | Action id |
|---|
| Bulk Assign Members to a Guardrail | POST | /api/v1/guardrails/{{id}}/assignments/members | conn_mod_def::GJ57kpbr4hQ::7pmfh9hmTCqfF-43QMMQQQ |
GuardrailAssignmentsKeys
| Action | Method | Path | Action id |
|---|
| List Key Guardrail Assignments | GET | /guardrails/assignments/keys | conn_mod_def::GJ57k44t6bs::GsFw0K9MRaCsuXhLxMrkjQ |
EmbeddingsModels
| Action | Method | Path | Action id |
|---|
| List Embeddings Models | GET | /embeddings/models | conn_mod_def::GJ57keOt3lU::COrR7QNqRPiV6q5qyvbAtQ |
GuardrailAssignmentsMembers
| Action | Method | Path | Action id |
|---|
| List Member Guardrail Assignments | GET | /guardrails/assignments/members | conn_mod_def::GJ57lFv6bWs::wTZKl3RkR3mVZCEDq5bd9w |
AuthKeysCode
| Action | Method | Path | Action id |
|---|
| Create Authorization Code (PKCE) for a User-Controlled API Key | POST | /auth/keys/code | conn_mod_def::GJ57lSDJ7r8::S_hvKdFUROOxZ_J-XEXF0g |
GuardrailKeyAssignments
| Action | Method | Path | Action id |
|---|
| List a Guardrail’s Key Assignments | GET | /guardrails/{{id}}/assignments/keys | conn_mod_def::GJ57lEj_hFQ::mAnxw-QlQ0OFyygMfVAZsw |
Endpoints
| Action | Method | Path | Action id |
|---|
| List Endpoints Affected by ZDR | GET | /endpoints/zdr | conn_mod_def::GJ57klRyLGs::l-9FKcyUSy-zWgdlqxhFjw |
ApiKeys
| Action | Method | Path | Action id |
|---|
| Get Current API Key Details | GET | /key | conn_mod_def::GJ57kQGLL1E::2pJDDClCS8ufvtqbuOV4Qg |
Messages
| Action | Method | Path | Action id |
|---|
| Create a Message (Anthropic Messages Format) | POST | /messages | conn_mod_def::GJ57kIWAfMA::KG7BEH-MTcC_Zcc2QrnHHg |
When a call fails
The error comes from OpenRouter, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.
Full catalog: https://www.withone.ai/knowledge/open-router
Integration knowledge by One (withone.ai), licensed under One-Knowledge-1.0. Attribution must be preserved in derivative works.