Capability / llm
OpenRouter
Unified LLM API gateway for multiple AI models. Chat completions are available through an MPP session endpoint on Tempo.
Payment protocol
x402
Payment protocol
mpp session
What your agent can do
5 available endpoints
POST/chat/completions10000 USDC
/chat/completionsSend chat completion requests to any supported LLM model through an MPP session.
Start an MPP session against https://openrouter.mpp.tempo.xyz/v1/chat/completions, then POST JSON body. The model field determines which provider and model to use.
{
"body": {
"model": "string (e.g. 'openai/gpt-4', 'anthropic/claude-3-opus', 'meta-llama/llama-3-70b')",
"messages": [
{
"role": "string ('system'|'user'|'assistant')",
"content": "string"
}
],
"temperature": "number (0-2, optional)",
"max_tokens": "number (optional)",
"top_p": "number (optional)",
"stream": "boolean (optional)",
"response_format": "object (optional)",
"tools": "array (optional, function calling)"
}
}POST/completions10000 USDC
/completionsSend text completion requests.
POST JSON body. Legacy text completion API. Use /chat/completions for chat-based models.
{
"body": {
"model": "string",
"prompt": "string",
"max_tokens": "number (optional)",
"temperature": "number (optional)"
}
}POST/embeddings10000 USDC
/embeddingsGenerate embeddings for text input.
POST JSON body. Generate vector embeddings for text. Supports OpenAI-compatible embedding models.
{
"body": {
"model": "string (e.g. 'openai/text-embedding-3-small')",
"input": "string | array of strings"
}
}POST/messages10000 USDC
/messagesSend messages (Anthropic-compatible).
POST JSON body. Anthropic Messages API compatible endpoint. Works like /chat/completions but uses Anthropic message format.
{
"body": {
"model": "string",
"max_tokens": "number",
"messages": [
{
"role": "string",
"content": "string"
}
],
"temperature": "number (optional)",
"stream": "boolean (optional)"
}
}POST/responses10000 USDC
/responsesSend a response request (OpenAI Responses API compatible).
POST JSON body. OpenAI Responses API compatible. Send input for model response generation.
{
"body": {
"model": "string",
"input": "string | array",
"instructions": "string (optional)",
"temperature": "number (optional)",
"max_output_tokens": "number (optional)"
}
}