Endpoints
A model server you configured, and the free trial's allowance
On this page(4 sections)
Every built-in provider's catalogue is one fixed route, because there is one of each. Endpoints are user-created and unbounded, so the id rides in the address and the answer is whatever the configured server says about itself. The trial belongs here because the trial is an endpoint — the one the daemon provisions rather than you.
GET/endpoints/{id}/modelsModels a connected server offers
Asks one configured model server what it serves. There is no built-in list and no fallback: what a server offers is knowable only by asking it, so an empty answer is the honest report that we could not.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich connection | string | address |
What comes back
| Field | Type |
|---|---|
modelsWhat this provider serves, in its… | object[] |
idWhat to name when asking for… | string |
labelWhat to call it on screen | string |
effortsThe thinking levels it accepts, where… | string[] |
descriptionWhat it is good for, in… | string |
badgesWhat it is known for, where… | "reasoning" | "fast"[] |
contextWindowHow many tokens this model will… | number |
helperOnlySet where this model may write… | "no-tool-calls" | "instant-tier" |
availableAtWhen this model can be asked… | number |
defaultWhich one a fresh conversation starts… | string |
curl "$SANDBOX/endpoints/a1b2c3d4/models" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.endpoints.models({
"id": "a1b2c3d4"
});GET/endpoints/trial/statusWhat is left of the free trial
The allowance, what has been used, when it resets, and which model actually answered the last message. Not being available is the ordinary answer rather than a failure: most sandboxes run against a platform that offers no trial at all.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
available | boolean |
allowance | integer |
used | integer |
remaining | integer |
health | "unknown" | "healthy" | "degraded" | "unavailable" |
resetsAt | string |
retryAt | string |
servedModel | string |
curl "$SANDBOX/endpoints/trial/status" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.endpoints.trial();GET/endpoints/local-model/fitWhich local models this machine can actually run
The memory this sandbox may use, whether a GPU reached it, and every curated model priced two ways: whether it fits on one device's free memory and so runs at full speed, and whether it can load at all. The two the connect view offers, one that downloads in a minute and the best this machine runs at full speed, come from the first; a start is refused only on the second.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
memoryBytes | integer |
memoryCapped | boolean |
gpu | "granted" | "unsupported" | "absent" |
gpuMemoryBytes | integer |
gpuFreeBytes | integer |
budgetBytes | integer |
fullSpeedBytes | integer |
fullSpeedDevice | "gpu" | "host" |
serverReady | boolean |
options | object[] |
model | string |
label | string |
tier | "instant" | "work" |
weightsBytes | integer |
held | boolean |
windows | object[] |
tokens | integer |
totalBytes | integer |
fits | boolean |
fullSpeed | boolean |
instant | object |
model | string |
context | string |
best | object |
model | string |
context | string |
prefetch | object |
model | string |
state | "idle" | "downloading" | "held" | "failed" |
receivedBytes | integer |
totalBytes | integer |
detail | string |
curl "$SANDBOX/endpoints/local-model/fit" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.endpoints.localModelFit();POST/endpoints/local-model/prefetchFetch the small model's weights ahead of being asked
Downloads the curated instant model into the workspace cache so that adding it later costs nothing. Stopping leaves the part file, so a later start resumes from where this one stopped rather than beginning again.
What you send
| Field | Type | Where |
|---|---|---|
actionrequired | "start" | "stop" | body |
What comes back
| Field | Type |
|---|---|
model | string |
state | "idle" | "downloading" | "held" | "failed" |
receivedBytes | integer |
totalBytes | integer |
detail | string |
curl -X POST "$SANDBOX/endpoints/local-model/prefetch" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"action":"start"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.endpoints.localModelPrefetch({
"action": "start"
});