Routed providers
Subscriptions that run another vendor's model under the Claude Code harness
On this page(5 sections)
The bundled translator runs a non-Claude model on the user's own subscription, so each provider connects by signing in rather than with an API key, and one provider can hold several accounts at once. Two sign-in shapes ride these routes: a code typed on a device page, which finishes by itself, and a redirect whose landing address is handed back.
GET/translator/accountsSubscriptions connected through the translator
What is signed in per provider. Each provider can hold several accounts at once, and the translator spreads work across them.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
codex | object[] |
name | string |
label | string |
usage | object |
windows | object[] |
kind | string |
label | string |
utilization | number |
resetsAt | number |
gates | "all" | "none" | object |
roundedThe provider rounds this figure to… | boolean |
lapsedAtWhen the window this pool was… | number |
missingSinceWhen the provider stopped reporting this… | number |
measuredAt | number |
unreadPresent while re-reading this account keeps… | object |
sinceWhen re-reading this account first failed,… | number |
reasonWhy, in the provider's own words… | string |
uncoveredModels this account serves that no… | string[] |
contradictedA turn on `model` was answered… | object |
atWhen the turn was answered, in… | number |
modelThe model the answered turn ran… | string |
cooling | object |
until | number |
reason | string |
verify | string |
grok | object[] |
name | string |
label | string |
usage | object |
windows | object[] |
kind | string |
label | string |
utilization | number |
resetsAt | number |
gates | "all" | "none" | object |
roundedThe provider rounds this figure to… | boolean |
lapsedAtWhen the window this pool was… | number |
missingSinceWhen the provider stopped reporting this… | number |
measuredAt | number |
unreadPresent while re-reading this account keeps… | object |
sinceWhen re-reading this account first failed,… | number |
reasonWhy, in the provider's own words… | string |
uncoveredModels this account serves that no… | string[] |
contradictedA turn on `model` was answered… | object |
atWhen the turn was answered, in… | number |
modelThe model the answered turn ran… | string |
cooling | object |
until | number |
reason | string |
verify | string |
kimi | object[] |
name | string |
label | string |
usage | object |
windows | object[] |
kind | string |
label | string |
utilization | number |
resetsAt | number |
gates | "all" | "none" | object |
roundedThe provider rounds this figure to… | boolean |
lapsedAtWhen the window this pool was… | number |
missingSinceWhen the provider stopped reporting this… | number |
measuredAt | number |
unreadPresent while re-reading this account keeps… | object |
sinceWhen re-reading this account first failed,… | number |
reasonWhy, in the provider's own words… | string |
uncoveredModels this account serves that no… | string[] |
contradictedA turn on `model` was answered… | object |
atWhen the turn was answered, in… | number |
modelThe model the answered turn ran… | string |
cooling | object |
until | number |
reason | string |
verify | string |
gemini | object[] |
name | string |
label | string |
usage | object |
windows | object[] |
kind | string |
label | string |
utilization | number |
resetsAt | number |
gates | "all" | "none" | object |
roundedThe provider rounds this figure to… | boolean |
lapsedAtWhen the window this pool was… | number |
missingSinceWhen the provider stopped reporting this… | number |
measuredAt | number |
unreadPresent while re-reading this account keeps… | object |
sinceWhen re-reading this account first failed,… | number |
reasonWhy, in the provider's own words… | string |
uncoveredModels this account serves that no… | string[] |
contradictedA turn on `model` was answered… | object |
atWhen the turn was answered, in… | number |
modelThe model the answered turn ran… | string |
cooling | object |
until | number |
reason | string |
verify | string |
curl "$SANDBOX/translator/accounts" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.translator.accounts();POST/translator/{provider}/connectStart connecting a subscription
Begins the sign-in for one provider and says which of the two shapes it is: a code you type into a device page, which finishes by itself in the background, or a redirect whose landing address you hand back afterwards.
What you send
| Field | Type | Where |
|---|---|---|
providerrequired | "codex" | "grok" | "kimi" | "gemini" | address |
What comes back
| Field | Type |
|---|---|
urlThe page to open | string |
codeThe one-time code, where the provider… | string |
stateThe handshake's id, which status reads… | string |
flowWhich shape this is | "device" | "redirect" |
catchersWho is watching for where the… | object[] |
kind | "device" | "browser" |
label | string |
curl -X POST "$SANDBOX/translator/codex/connect" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.translator.connect({
"provider": "codex"
});GET/translator/{provider}/connectRead a subscription connection attempt
Reports whether this exact sign-in attempt is waiting, completed, or failed. Completion is tied to the attempt rather than a change in account count, because signing in to an existing account replaces its credential in place.
What you send
| Field | Type | Where |
|---|---|---|
providerrequired | "codex" | "grok" | "kimi" | "gemini" | address |
staterequired | string | query |
What comes back
| Field | Type |
|---|---|
when status is "wait" | shape |
when status is "ok" | shape |
when status is "error" | shape |
error | string |
curl "$SANDBOX/translator/codex/connect?state=idle" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.translator.status({
"provider": "codex",
"state": "idle"
});POST/translator/{provider}/completeFinish a redirect sign-in
For the providers that redirect somewhere this sandbox cannot receive: hand back the address you landed on and the connection completes.
What you send
| Field | Type | Where |
|---|---|---|
providerrequiredWhich provider | "codex" | "grok" | "kimi" | "gemini" | address |
redirectUrlrequiredThe address the browser was sent… | string | body |
staterequiredThe handshake this belongs to | string | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/translator/codex/complete" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"redirectUrl":"https://sandbox-a1b2c3d4e5f6.intentic.dev","state":"idle"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.translator.complete({
"provider": "codex",
"redirectUrl": "https://sandbox-a1b2c3d4e5f6.intentic.dev",
"state": "idle"
});POST/translator/{provider}/disconnectDisconnect one subscription
Clears a single account by name. Any others under the same provider stay connected.
What you send
| Field | Type | Where |
|---|---|---|
providerrequired | "codex" | "grok" | "kimi" | "gemini" | address |
namerequired | string | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/translator/codex/disconnect" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"name":"nightly changelog"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.translator.disconnect({
"provider": "codex",
"name": "nightly changelog"
});