Create Finetune Job
const url = 'https://example.com/v1/finetune';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"project_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","model_id":"lerobot/smolvla_base","vla_type":"act","dataset_id":"lerobot/pusht","hours":1,"instance_type":"example","region":"example","batch_size":32,"name":"example","camera_mappings":{"cam_1":"observation.images.top","cam_2":"observation.images.wrist","cam_3":"observation.images.front"},"vla_hyper_spec":{},"use_rabc":false,"sarm_reward_model_path":"example","rabc_head_mode":"sparse","sarm_image_observation_key":"example","job_type":"vla"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/finetune \ --header 'Content-Type: application/json' \ --data '{ "project_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "model_id": "lerobot/smolvla_base", "vla_type": "act", "dataset_id": "lerobot/pusht", "hours": 1, "instance_type": "example", "region": "example", "batch_size": 32, "name": "example", "camera_mappings": { "cam_1": "observation.images.top", "cam_2": "observation.images.wrist", "cam_3": "observation.images.front" }, "vla_hyper_spec": {}, "use_rabc": false, "sarm_reward_model_path": "example", "rabc_head_mode": "sparse", "sarm_image_observation_key": "example", "job_type": "vla" }'Start a new finetune job.
Creates a training job for fine-tuning a VLA model on the specified dataset. Camera mappings must map model camera slots to valid dataset image keys. Use GET /v1/datasets/{dataset_id}/image-keys to discover available keys.
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters ”Request Body required
Section titled “Request Body required ”Request to start a finetune job.
object
Project ID to associate the job with
HuggingFace model ID to finetune. Required for smolvla, pi0, pi05. Must NOT be provided for act, gr00t_n1_5.
VLA model type (determines camera slot configuration)
HuggingFace dataset ID
Training duration in hours
GPU instance type (from /v1/instances). If not specified, cheapest available is used.
Cloud region. If not specified, best available is selected.
Training batch size
Job name/description. Defaults to ‘SDK Job - {vla_type}’
Camera mappings from model camera slots to dataset image keys.
object
Example
{ "cam_1": "observation.images.top", "cam_2": "observation.images.wrist", "cam_3": "observation.images.front"}Advanced hyperparameters for VLA models. Use GET /v1/finetune/hyperparams/defaults to get defaults.
object
Whether to use SARM Reward-Aware Behavior Cloning (RA-BC) for training
HuggingFace path to trained SARM reward model (required if use_rabc=True)
SARM head mode to use: ‘sparse’, ‘dense’, or ‘both’
Image key from camera_mappings for SARM reward annotations (required if use_rabc=True)
Type of fine-tuning job: ‘vla’, ‘reward’, or ‘vla_w_reward’
Responses
Section titled “ Responses ”Finetune job created successfully
Response after creating a finetune job.
object
Unique job identifier
Current job status
Status message
Example generated
{ "job_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "example", "message": "example"}Invalid camera mappings or request parameters
Standard error response.
object
Error message describing what went wrong
Example generated
{ "detail": "example"}Invalid or missing API key
Standard error response.
object
Error message describing what went wrong
Example generated
{ "detail": "example"}Validation error