Start Data Job Alignment
curl --request POST \
--url https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start \
--header 'Authorization: <api-key>'import requests
url = "https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start', 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/data-jobs/{data_job_id}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
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/data-jobs/{data_job_id}/start")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"user_id": "<string>",
"name": "<string>",
"job_type": "<string>",
"alignment_job_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status": "file_processing",
"origin_data_job_id": "<string>",
"deleted": false,
"status_message": "<string>",
"system_prompt": "<string>",
"system_prompt_updated_at": "2023-11-07T05:31:56Z",
"instructions": "<string>",
"instructions_updated_at": "2023-11-07T05:31:56Z",
"resolved_instructions": "<string>",
"vector_database_id": "<string>",
"additional_alignment_file_ids": [
"<string>"
],
"ingestion_jobs": [
{
"id": "<string>",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"file_ids": [
"<string>"
],
"records": [
{
"record_id": "<string>",
"ingestion_job_id": "<string>",
"alignment_file_id": "<string>",
"user_id": "<string>",
"filename": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"metaflow_job_id": "<string>",
"method": "<string>",
"queue_position": 123,
"error_message": "<string>",
"suggested_fix": "<string>",
"worker_id": "<string>",
"deleted": false,
"processing_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"failed_at": "2023-11-07T05:31:56Z",
"progress": 123,
"progress_at": "2023-11-07T05:31:56Z",
"projected_progress": 123,
"projected_progress_at": "2023-11-07T05:31:56Z"
}
]
}
],
"alignment_job": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"current_step": "<string>",
"step_progress": 123,
"progress": 123,
"estimated_completion_at": "2023-11-07T05:31:56Z",
"eta_minutes": 123,
"status_message": "<string>",
"output_files": [
{
"id": "<string>",
"filename": "<string>",
"bytes": 123,
"created_at": "2023-11-07T05:31:56Z",
"file_type": "jsonl",
"purpose": "reinforcement-fine-tune"
}
]
},
"files": [
{
"file_id": "<string>",
"record_id": "<string>",
"name": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"suggested_fix": "<string>",
"bytes": 123
}
],
"fine_tuning_job_ids": [
"<string>"
],
"timeline": [
{
"timestamp": "2023-11-07T05:31:56Z",
"event_type": "<string>",
"message": "<string>",
"metadata": {}
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Start data job alignment
Start the alignment process for a data job.
POST
/
v1
/
flow
/
data-jobs
/
{data_job_id}
/
start
Start Data Job Alignment
curl --request POST \
--url https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start \
--header 'Authorization: <api-key>'import requests
url = "https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start', 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/data-jobs/{data_job_id}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
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/data-jobs/{data_job_id}/start")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://flow.seekr.com/v1/flow/data-jobs/{data_job_id}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"user_id": "<string>",
"name": "<string>",
"job_type": "<string>",
"alignment_job_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status": "file_processing",
"origin_data_job_id": "<string>",
"deleted": false,
"status_message": "<string>",
"system_prompt": "<string>",
"system_prompt_updated_at": "2023-11-07T05:31:56Z",
"instructions": "<string>",
"instructions_updated_at": "2023-11-07T05:31:56Z",
"resolved_instructions": "<string>",
"vector_database_id": "<string>",
"additional_alignment_file_ids": [
"<string>"
],
"ingestion_jobs": [
{
"id": "<string>",
"status": "queued",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"file_ids": [
"<string>"
],
"records": [
{
"record_id": "<string>",
"ingestion_job_id": "<string>",
"alignment_file_id": "<string>",
"user_id": "<string>",
"filename": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"metaflow_job_id": "<string>",
"method": "<string>",
"queue_position": 123,
"error_message": "<string>",
"suggested_fix": "<string>",
"worker_id": "<string>",
"deleted": false,
"processing_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"failed_at": "2023-11-07T05:31:56Z",
"progress": 123,
"progress_at": "2023-11-07T05:31:56Z",
"projected_progress": 123,
"projected_progress_at": "2023-11-07T05:31:56Z"
}
]
}
],
"alignment_job": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z",
"current_step": "<string>",
"step_progress": 123,
"progress": 123,
"estimated_completion_at": "2023-11-07T05:31:56Z",
"eta_minutes": 123,
"status_message": "<string>",
"output_files": [
{
"id": "<string>",
"filename": "<string>",
"bytes": 123,
"created_at": "2023-11-07T05:31:56Z",
"file_type": "jsonl",
"purpose": "reinforcement-fine-tune"
}
]
},
"files": [
{
"file_id": "<string>",
"record_id": "<string>",
"name": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"status": "<string>",
"suggested_fix": "<string>",
"bytes": 123
}
],
"fine_tuning_job_ids": [
"<string>"
],
"timeline": [
{
"timestamp": "2023-11-07T05:31:56Z",
"event_type": "<string>",
"message": "<string>",
"metadata": {}
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Start the alignment process for a data job. The job must be in
ready_to_start status. Pre-flight checks vary by job type:
- For
principle_filesjobs: asystem_promptmust be set and files have been added to the data job - For
context_grounded_filesjobs: files must have been added to the data job - For
context_grounded_vector_dbjobs: avector_database_idmust be set
Authorizations
Your Seekr API key, sent in the Authorization header with no 'Bearer' prefix.
Path Parameters
Response
Success
Extends DataJobResponse Full detail payload for the per-job view.
Status values that exist BEFORE an alignment job is linked. Once linked, the real status comes from AlignmentJobStatus directly — see DataJobResponse.status's union type and derive_data_job_status.
Available options:
file_processing, needs_review, ready_to_start Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Last modified on July 31, 2026
⌘I