Build AI workflows. Ship through one integration.

Connect OpenAI, Anthropic, or Gemini with your own keys. One endpoint in your code. Test, route, and monitor AI workflows from one place.

Start free · No credit card required

console.modelriver.com/projects/…/workflows
Organizations
T
Northstar AI
Team
Current
Docs
Backend code Frontend code View integration examples for your workflows

Workflows

Configure AI workflows with provider, model, and structured output options

Create workflow
book_info_...
Testing Chat new_movie
Copy
Primary
OpenAI
gpt-5-mini
Backups
Anthropic
claude-3-5-haiku-20241022
book_info_copy
Chat creation_eve...
Copy
Primary
Google
gemini-2.5-flash
Backups
OpenAI
gpt-5-mini
book_info
Testing Chat
Copy
Primary
xAI
grok-4-fast-reasoning
Backups
OpenAI
gpt-5-mini
my_flow
Chat
Copy
Primary
Anthropic
claude-haiku-4-5
Backups
OpenAI
gpt-5-mini

Provider credentials

Add your API keys for OpenAI, Anthropic, and other providers

+ Custom provider
Anthropic
Claude 4.5 Sonnet, Claude 4.5 Opus, Haiku 4.5
Connected
Update
OpenAI
GPT-5, GPT-5 pro, GPT-5 mini
Connected
Update
Cohere
Command-A-03-2025, Command R, Embed
Not configured
Add API Key
DeepSeek
DeepSeek-V3 (Chat) and DeepSeek-R1 (Reasoner)
Not configured
Add API Key
Google
Gemini 2.5 Flash, Gemini 2.5 Pro, 2.5 Flash-Lite
Not configured
Add API Key
Groq
Ultra-fast LPU inference - Llama 3.1/3.3, GPT OSS
Not configured
Add API Key
Mistral AI
Mistral Large 24.11, Small 3.2, Codestral
Not configured
Add API Key
Qwen
Qwen-Max, Qwen-Plus, Qwen-Turbo, Qwen-Long (Alibaba Cloud)
Not configured
Add API Key
xAI
Grok 4, Grok-4-fast-reasoning
Not configured
Add API Key

Test workflow

Run a workflow with sample JSON input. Test requests do not appear in the request log.

Start new test Send request
Async mode (background job)

Process AI requests in the background with real-time updates via WebSocket. Works even if you refresh the page!

Workflow
book_info
Testing Mode - Will return sample data without calling AI providers
JSON payload
1{
2 "messages": [
3 {"role": "user", "content": "Percy Jackson & the Olympians"}
4 ]
5}
Workflow execution
Queueing request 100ms
Processing AI request 0ms
No backend processing needed
Waiting for response 50ms
Response received
Response
Raw JSON Preview
1{
2 "status": "success",
3 "ai_response": {
4 "title": "Percy Jackson & the Olympians",
5 "author": "Rick Riordan"
6 }
7}
Back to request logs

Request details

OpenAI gpt-5-mini 140d ago
ticket_creat... Success
Input tokens
468
Output tokens
368
Duration
8.4s
Price
$0.000853
Cache reuse
0
No downstream cache hits
Response source
Provider
Cached from request ID
N/A
Estimated price without cache
N/A
Failed anthropic/claude-haiku-4-5
661ms 140d ago
Success openai/gpt-5-mini
7.7s 140d ago
Error Trigger webhook
3ms 140d ago
Callback: success
Success Backend callback
140d ago
Success WebSocket output
140d ago
Webhook Deliveries
Failed WebSocket 3ms Attempt 1
URL: cli://localhost CLI
No CLI client connected

Members

5 members

Invite member
Alex Rivera Owner
Joined Mar 14, 2025
Jamie Park Member
Joined May 2, 2025
Sam O'Brien Member
Joined Aug 19, 2025
Taylor Nguyen Member
Joined Jan 6, 2026
Morgan Ellis Member
Joined Feb 18, 2026

Pending Invitations

0 invitations pending

No pending invitations

Why developers use ModelRiver

Same console you saw above — three workflows developers run every day.

Test before you spend

Free testing mode and playground. Same workflow config as production. No provider bill until you go live.

Open playground

Test workflow

Sample JSON in, structured response out

Send request
Testing mode — returns sample data, no provider call
Workflow
book_info
{ "messages": [{ "role": "user", "content": "Percy Jackson" }] }
Response
{
  "title": "Percy Jackson & the Olympians",
  "author": "Rick Riordan",
  "genre": "Fantasy"
}

Integrate once

One API for every provider. Your keys stay in our console. Swap models in the dashboard, not in a deploy.

Swap a provider
book_info
Testing Chat
OpenAI
gpt-5-mini
Anthropic
claude-haiku-4-5

Debug production failures

Failover, request logs, and replay on one timeline. Stop digging through three SDK logs.

View request log

Request details

ticket_creat… OpenAI · gpt-5-mini 140d ago
Success
Tokens
836
Duration
8.4s
Price
$0.0009
Timeline
Failed OpenAI gpt-5-mini — rate limit exceeded 0ms
Failover Retrying Anthropic claude-haiku-4-5 1.2s
Success Structured output delivered to webhook 8.4s

How it works

Your app → ModelRiver → your provider

ModelRiver sits between your application and the AI vendors you already pay. Route, test, and log from one place.

Learn more about request flow
Your app
POST /v1/ai/async
Your provider
OpenAI

You bring the keys. We handle routing, testing, and observability.

Comparison

Why not just use OpenAI?

You should keep your OpenAI account. ModelRiver does not replace it. We sit in the middle so your team connects once, tests safely, and runs AI in production without rebuilding every time something changes.

On your own
With ModelRiver
Adding more AI vendors
A new setup project for every vendor
One connection for OpenAI, Anthropic, Gemini, and more
Testing changes
Every experiment costs real money
Test for free before anything goes live
Switching AI providers
Engineering work and a new product release
Change it in the dashboard the same day
Who pays for AI
You pay OpenAI directly
Same. You pay vendors. We charge for the platform only.

Start integrating AI in your app

Start free