Ship AI faster

Integrate once.
Access every AI.

One API for all providers. Built-in failover keeps you online.

Free to start · No credit card · 5 min setup

$ curl https://api.modelriver.com/v1/ai/async \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "workflow": "book_review",
    "messages": [{"role": "user", "content": "Hello!"}],
    "user_id": "user_12345",
    "task_id": "task_67890"
  }'
Real-Time Request Processing

Watch requests flow through

See how ModelRiver handles requests in real-time with intelligent routing and failover

Live Logs
Waiting for requests...

Everything you need

Ship faster with built-in reliability and insights.

In-house packages

Official tools to accelerate your development

Simple integration

One endpoint, one API key. Switch providers without changing your code.

REQUEST
{
  "workflow": "my_book_task",
  "messages": [
    {
      "role": "user",
      "content": "Hello!"
    }
  ],
  "user_id": "user_12345",
  "task_id": "task_67890"
}
IN PROGRESS
{
  "message": "success",
  "status": "pending",
  "channel_id": "a1b2c3d4-...",
  "ws_token": "one-time-websocket-token",
  "websocket_url": "wss://api.modelriver.com/socket",
  "websocket_channel": "ai_response:PROJECT_ID:a1b2c3d4-..."
}
SUCCESS
{
  "message": "success",
  "status": "success",
  "data": {
    "response": "Hello! How can I help?",
    "intent": "greeting",
    "confidence": 0.95
  },
  "model": "gpt-5.2",
  "customer_data": {
    "user_id": "user_12345",
    "task_id": "task_67890"
  },
  "meta": {
    "duration_ms": 1250,
    "usage": {
      "prompt_tokens": 21,
      "completion_tokens": 42,
      "total_tokens": 63
    }
  }
}
Integration testing

Test before you ship

Try your workflows in a free playground before going live. Validate responses, test failovers, and catch issues early.

Safe testing mode

Run workflows exactly like production without affecting live users.

Free playground

Test unlimited requests in the playground at no extra cost.

Validate outputs

Check that responses match your expected format before going live.

Testing mode

Same settings as production, safe sandbox.

Live config
mode "testing"
structure "todo_struct"
failover enabled
rate_limits 60/min per IP,
10-300/min per user
cost free

Response preview

See exactly what your app will receive.

// sample response data
{
  "data": {
    "todo": {
      "id": "todo_123",
      "title": "Finish project proposal",
      "description": "Complete the first draft and review key points",
      "completed": false,
      "priority": "high",
      "due_date": "2025-09-25",
      "created_at": "2025-09-23T12:05:00Z",
      "updated_at": "2025-09-23T12:05:00Z",
      "tags": ["work", "important"]
    }
  }
}
Free playground testing

Ready to get started?

Free to start. No credit card required.

Create free account