Job status lifecycle
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.
string
required
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.object[]
required
Array of dataset references to train on. Each object must include a
name field matching an existing dataset in the ready state.string
required
A human-readable name for the resulting trained model. Defaults to a generated identifier if not provided.
string
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.string
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.object
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
Number of training epochs. Defaults vary by base model.
number
Learning rate for the optimizer. For example,
5e-5.string
UUID of the training job. Use this ID in all subsequent requests.
string
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
string
Filter by job status. Accepted values:
requested, running, complete, deployed, failed, cancelled.string
Filter by project ID to show only jobs associated with a specific project.
number
Maximum number of jobs to return. Accepts 1–200. Defaults to
200.number
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
string
required
The training job UUID.
string
Training job UUID.
string
Current job status.
object
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
string
required
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
string
required
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
string
required
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
string
required
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
string
required
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.