Skip to main content
POST
/
v1
/
flow
/
fine-tune
Create fine-tuning job
curl --request POST \
  --url https://flow.seekr.com/v1/flow/fine-tune \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "training_config": {
    "training_files": [
      "<string>"
    ],
    "model": "<string>",
    "n_epochs": 123,
    "learning_rate": 123,
    "batch_size": 512,
    "n_checkpoints": 123,
    "experiment_name": "<string>",
    "max_length": 2500,
    "pre_train": false,
    "fine_tune_type": "STANDARD",
    "lora_config": {
      "r": 8,
      "alpha": 32,
      "dropout": 0.1,
      "bias": "none",
      "extras": {}
    },
    "reward_components": {
      "graders": [
        {
          "type": "format_check",
          "weight": 0.5
        }
      ],
      "format_reward_weight": 0.1
    },
    "beta": 123,
    "gradient_checkpointing": true
  },
  "infrastructure_config": {
    "n_accel": 123,
    "n_node": 1
  },
  "project_id": 123,
  "description": "<string>"
}
'
import requests

url = "https://flow.seekr.com/v1/flow/fine-tune"

payload = {
"training_config": {
"training_files": ["<string>"],
"model": "<string>",
"n_epochs": 123,
"learning_rate": 123,
"batch_size": 512,
"n_checkpoints": 123,
"experiment_name": "<string>",
"max_length": 2500,
"pre_train": False,
"fine_tune_type": "STANDARD",
"lora_config": {
"r": 8,
"alpha": 32,
"dropout": 0.1,
"bias": "none",
"extras": {}
},
"reward_components": {
"graders": [
{
"type": "format_check",
"weight": 0.5
}
],
"format_reward_weight": 0.1
},
"beta": 123,
"gradient_checkpointing": True
},
"infrastructure_config": {
"n_accel": 123,
"n_node": 1
},
"project_id": 123,
"description": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
training_config: {
training_files: ['<string>'],
model: '<string>',
n_epochs: 123,
learning_rate: 123,
batch_size: 512,
n_checkpoints: 123,
experiment_name: '<string>',
max_length: 2500,
pre_train: false,
fine_tune_type: 'STANDARD',
lora_config: {r: 8, alpha: 32, dropout: 0.1, bias: 'none', extras: {}},
reward_components: {graders: [{type: 'format_check', weight: 0.5}], format_reward_weight: 0.1},
beta: 123,
gradient_checkpointing: true
},
infrastructure_config: {n_accel: 123, n_node: 1},
project_id: 123,
description: '<string>'
})
};

fetch('https://flow.seekr.com/v1/flow/fine-tune', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://flow.seekr.com/v1/flow/fine-tune",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'training_config' => [
'training_files' => [
'<string>'
],
'model' => '<string>',
'n_epochs' => 123,
'learning_rate' => 123,
'batch_size' => 512,
'n_checkpoints' => 123,
'experiment_name' => '<string>',
'max_length' => 2500,
'pre_train' => false,
'fine_tune_type' => 'STANDARD',
'lora_config' => [
'r' => 8,
'alpha' => 32,
'dropout' => 0.1,
'bias' => 'none',
'extras' => [

]
],
'reward_components' => [
'graders' => [
[
'type' => 'format_check',
'weight' => 0.5
]
],
'format_reward_weight' => 0.1
],
'beta' => 123,
'gradient_checkpointing' => true
],
'infrastructure_config' => [
'n_accel' => 123,
'n_node' => 1
],
'project_id' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://flow.seekr.com/v1/flow/fine-tune"

payload := strings.NewReader("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://flow.seekr.com/v1/flow/fine-tune")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://flow.seekr.com/v1/flow/fine-tune")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"training_config\": {\n \"training_files\": [\n \"<string>\"\n ],\n \"model\": \"<string>\",\n \"n_epochs\": 123,\n \"learning_rate\": 123,\n \"batch_size\": 512,\n \"n_checkpoints\": 123,\n \"experiment_name\": \"<string>\",\n \"max_length\": 2500,\n \"pre_train\": false,\n \"fine_tune_type\": \"STANDARD\",\n \"lora_config\": {\n \"r\": 8,\n \"alpha\": 32,\n \"dropout\": 0.1,\n \"bias\": \"none\",\n \"extras\": {}\n },\n \"reward_components\": {\n \"graders\": [\n {\n \"type\": \"format_check\",\n \"weight\": 0.5\n }\n ],\n \"format_reward_weight\": 0.1\n },\n \"beta\": 123,\n \"gradient_checkpointing\": true\n },\n \"infrastructure_config\": {\n \"n_accel\": 123,\n \"n_node\": 1\n },\n \"project_id\": 123,\n \"description\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
Create a fine-tuning job by specifying a TrainingConfig and InfrastructureConfig. The TrainingConfig accepts an optional lora_config parameter for parameter-efficient training using low-rank adaptation. For guidance on configuring LoRA, see Low-rank adaptation. For the full fine-tuning workflow, see Create a fine-tuning job.

Authorizations

Authorization
string
header
required

Your Seekr API key, sent in the Authorization header with no 'Bearer' prefix.

Body

application/json
training_config
TrainingConfig · object
required
infrastructure_config
InfrastructureConfig · object
required
project_id
integer | null
description
string | null

Response

Successful Response

The response is of type object.

Last modified on June 18, 2026