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.