curl --request POST \
--url https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_score": 88,
"benchmark_id": "<string>",
"method": "auto",
"representations": "auto",
"sequencing": [
"<string>"
],
"max_compute_hours": 123,
"notify_on_phase_transition": true,
"config": {}
}
'import requests
url = "https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align"
payload = {
"target_score": 88,
"benchmark_id": "<string>",
"method": "auto",
"representations": "auto",
"sequencing": ["<string>"],
"max_compute_hours": 123,
"notify_on_phase_transition": True,
"config": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
target_score: 88,
benchmark_id: '<string>',
method: 'auto',
representations: 'auto',
sequencing: ['<string>'],
max_compute_hours: 123,
notify_on_phase_transition: true,
config: {}
})
};
fetch('https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align', 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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align",
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([
'target_score' => 88,
'benchmark_id' => '<string>',
'method' => 'auto',
'representations' => 'auto',
'sequencing' => [
'<string>'
],
'max_compute_hours' => 123,
'notify_on_phase_transition' => true,
'config' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align"
payload := strings.NewReader("{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}"
response = http.request(request)
puts response.read_body{
"auto_align_id": "<string>",
"alignment_id": "<string>",
"status": "<string>",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Set a target score and let your model reach it autonomously
Submit a target alignment score and let the system plan the run.
The system analyses your data, base model and prior training history to build a multi-phase alignment plan.
Phases are sequenced and executed continuously. The system may apply gradient-free representation adjustments, supervised learning, reward-guided optimisation, or a combination, re-planning when the score trajectory demands it. Checkpoints are evaluated between phases, and the system revisits earlier phases if regressions surface.
Every parameter defaults to auto. You can override any of them to constrain
the search, and the system performs best when given room to explore.
Path Parameters:
alignment_id: The alignment project to auto-align. Its base model, data and prior training history warm-start the planning.
Request Body:
target_score(required): Target quality on a 0-99 scalebenchmark_id(optional): Benchmark that measures the achieved score against the target. Defaults to the benchmark already on the projectmethod,representations,sequencing(optional): Constrain which optimisation families run and in what ordermax_compute_hours(optional): Upper bound on GPU hours across all phasesnotify_on_phase_transition(optional): Notify on each phase changeconfig(optional): Per-phase overrides for dataset, rendering, sampling, reward, advantage, loss, adapter, optimizer, training, reference policy, environment, checkpointing, evaluation and logging
Returns:
auto_align_id: Identifier of this requestalignment_id: The project it targetsstatus,message
Raises:
404: If the alignment project is not found or does not belong to you
Notes:
- Auto-alignment is an Enterprise Edition capability. The request is recorded and our team follows up; raise a support ticket to enable it
- Once enabled, poll
GET /alignment-projects/{alignment_id}/statusfor progress, phase transitions and intermediate scores
curl --request POST \
--url https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_score": 88,
"benchmark_id": "<string>",
"method": "auto",
"representations": "auto",
"sequencing": [
"<string>"
],
"max_compute_hours": 123,
"notify_on_phase_transition": true,
"config": {}
}
'import requests
url = "https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align"
payload = {
"target_score": 88,
"benchmark_id": "<string>",
"method": "auto",
"representations": "auto",
"sequencing": ["<string>"],
"max_compute_hours": 123,
"notify_on_phase_transition": True,
"config": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
target_score: 88,
benchmark_id: '<string>',
method: 'auto',
representations: 'auto',
sequencing: ['<string>'],
max_compute_hours: 123,
notify_on_phase_transition: true,
config: {}
})
};
fetch('https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align', 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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align",
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([
'target_score' => 88,
'benchmark_id' => '<string>',
'method' => 'auto',
'representations' => 'auto',
'sequencing' => [
'<string>'
],
'max_compute_hours' => 123,
'notify_on_phase_transition' => true,
'config' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align"
payload := strings.NewReader("{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nugen.in/api/v3/alignment-projects/{alignment_id}/auto-align")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target_score\": 88,\n \"benchmark_id\": \"<string>\",\n \"method\": \"auto\",\n \"representations\": \"auto\",\n \"sequencing\": [\n \"<string>\"\n ],\n \"max_compute_hours\": 123,\n \"notify_on_phase_transition\": true,\n \"config\": {}\n}"
response = http.request(request)
puts response.read_body{
"auto_align_id": "<string>",
"alignment_id": "<string>",
"status": "<string>",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Target a score and let the system plan the alignment to reach it.
Every field except target_score defaults to auto. The deep configuration blocks are accepted as given and stored verbatim, so a run can pin any detail without the public schema enumerating every knob.
Target alignment quality on a 0-99 scale. The system iterates across phases until this score is reached or the compute budget is consumed. Targets above 85 typically cause the system to explore multiple optimisation strategies in sequence.
0 <= x <= 9988
Benchmark used to measure the achieved score against the target. Defaults to the benchmark already on the alignment project.
Which optimisation families the system may use. On auto it selects and sequences them from the score trajectory, and may begin with one approach, move to another, and revisit earlier ones.
How internal model representations are handled before and during alignment. On auto the system profiles the base model and picks a strategy before any gradient-based phase begins.
Explicit phase ordering. When null the system orders phases itself and may interleave or revisit them. When given, it follows the order and still controls the hyperparameters within each phase.
Upper bound on GPU hours across all phases, allocated by expected marginal score gain. When null the run continues until the target.
Notify when the system moves between alignment phases.
Optional overrides for any phase of the run: dataset, rendering, sampling, reward, advantage, loss, adapter, optimizer, training, reference policy, environment, checkpointing, evaluation and logging. Anything omitted resolves to auto.
Response
Auto-alignment request accepted and recorded.
Was this page helpful?