Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Send Authorization: Bearer <api_key>. The legacy Authorization: Api-Key <api_key> scheme is also accepted.

Body

application/json
session_id
string
required

ID of the Loops session this run belongs to.

base_model
string
required

Base model ID (e.g. 'Qwen/Qwen3-8B').

name
string | null

Optional display name for the run. Defaults to the base model name when omitted.

Required string length: 1 - 255
max_seq_len
integer | null

Maximum prompt length (in tokens) the run must handle. Set this to the longest training example you plan to send. Defaults to the maximum supported by the model configuration.

lora_rank
integer
default:64

LoRA rank.

Required range: x >= 1
seed
integer | null

Random seed for reproducibility.

scale_down_delay_seconds
integer
default:3600

Seconds of inactivity before the run scales to zero. Must be between 1 and 3600 (1 hour). Defaults to 3600.

Required range: x <= 3600
replicas
integer
default:1

Number of data-parallel trainer replicas. Each replica is one full copy of the model's preset node group, so the trainer deployment runs (preset node_count * replicas) nodes (e.g. replicas=4 on a 4-node preset → 16 nodes, 4 DP workers). Must be a positive integer. Defaults to 1.

Required range: x >= 1
path
string | null

Optional bt:// URI of an existing checkpoint to load weights from on startup. Form: bt://loops:<run_id>/weights/<checkpoint_name>.

Example:

"bt://loops:k4q95w5/weights/step-100"

reuse_from_run_id
string | null

Optional ID of a prior Loops run whose trainer and/or sampler should be reused for this run instead of provisioning fresh. The prior run must use the same base model and belong to the same team.

reuse_from_session_id
string | null

Optional ID of a prior Loops session whose trainer and/or sampler should be reused for this run. Deprecated in favor of reuse_from_run_id.

Response

200 - application/json
run
LoopsRunV1 · object
required