factor technologies
Reference

REST API

The CLI and SDK use a public JSON API. Call it directly to automate GFT from any language.

Base URL and authentication#

Every request goes to one origin, https://studio.g-ftech.com. Send your API key as a bearer token:

bash
curl https://studio.g-ftech.com/v1/me -H "Authorization: Bearer $GFT_API_KEY"

The Scope column below shows the API key scope each endpoint needs. See Authentication.

Requests and retries#

Errors use one JSON format. See Errors and exit codes.

Account#

MethodEndpointScopeDescription
GET/healthPublicCheck that the API is up.
GET/v1/auth/configPublicList the sign-in methods enabled on this server.
POST/v1/auth/sessionBootstrapExchange an issued credential for an HttpOnly browser session.
POST/v1/auth/development-sessionLocal onlyCreate the loopback-only development session.
GET/v1/meAny keyReturn the current user and organization.
PATCH/v1/meBrowser sessionUpdate the current user's display name.
POST/v1/billing/invite-codes/redeemBrowser sessionRedeem a one-time invite code into the current workspace's credits.
GET/v1/studio/catalogBrowser sessionList the models, gyms, recipes, exact revisions and qualification flags that Studio uses for managed training.

Gyms#

MethodEndpointScopeDescription
GET/v1/environmentsreadSearch and filter your organization's Environment Hub.
POST/v1/environmentspublishValidate, qualify and publish one private gym version.
POST/v1/environments/pushpublishUpload a wheel and queue an isolated sandbox build.
GET/v1/environments/{environment_id}readInspect one gym, its readiness and schemas.

Training and evaluation#

MethodEndpointScopeDescription
POST/v1/plansrun or benchmarkPin the gym versions selected by a slug.
POST/v1/runsrunAccept one training run from a resolved plan.
GET/v1/runs/{run_id}readRead the training status.
POST/v1/runs/{run_id}/cancelrunCancel a training run. Safe to repeat.
POST/v1/benchmarks/submitbenchmarkSubmit one evaluation. It runs in the background.
GET/v1/operations/{operation_id}readRead evaluation status and results.
POST/v1/operations/{operation_id}/cancelbenchmarkCancel an evaluation that is still queued.

Models and deployments#

MethodEndpointScopeDescription
GET/v1/modelsinferenceList the inference models available to your organization.
GET/v1/serving/deploymentsreadList inference deployments.
GET/v1/serving/deployments/{deployment_id}readInspect one deployment.
POST/v1/serving/deploymentsdeployProvision a promoted model artifact.
POST/v1/serving/deployments/{deployment_id}/canarydeployRun the activation canary.
POST/v1/serving/deployments/{deployment_id}/activatedeployActivate a deployment that passed its canary.

Containers#

MethodEndpointScopeDescription
GET, POST/v1/imagesread, runList or register workspace images by immutable digest.
GET/v1/containers/capabilitiesreadRead container availability, modes and tariffs.
GET, POST/v1/containersread, runList containers, or start one within your budget limits.
GET/v1/containers/{id}readRead the machine lifecycle and process status.
GET/v1/containers/{id}/logsreadRead a bounded tail of the logs.
GET/v1/containers/{id}/outputsreadGet a temporary download URL for saved outputs.
POST/v1/containers/{id}/httprunSend one bounded HTTP request to a service. No streaming or WebSockets.
POST/v1/containers/{id}/terminalsrunOpen an interactive terminal session.
WS/v1/containers/{id}/terminals/{session}/wsrunAttach to the terminal over WSS.
DELETE/v1/containers/{id}/terminals/{session}runEnd the terminal session.
POST/v1/containers/{id}/stoprunDelete the machine and its temporary disk.

An MCP server is not available yet. When it ships, it will use the same API keys and scopes.