Job status lifecycle
| Status | Description |
|---|---|
requested | Job has been submitted and is queued for provisioning. |
running | Training is actively in progress. |
complete | Training finished successfully. Metrics and checkpoints are available. |
failed | Training encountered an error. Check logs for details. |
deployed | Model has been deployed and is serving inference traffic. |
cancelled | Job was manually stopped via POST /felix/training-jobs/:id/stop. |
Start a training job
POST /felix/training-jobs
Submits a new fine-tuning job. Returns immediately with a job ID and requested status — use GET /felix/training-jobs/:id to poll for progress.
Rate limit for this endpoint is 20 requests per minute per user.
The model to fine-tune. Use a supported model ID returned by
GET /base-models (e.g. fastino/gliner2-base-v1) or a checkpoint UUID from a previous training job.Array of dataset references to train on. Each object must include a
name field matching an existing dataset in the ready state.A human-readable name for the resulting trained model. Defaults to a generated identifier if not provided.
Fine-tuning method to use. Accepted values:
lora, full. Defaults to lora. Decoder LLM training is LoRA-only; full is reserved for GLiNER encoder models.Post-training algorithm. Accepted values:
sft (default), grpo, dpo. sft is supervised fine-tuning; grpo and dpo are reinforcement-learning methods that require rl_config. See the LLM fine-tuning guide for algorithm selection, dataset formats, and the supported-model matrix. Submitting grpo/dpo for a model that hasn’t been verified for RL returns a 422.Reinforcement-learning hyperparameters. Required when
training_algorithm is grpo or dpo; must be omitted for sft. Every key inside is optional (TRL-aligned server defaults are applied) except reward_type, which is required for GRPO.Number of training epochs. Defaults vary by base model.
Learning rate for the optimizer. For example,
5e-5.UUID of the training job. Use this ID in all subsequent requests.
Initial status, always
requested on creation.List training jobs
GET /felix/training-jobs
Returns all training jobs for your account. Supports filtering to narrow results.
Query parameters
Filter by job status. Accepted values:
requested, running, complete, deployed, failed, cancelled.Filter by project ID to show only jobs associated with a specific project.
Maximum number of jobs to return. Accepts 1–200. Defaults to
200.Number of jobs to skip for pagination. Defaults to
0Get training job status
GET /felix/training-jobs/:id
Returns current status, configuration, and metrics for a specific training job.
Path parameters
The training job UUID.
Training job UUID.
Current job status.
Performance metrics. Only present when status is
complete.Get training logs
GET /felix/training-jobs/:id/logs
Streams or returns the training logs for a job. Useful for debugging failed jobs or monitoring training progress in real time.
Path parameters
The training job UUID.
List checkpoints
GET /felix/training-jobs/:id/checkpoints
Returns all saved checkpoints for a training job. Checkpoint UUIDs can be used as the base_model value in a new training job to continue training from an intermediate state.
Path parameters
The training job UUID.
Download model weights
GET /felix/training-jobs/:id/download
Returns a download URL for the trained model weights. Only available once the job status is complete.
Path parameters
The training job UUID.
Stop a running job
POST /felix/training-jobs/:id/stop
Gracefully stops a job that is currently in running state. The job transitions to cancelled status…
Path parameters
The training job UUID.
Delete a training job
DELETE /felix/training-jobs/:id
Permanently deletes a training job and its associated artifacts, including checkpoints and logs.
Path parameters
The training job UUID.
200 with {"success": true, "message": "..."} on success.
List all trained models
GET /felix/trained-models
Returns a flat list of all successfully trained models across all of your training jobs.
Data Privacy: If you would like to opt out of having your data used in Fastino’s model training, please email support@fastino.ai and we will ensure your data is excluded from our training pipelines.