Migration guidesFrom Martian and Not Diamond
From a model router to routes you control
Martian and Not Diamond made the same promise: send the prompt, and the router chooses the model. Both have moved on. This page says where each stands, and what INFRO offers instead: not a learned router, but routes with a prompt classifier and rules you can read.
Martian's router no longer documented; Not Diamond refocused on coding agents (Python SDK archived 2025-12-11)
INFRO accounts are self-serve. The catalog, the docs, and the API contract are public, the gateway is deployed, and anything beyond v1 is marked Later. Plans and trial
Where things stand
Martian
Its docs describe the Martian Gateway, an OpenAI- and Anthropic-compatible API to many models paid from credits it sells; we found no router model id or routing parameter in them. Its homepage now leads with research and links to Thesean AI.
Not Diamond
Its homepage describes a model router for coding agents (Not Diamond Code), which recommends a model per step while inference runs through your own provider or gateway. The notdiamond-python repository was archived on 2025-12-11; the older modelSelect API docs are still online.
Whose account serves the request
Martian's gateway: Martian's credits. Not Diamond: always yours; it only recommends. INFRO: always yours.
INFRO's classifier picks among classes you define. It does not learn which model wins.
- You want a router trained on your own evaluation data to pick the model (Not Diamond's custom routers). INFRO has no training step.
- You run coding agents and want a per-step choice of model and reasoning level. Not Diamond Code does that, and can send inference through INFRO as your gateway.
- You want model access without accounts at each provider. Martian's gateway sells that; INFRO does not.
The edits, one row each. Everything not listed here stays as it is.
| Martian and Not Diamond | INFRO | |
|---|---|---|
| Base URL | Martian: https://api.withmartian.com/v1. Not Diamond: its SDK, then your provider. | https://api.infro.io/v1 |
| Key | MARTIAN_API_KEY, or NOTDIAMOND_API_KEY plus provider keys. | An INFRO gateway key; provider keys become connections. |
| Model id | A list of candidate models, or creator/model. | A route name. The route's classifier picks a class; each class has its own targets. |
| Decision | Made by the router's model, per prompt. | Made by a decision model on your own connection, against classes and rules you wrote. |
Before · Not Diamond SDK (archived)
from notdiamond import NotDiamond
client = NotDiamond() # NOTDIAMOND_API_KEY + provider keys
result, session_id, provider = client.chat.completions.create(
messages=[{"role": "user", "content": "Hello"}],
model=[
"openai/gpt-5.6-luna",
"openai/gpt-5.6-terra",
"anthropic/claude-sonnet-5.5",
],
)After · INFRO
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.infro.io/v1",
api_key=os.environ["INFRO_API_KEY"],
)
# "assistant" is a route with a prompt classifier:
# class "simple" -> openai/gpt-5.6-luna
# class "hard" -> anthropic/claude-sonnet-5.5
completion = client.chat.completions.create(
model="assistant",
messages=[{"role": "user", "content": "Hello"}],
)
print(completion.model, completion.provider)Classes you can read
A route's classifier puts each prompt in one of the classes you name, on a decision model you choose, and rules send each class to its own targets. The trace shows the class it picked.
Failover still applies
Each class's targets fail over like any route. A wrong pick costs a slower answer, not a failed one.
Not Diamond Code with INFRO
Not Diamond Code sends inference through your configured provider or gateway. INFRO can be that gateway, with budgets per developer key.
Martian and Not Diamond's objects against INFRO's, from Martian and Not Diamond's public documentation read on 19 October 2026 and checked against what the gateway implements. Two rows say INFRO has nothing.
| Martian and Not Diamond | What it does there | In INFRO |
|---|---|---|
| Per-prompt model choicedifferent | A learned router chooses among candidates. | A prompt classifier picks a class you defined; rules map classes to targets. |
| Custom routers trained on your datanothing | Not Diamond trainCustomRouter. | Nothing. |
| Prompt optimisationnothing | Not Diamond optimize adapts a prompt per model. | Nothing. |
| Unified accessdifferent | Martian's gateway: many models on its credits. | One API over your own provider accounts. |
| Spend controldifferent | Not described on the pages we read. | Budgets that refuse before the call, per organization, project, member, key and end customer. |
Our reading of Martian and Not Diamond’s published documentation, not a trial or a benchmark. If we have read something wrong, tell us and we will fix the row.
What INFRO does not do
- Learn which model wins on your prompts, or train a router on your evaluations.
- Rewrite prompts per model.
- Provide model access without your own provider accounts.
What does not come across
- Router training data and routing history. There is no importer.
Questions
- Does INFRO have a model router?
- It has routes with a prompt classifier: a decision model sorts each prompt into classes you define, and rules send each class to its own targets. It does not learn from outcomes.
- Is Martian's router still available?
- Its current docs describe only the Martian Gateway; we found no router in them on 2026-10-19.
- Who pays for the classifier's call?
- Your provider, on your own account, like every other request. INFRO adds 0% to model spend.
Move with us, or on your own
The migration program maps your Martian and Not Diamond setup to INFRO connections, routes and budgets on a call and moves the first service with you. Your providers keep billing you directly; INFRO is a subscription and adds 0% to model spend.
Sources
Every statement on this page about Martian and Not Diamond comes from one of these, read on 19 October 2026. Nothing is inferred from a trial, a benchmark, or a conversation.
- Martian — homepageread 2026-10-19
- Martian docs — Gatewayread 2026-10-19
- Martian docs — Quickstartread 2026-10-19
- Martian docs — Endpointsread 2026-10-19
- Not Diamond — homepageread 2026-10-19
- Not Diamond Code — docsread 2026-10-19
- Not Diamond — API docsread 2026-10-19
- GitHub — Not-Diamond/notdiamond-python (archived)read 2026-10-19