OpenRouter
The OpenRouter integration gives your organization's agents access to the models in your own OpenRouter account. LLM calls to those models use your OpenRouter balance: SipPulse AI does not charge credits for them, and the usage shows up in the dashboard at zero cost.
Unlike the other provider integrations, here you pick model by model which ones your agents can use, and each model belongs to your organization only.
Who can use it
Organization owners and admins connect the key and manage the models. Other members use the enabled models in their agents but cannot see or change the integration. Members with a project-scoped role get a 403 when they try to manage the integration.
Connect the key
- In OpenRouter, create a regular API key at openrouter.ai/settings/keys. Provisioning (management) keys are not accepted.
- In the platform, open Integrations and select OpenRouter.
- Click Connect, paste the key and confirm.
The key is validated with OpenRouter before it is saved. It is rejected when it is a provisioning key, has expired or has no balance. Once saved, only a masked hint of the key is shown.
Choose models
- Click Choose models. The catalog lists the models in your OpenRouter account that are compatible with agents; models you already added are hidden.
- Search by name, vendor or ID and select up to 10 models at a time. An organization can have up to 50 OpenRouter models.
- Choose how to add them:
- Add without testing: the models are available to agents right away. If the platform has already tested the model, it shows as Validated by the platform; otherwise as Not tested.
- Continue with N: opens the test. Only models that pass are added.
Some catalog items show the coverage the platform already has: Already validated (every test the model announces was proven) or Essential covered (the basic tests were proven; the optional ones were not).
A model already validated by the platform for another organization can be imported without a new test: it enters as Validated by the platform.
Test models
A test sends a limited number of real requests to OpenRouter with your key, so it consumes tokens from your account. It only starts after you check the usage authorization.
| Level | What it checks | Limit |
|---|---|---|
| Essential test | text response and token usage, tool call, streaming tool call and continuation after the tool, in the same shape an agent uses | 4 calls per model |
| Full test | the essential checks plus the features the model announces: structured output, vision, PDF reading and reasoning | up to 8 calls per model |
The test runs in the background: you can close the window and come back later. An organization runs one test at a time. Each model ends Approved, Rejected or Inconclusive, and the result shows calls, tokens and the cost reported by OpenRouter. Test prompts and responses are not stored.
Inconclusive is almost always momentary instability (rate limit, timeout). Nothing changes on the model in that case; use Retry. To test a model you already added again, use the Test button on its row.
Use it in agents
Models with status Ready appear in the agent model selector for your organization and run with your organization's key on every agent channel, including voice.
The platform never switches models on its own. If a model cannot run, the agent gets an error explaining why instead of answering with another model.
Even when the model uses your own key and does not consume credits for the model, the call still passes the credit authorization of the agent item.
Content the model does not support
Each model shows its capabilities (tools, vision, PDF, reasoning, structured output). Content the model does not support is rejected before OpenRouter is called, and the agent configuration is not changed:
- an image for a model without vision: "This model does not accept images as input.";
- a PDF for a model without PDF reading: "This model does not accept PDF files as input.";
- on Telegram, a photo sent to the agent is answered with "Sorry, I couldn't process your image. Please try again or send a text message.".
To accept that content, switch the agent to a model with the capability.
Model status
| Status | Meaning |
|---|---|
| Ready | available to new agents and in normal use |
| Suspended | hidden from the model selector; you chose to take it out of use |
| Unavailable | does not run: the key stopped working, the model left your OpenRouter account or it failed a test. The reason is shown on the model row |
Suspend and resume
The Available switch on the model row suspends and resumes the model.
- Model with no agents: it is suspended immediately and leaves the selector.
- Model in use: the platform lists the affected agents and asks for a ready replacement model from your organization plus an impact confirmation. The agents move to the replacement and the model is suspended in a single operation.
Resuming sets the model back to Ready. A model that is Unavailable because it failed a test can also be enabled ("This model failed its test. Enable it anyway."), because a test can fail on a detail that does not affect real use. Models that must be retested with the current key only come back after the test.
Replace the key
Click Replace key and enter the new key. It is validated before anything changes; if it is rejected, the current key keeps working.
- No models added: the key is replaced immediately.
- Models added: a rotation starts. The current key keeps serving your agents while every model is tested with the new key (full test, with your usage authorization). When it finishes, click Complete rotation.
- Models that pass stay Ready with the new key.
- Models that fail and no agent uses become Suspended.
- If a failed model is still used by an agent, the rotation cannot complete: switch those agents to another model and complete again.
Remove a model
Click the trash icon on the model row.
- No agents using it: confirm the removal.
- Agents using it: the platform lists the affected agents. Choose a ready replacement model from your organization, confirm the impact and, in the second confirmation, type
REMOVE. Every agent moves to the replacement and the model is removed in the same operation: either everything changes or nothing does.
A model in use cannot be removed without an available replacement. Add or resume another OpenRouter model first.
A removed model goes back to the catalog and can be added again.
Remove the integration
The trash icon next to Replace key removes the key, every OpenRouter model and the test history of your organization. If an agent uses an OpenRouter model, first choose a platform replacement model for those agents and confirm the impact.
When the key stops working
If the key is revoked or deleted in OpenRouter, expires or runs out of balance, the integration shows an error and every model becomes Unavailable. Agents keep their configuration: they still point to the same models and get the error "This OpenRouter key cannot be used. Check its type, balance, and expiration." until you replace the key.
Common messages
| Message | What to do |
|---|---|
| This OpenRouter key cannot be used. Check its type, balance, and expiration. | use a regular key with balance that has not expired |
| Your OpenRouter account does not have enough credits for this request. Top up your balance at openrouter.ai. | top up your OpenRouter account |
| The OpenRouter request limit was reached. Try again shortly. | wait, or raise the limit in your account |
| This OpenRouter model is currently unavailable. | check the reason on the model row; retest or pick another model |
| OpenRouter has no route for this model that accepts one of the request parameters. | adjust the agent parameters (for example reasoning or structured output) |
| OpenRouter models must be validated again with the current key. | test the models again |
| Choose an available replacement model for the affected agents. | pick a replacement before suspending or removing |
| Replace models rejected by the new key on affected agents. | switch those agents to another model and complete the rotation |
Security
The key is encrypted before it is stored and is never shown in full again. The key, prompts and responses are not written to logs or to the test history.
