J JJAPI
πŸ€–

Build AI agents that switch models mid-task

Planning with Claude, execution with DeepSeek, vision with Gemini β€” all in one agent loop, one key, one bill.

Recommended models

Click any model to see the current IDs and release dates at our live catalog.

Different models for different agent phases

A good agent uses cheap models for tool execution and expensive ones only for high-level planning. With JJAPI, you don't need separate API keys β€” just change the model string between agent steps.

Works with LangChain, LlamaIndex, AutoGen

Every major agent framework supports custom OpenAI base URLs. Point at JJAPI and your agent has access to every model on the market with zero code changes to the framework.

Tool calling is normalized

JJAPI translates OpenAI-style tool calls to and from Claude's, Gemini's, and DeepSeek's native formats. Your agent sees one API regardless of which vendor served the response.

Multi-model agent step

Example
from openai import OpenAI
client = OpenAI(base_url="https://api.jjapi.net/v1", api_key="sk-jjapi-...")

# Planning step: use the strongest reasoner
plan = client.chat.completions.create(
    model="claude-3-5-sonnet",
    messages=[{"role": "user", "content": f"Plan steps for: {task}"}],
    tools=tools,
)

# Execution step: use the cheap fast worker
for step in plan_steps:
    result = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": step}],
    )
Start building β†’