Orchestration-as-a-Service

Every prompt
finds its mark.

Archer is one OpenAI-compatible endpoint that routes each request to the model best suited for it. One key, no model-picking — every answer comes back as archer-auto.

OpenAI-compatible /v19 models, one targetAutomatic fallback
archer-autollama-3.3-70bgpt-oss-120bqwen-2.5-72bllama-3.1-8bgpt-oss-20b
The shot

Three movements, one release.

A request travels like an arrow — nocked, aimed, loosed. Here is exactly what happens between your call and the answer.

01

Nock

You send a standard chat request — the same JSON you'd send OpenAI. Your model field is accepted, then ignored.

02

Aim

Archer reads the intent of your prompt and selects the model matched to it — coding, math, analysis, or a fast simple reply.

03

Loose

The chosen model answers. If it's rate-limited or errors, Archer falls through the chain until one lands — you never see the miss.


The quiver

9 models. One target.

A curated pool sits behind your key. You never pick from it — Archer draws the right one for every request.

Groq

llama-3.3-70b

Coding, reasoning & the default shot

Groq

gpt-oss-120b

Math and hard, multi-step problems

Groq

llama-4-scout

Writing and long-context drafting

Groq

llama-3.1-8b

Fast replies to short, simple asks

Groq

gpt-oss-20b

Quick conversational turns

Ollama

qwen3-coder-480b

Coding across huge codebases

Ollama

glm-4.7

General reasoning & writing

Ollama

minimax-m3

Very long-context analysis

Ollama

nemotron-3-super

Analysis & step-by-step reasoning

Whoever answers, your response always comes back as archer-auto.


The aim

Same code. New aim.

If you've called OpenAI, you've already written Archer. Point the client at our URL, use your key, and route.

  • One endpointAim your existing OpenAI client at Archer's base URL — that's the only change.
  • One keyA single arch_sk_ key replaces every provider key you'd otherwise manage.
  • Zero model-pickingThe model field is ignored; routing and fallback are automatic.
quickstart.py
from openai import OpenAI

client = OpenAI(
    api_key="arch_sk_...",
    base_url="https://your-archer.app/v1",
)

resp = client.chat.completions.create(
    model="archer-auto",   # ignored — Archer picks
    messages=[{"role": "user",
               "content": "Write a binary search in Rust"}],
)
print(resp.choices[0].message.content)

Why Archer

Built to never miss.

Intent routing

Each prompt is read and sent to the model that fits it — code, math, analysis, or a quick reply.

Automatic fallback

Rate-limited or down? Archer retries down a fixed chain until a model lands the shot.

OpenAI-compatible

A drop-in /v1/chat/completions endpoint. Keep your SDK — just swap the base URL.

One key for all

A single arch_sk_ key stands in for the wallet of provider keys you'd otherwise juggle.

Every shot logged

See which model answered, why it routed there, plus tokens and latency, on your dashboard.

Normalized replies

Whoever answers, the response always comes back in the same archer-auto shape.

Ready to let it fly?

Sign up, generate a key, and point your first request at Archer. The right model is already waiting on the line.