Can an agent stream a completion that calls a tool with OpenRouter API?
Who does each step
Whether the agent handles it alone or a person has to step in.
- 01
Discover
MachineThe vendor's own machine-readable documents lead an agent to the job's interface.
- 02
Authority
Workaround · setupA person hands the agent a key or token.
- 03
Onboard
Workaround · setupA person signs up, or registers a client, for the agent.
- 04
Pay
Not applicableNothing to pay for the job.
- 05
Confirm
MachineA failure comes back typed, in its answer or as its spec declares, so an agent can tell a failure from a success.
- 06
Sustain
Workaround · setupA person replaces or revokes the agent's access when it must change.
A person once, at Authority: handing over a key or token.
A person once, at Onboard: signing up or registering a client for the agent.
A person once, at Sustain: renewing, replacing or revoking its access.
Not A+ yet: OAuth that lets an agent register its own client would turn handing over a key or token into a one-time consent; a way for agents to register (auth.md, a sign-up API, or OAuth with client registration) would let the agent register itself; a key-management API, or OAuth refresh and revocation, would let the agent keep its access alive.
Agent surfaces
The probe
Each request it sent and what came back; the descriptors it read, counted, with what they named.
Discover14 descriptor reads9 facts
- Found
- API catalogopenrouter.ai/api/v1ARDopenrouter.ai/.well-known/mcp/server-card.jsonARDopenrouter.ai/openapi.jsonARDopenrouter.ai/.well-known/skills/index.jsonMCPmcp.openrouter.ai/mcpFor agentsopenrouter.ai/llms.txtAPI catalogopenrouter.ai/api/v1APIopenrouter.aiAPIopenrouter.ai
- From
- openrouter.ai/.well-known/api-catalog · openrouter.ai/.well-known/ard.json · openrouter.ai/.well-known/mcp/server-card.json · openrouter.ai/llms.txt · openrouter.ai/openapi.json
- This endpoint
- openrouter.ai/api/v1/chat/completions is named by a descriptor it read
Job requestPOST openrouter.ai/api/v1/chat/completions40123 ms
- Request
- POST https://openrouter.ai/api/v1/chat/completions
- Response
- 401 · application/json · 67 bytes
- Body
- sha256:36c1407c049a212826f183eabdf3eae02172f79f80806f9afed93f5eeb68c49c
- Exchange
- sha256:a66f1ca56fcac324ba1b67493902b2dd768d9ea57371768b45f486e8ae35c651
Resource metadataGET openrouter.ai/.well-known/oauth-protected-resource/api/v1/chat/completions40465 ms
- Request
- GET https://openrouter.ai/.well-known/oauth-protected-resource/api/v1/chat/completions
- Response
- 404 · text/html · 30162 bytes
- Body
- sha256:b431b7086b356a0fae1e7eb846701493600305d10ceef545357245d3205e6454
- Exchange
- sha256:8a83d0f2635de390d6e95fbb1841cfcdd7b8f0962a8af60ad98a61d8fc4d2bfd
Resource metadataGET openrouter.ai/.well-known/oauth-protected-resource404113 ms
- Request
- GET https://openrouter.ai/.well-known/oauth-protected-resource
- Response
- 404 · text/html · 30835 bytes
- Body
- sha256:c1226fb21cafee6b570edec8f0a77f9d312bd8a4fa18d3ffbfdd508ccad89438
- Exchange
- sha256:cb550ffca21ea09e307a04037bf4c18fc5dcd785d5558cdf660edb13daa060c2
Declared pageGET openrouter.ai/sign-up200114 ms
- Request
- GET https://openrouter.ai/sign-up
- Response
- 200 · text/html · 157694 bytes
- Body
- sha256:c016ce5a2cf37a6ce2f34214f16717c58fc6c7c010357d6a94ab5e1222f60907
- Exchange
- sha256:fb00f4488dada376185153b00577071d41e84b4679e8946b23e2f3f381d04c7b
OpenRouter on the startup-offers board
- Up to $5,000 in creditsOpenRouter for Startups
The grade’s badge
One image that keeps itself current, linking here.
[](https://sourcey.com/c/openrouter/agent-readiness/openrouter-api/model-chat-stream-tool)Improve the report
Correct it, probe it again, or improve the path.
- Profile
- arp_01m4pmaa3hzmehhtgx2ea10thv
- Projection
- sha256:ff2aac02d9c3247b265954a2fce016a22f4cffe5ac476509402f91bc46f22d57
- Policy
- kind-2026-10-12 · sha256:0a4e4996176ce674b4f3ce910c5fca4f37c9b53bcdf51656d53a1a92fcf2c879
A report or a reassessment request names this profile, its revision and its projection. How report cards are assessed →View the exact declaration