# Training Jobs

## List Training Jobs

> List training jobs

```json
{"openapi":"3.1.0","info":{"title":"LightningRod API","version":"1.0.0"},"servers":[{"url":"/api/public/v1"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"TrainingJobListResponse":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/TrainingJob"},"type":"array","title":"Jobs"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["jobs","total_count"],"title":"TrainingJobListResponse"},"TrainingJob":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization_id":{"type":"string","title":"Organization Id"},"status":{"$ref":"#/components/schemas/TrainingJobStatus"},"config":{"$ref":"#/components/schemas/TrainingConfig"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"reward_history":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Reward History"},"current_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Step"},"total_steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Steps"},"cost_dollars":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Dollars"},"dataset_hf_repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Hf Repo"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","status","config","created_at","updated_at"],"title":"TrainingJob"},"TrainingJobStatus":{"type":"string","enum":["STARTING","RUNNING","COMPLETED","FAILED"],"title":"TrainingJobStatus"},"TrainingConfig":{"properties":{"dataset":{"$ref":"#/components/schemas/SampleDatasetConfig","description":"Dataset config for loading training samples"},"base_model":{"type":"string","title":"Base Model","description":"HuggingFace model ID for LoRA base (e.g. Qwen/Qwen3-8B)"},"training_steps":{"type":"integer","title":"Training Steps","description":"Number of training loop iterations"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size","description":"Rows per batch; used to slice train_rows each step"},"lora_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lora Rank","description":"LoRA adapter rank passed to create_lora_training_client_async"},"learning_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Learning Rate","description":"Step size for weight updates; higher values learn faster but may overshoot"},"adam_beta1":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta1","description":"Exponential decay rate for first-moment estimates (moving average of gradients)"},"adam_beta2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta2","description":"Exponential decay rate for second-moment estimates (moving average of squared gradients)"},"num_rollouts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Rollouts","description":"Samples per prompt for GRPO"},"max_response_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Response Length","description":"Max tokens for sampling"},"start_idx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Idx","description":"Row index to skip at start; train_rows = train_rows[start_idx:]"}},"type":"object","required":["dataset","base_model","training_steps"],"title":"TrainingConfig"},"SampleDatasetConfig":{"properties":{"id":{"type":"string","title":"Id"},"sample_ids":{"items":{"type":"string"},"type":"array","title":"Sample Ids"},"prompt_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Template"}},"type":"object","required":["id","sample_ids"],"title":"SampleDatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/training-jobs":{"get":{"tags":["Training Jobs"],"summary":"List Training Jobs","description":"List training jobs","operationId":"list_training_jobs_training_jobs_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingJobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Create Training Job

> Create a new training job

```json
{"openapi":"3.1.0","info":{"title":"LightningRod API","version":"1.0.0"},"servers":[{"url":"/api/public/v1"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"CreateTrainingJobRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"config":{"$ref":"#/components/schemas/TrainingConfig"}},"type":"object","required":["config"],"title":"CreateTrainingJobRequest"},"TrainingConfig":{"properties":{"dataset":{"$ref":"#/components/schemas/SampleDatasetConfig","description":"Dataset config for loading training samples"},"base_model":{"type":"string","title":"Base Model","description":"HuggingFace model ID for LoRA base (e.g. Qwen/Qwen3-8B)"},"training_steps":{"type":"integer","title":"Training Steps","description":"Number of training loop iterations"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size","description":"Rows per batch; used to slice train_rows each step"},"lora_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lora Rank","description":"LoRA adapter rank passed to create_lora_training_client_async"},"learning_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Learning Rate","description":"Step size for weight updates; higher values learn faster but may overshoot"},"adam_beta1":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta1","description":"Exponential decay rate for first-moment estimates (moving average of gradients)"},"adam_beta2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta2","description":"Exponential decay rate for second-moment estimates (moving average of squared gradients)"},"num_rollouts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Rollouts","description":"Samples per prompt for GRPO"},"max_response_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Response Length","description":"Max tokens for sampling"},"start_idx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Idx","description":"Row index to skip at start; train_rows = train_rows[start_idx:]"}},"type":"object","required":["dataset","base_model","training_steps"],"title":"TrainingConfig"},"SampleDatasetConfig":{"properties":{"id":{"type":"string","title":"Id"},"sample_ids":{"items":{"type":"string"},"type":"array","title":"Sample Ids"},"prompt_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Template"}},"type":"object","required":["id","sample_ids"],"title":"SampleDatasetConfig"},"TrainingJob":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization_id":{"type":"string","title":"Organization Id"},"status":{"$ref":"#/components/schemas/TrainingJobStatus"},"config":{"$ref":"#/components/schemas/TrainingConfig"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"reward_history":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Reward History"},"current_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Step"},"total_steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Steps"},"cost_dollars":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Dollars"},"dataset_hf_repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Hf Repo"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","status","config","created_at","updated_at"],"title":"TrainingJob"},"TrainingJobStatus":{"type":"string","enum":["STARTING","RUNNING","COMPLETED","FAILED"],"title":"TrainingJobStatus"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/training-jobs":{"post":{"tags":["Training Jobs"],"summary":"Create Training Job","description":"Create a new training job","operationId":"create_training_job_training_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrainingJobRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Estimate Training Cost

> Estimate training cost before execution

```json
{"openapi":"3.1.0","info":{"title":"LightningRod API","version":"1.0.0"},"servers":[{"url":"/api/public/v1"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"EstimateTrainingCostRequest":{"properties":{"config":{"$ref":"#/components/schemas/TrainingConfig"}},"type":"object","required":["config"],"title":"EstimateTrainingCostRequest"},"TrainingConfig":{"properties":{"dataset":{"$ref":"#/components/schemas/SampleDatasetConfig","description":"Dataset config for loading training samples"},"base_model":{"type":"string","title":"Base Model","description":"HuggingFace model ID for LoRA base (e.g. Qwen/Qwen3-8B)"},"training_steps":{"type":"integer","title":"Training Steps","description":"Number of training loop iterations"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size","description":"Rows per batch; used to slice train_rows each step"},"lora_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lora Rank","description":"LoRA adapter rank passed to create_lora_training_client_async"},"learning_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Learning Rate","description":"Step size for weight updates; higher values learn faster but may overshoot"},"adam_beta1":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta1","description":"Exponential decay rate for first-moment estimates (moving average of gradients)"},"adam_beta2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta2","description":"Exponential decay rate for second-moment estimates (moving average of squared gradients)"},"num_rollouts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Rollouts","description":"Samples per prompt for GRPO"},"max_response_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Response Length","description":"Max tokens for sampling"},"start_idx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Idx","description":"Row index to skip at start; train_rows = train_rows[start_idx:]"}},"type":"object","required":["dataset","base_model","training_steps"],"title":"TrainingConfig"},"SampleDatasetConfig":{"properties":{"id":{"type":"string","title":"Id"},"sample_ids":{"items":{"type":"string"},"type":"array","title":"Sample Ids"},"prompt_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Template"}},"type":"object","required":["id","sample_ids"],"title":"SampleDatasetConfig"},"EstimateTrainingCostResponse":{"properties":{"total_cost_dollars":{"type":"number","title":"Total Cost Dollars"},"prefill_tokens":{"type":"integer","title":"Prefill Tokens"},"sample_tokens":{"type":"integer","title":"Sample Tokens"},"train_tokens":{"type":"integer","title":"Train Tokens"},"effective_steps":{"type":"integer","title":"Effective Steps"},"notes":{"type":"string","title":"Notes"},"warning_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning Message"}},"type":"object","required":["total_cost_dollars","prefill_tokens","sample_tokens","train_tokens","effective_steps","notes"],"title":"EstimateTrainingCostResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/training-jobs/cost-estimation":{"post":{"tags":["Training Jobs"],"summary":"Estimate Training Cost","description":"Estimate training cost before execution","operationId":"estimate_training_cost_training_jobs_cost_estimation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateTrainingCostRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateTrainingCostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Get Training Job

> Get a training job by ID

```json
{"openapi":"3.1.0","info":{"title":"LightningRod API","version":"1.0.0"},"servers":[{"url":"/api/public/v1"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"TrainingJob":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"organization_id":{"type":"string","title":"Organization Id"},"status":{"$ref":"#/components/schemas/TrainingJobStatus"},"config":{"$ref":"#/components/schemas/TrainingConfig"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"reward_history":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Reward History"},"current_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Step"},"total_steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Steps"},"cost_dollars":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Dollars"},"dataset_hf_repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Hf Repo"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","status","config","created_at","updated_at"],"title":"TrainingJob"},"TrainingJobStatus":{"type":"string","enum":["STARTING","RUNNING","COMPLETED","FAILED"],"title":"TrainingJobStatus"},"TrainingConfig":{"properties":{"dataset":{"$ref":"#/components/schemas/SampleDatasetConfig","description":"Dataset config for loading training samples"},"base_model":{"type":"string","title":"Base Model","description":"HuggingFace model ID for LoRA base (e.g. Qwen/Qwen3-8B)"},"training_steps":{"type":"integer","title":"Training Steps","description":"Number of training loop iterations"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size","description":"Rows per batch; used to slice train_rows each step"},"lora_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lora Rank","description":"LoRA adapter rank passed to create_lora_training_client_async"},"learning_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Learning Rate","description":"Step size for weight updates; higher values learn faster but may overshoot"},"adam_beta1":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta1","description":"Exponential decay rate for first-moment estimates (moving average of gradients)"},"adam_beta2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adam Beta2","description":"Exponential decay rate for second-moment estimates (moving average of squared gradients)"},"num_rollouts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Rollouts","description":"Samples per prompt for GRPO"},"max_response_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Response Length","description":"Max tokens for sampling"},"start_idx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Idx","description":"Row index to skip at start; train_rows = train_rows[start_idx:]"}},"type":"object","required":["dataset","base_model","training_steps"],"title":"TrainingConfig"},"SampleDatasetConfig":{"properties":{"id":{"type":"string","title":"Id"},"sample_ids":{"items":{"type":"string"},"type":"array","title":"Sample Ids"},"prompt_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Template"}},"type":"object","required":["id","sample_ids"],"title":"SampleDatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/training-jobs/{job_id}":{"get":{"tags":["Training Jobs"],"summary":"Get Training Job","description":"Get a training job by ID","operationId":"get_training_job_training_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lightningrod.ai/rest-api/training-jobs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
