Skip to main content
Training jobs are the core of Pioneer’s fine-tuning platform. You submit a job with a base model and one or more datasets, and Pioneer handles the rest — provisioning compute, training the model, and making checkpoints available for download or deployment. Both LoRA and full fine-tuning are supported for encoder and decoder architectures.
base_model is required when starting a training job. Omitting it returns a 422 Unprocessable Entity error. Supply a model ID from GET /base-models (e.g. fastino/gliner2-base-v1, Qwen/Qwen3-8B) or a checkpoint UUID from a previous training job.

Job status lifecycle

StatusDescription
requestedJob has been submitted and is queued for provisioning.
runningTraining is actively in progress.
completeTraining finished successfully. Metrics and checkpoints are available.
failedTraining encountered an error. Check logs for details.
stoppedJob 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.
Request body
base_model
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.
datasets
object[]
required
Array of dataset references to train on. Each object must include a name field matching an existing dataset in the ready state.
model_name
string
A human-readable name for the resulting trained model. Defaults to a generated identifier if not provided.
training_type
string
Fine-tuning method to use. Accepted values: lora, full. Defaults to lora.
nr_epochs
number
Number of training epochs. Defaults vary by base model.
learning_rate
number
Learning rate for the optimizer. For example, 5e-5.
curl -X POST https://api.pioneer.ai/felix/training-jobs \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "my-ner-model",
    "base_model": "fastino/gliner2-base-v1",
    "datasets": [{"name": "my-dataset"}],
    "training_type": "lora",
    "nr_epochs": 5,
    "learning_rate": 5e-5
  }'
Response
id
string
UUID of the training job. Use this ID in all subsequent requests.
status
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
status
string
Filter by job status. Accepted values: requested, running, complete, failed, stopped.
project_id
string
Filter by project ID to show only jobs associated with a specific project.
curl "https://api.pioneer.ai/felix/training-jobs?status=complete" \
  -H "X-API-Key: YOUR_API_KEY"

Get training job status

GET /felix/training-jobs/:id Returns current status, configuration, and metrics for a specific training job. Path parameters
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID \
  -H "X-API-Key: YOUR_API_KEY"
Response
id
string
Training job UUID.
status
string
Current job status.
metrics
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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/logs \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/checkpoints \
  -H "X-API-Key: YOUR_API_KEY"

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
id
string
required
The training job UUID.
curl https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/download \
  -H "X-API-Key: YOUR_API_KEY"

Stop a running job

POST /felix/training-jobs/:id/stop Gracefully stops a job that is currently in running state. The job transitions to stopped status and any completed checkpoints remain available. Path parameters
id
string
required
The training job UUID.
curl -X POST https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID/stop \
  -H "X-API-Key: YOUR_API_KEY"

Delete a training job

DELETE /felix/training-jobs/:id Permanently deletes a training job and its associated artifacts, including checkpoints and logs.
Deleting a training job also removes the model weights. Make sure you have downloaded or deployed the model before deleting the job if you want to retain access to it.
Path parameters
id
string
required
The training job UUID.
curl -X DELETE https://api.pioneer.ai/felix/training-jobs/YOUR_TRAINING_JOB_ID \
  -H "X-API-Key: YOUR_API_KEY"
Returns 204 No Content 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.
curl https://api.pioneer.ai/felix/trained-models \
  -H "X-API-Key: YOUR_API_KEY"