curl --request POST \
--url https://api.example.com/api/automl/feature-engineering \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_table_name": "<string>",
"description": "<string>",
"source_tables": [
"<string>"
],
"entity_grain": [
"<string>"
],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"domain": "<string>",
"owner": "<string>",
"join_hints": "<string>"
}
'import requests
url = "https://api.example.com/api/automl/feature-engineering"
payload = {
"target_table_name": "<string>",
"description": "<string>",
"source_tables": ["<string>"],
"entity_grain": ["<string>"],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"domain": "<string>",
"owner": "<string>",
"join_hints": "<string>"
}
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_table_name: '<string>',
description: '<string>',
source_tables: ['<string>'],
entity_grain: ['<string>'],
label: {
name: 'label',
type: 'binary',
column: '<string>',
derivation: '<string>',
positive_class_value: '<unknown>'
},
domain: '<string>',
owner: '<string>',
join_hints: '<string>'
})
};
fetch('https://api.example.com/api/automl/feature-engineering', 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.example.com/api/automl/feature-engineering",
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_table_name' => '<string>',
'description' => '<string>',
'source_tables' => [
'<string>'
],
'entity_grain' => [
'<string>'
],
'label' => [
'name' => 'label',
'type' => 'binary',
'column' => '<string>',
'derivation' => '<string>',
'positive_class_value' => '<unknown>'
],
'domain' => '<string>',
'owner' => '<string>',
'join_hints' => '<string>'
]),
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.example.com/api/automl/feature-engineering"
payload := strings.NewReader("{\n \"target_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\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.example.com/api/automl/feature-engineering")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/automl/feature-engineering")
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_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "running",
"target_table_name": "<string>",
"domain": "<string>",
"owner": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"recipe": {
"target_table": "<string>",
"entity_grain": [
"<string>"
],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"features": [
{
"name": "<string>",
"expression": "<string>",
"source_table": "<string>",
"description": "<string>",
"data_type": "<string>"
}
],
"notes": "<string>"
},
"sql": "<string>",
"validation": {
"estimated_row_count": 123,
"label_distribution": {},
"high_null_columns": {},
"warnings": [
"<string>"
]
},
"error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "<string>",
"code": 500
}Create a feature engineering proposal
Start a CrewAI run that designs features and a CTAS query.
NexusOne publishes Crew events under the job’s UUID. The portal polls
/api/events/{job_id}. The response carries that ID as X-Correlation-ID.
curl --request POST \
--url https://api.example.com/api/automl/feature-engineering \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_table_name": "<string>",
"description": "<string>",
"source_tables": [
"<string>"
],
"entity_grain": [
"<string>"
],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"domain": "<string>",
"owner": "<string>",
"join_hints": "<string>"
}
'import requests
url = "https://api.example.com/api/automl/feature-engineering"
payload = {
"target_table_name": "<string>",
"description": "<string>",
"source_tables": ["<string>"],
"entity_grain": ["<string>"],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"domain": "<string>",
"owner": "<string>",
"join_hints": "<string>"
}
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_table_name: '<string>',
description: '<string>',
source_tables: ['<string>'],
entity_grain: ['<string>'],
label: {
name: 'label',
type: 'binary',
column: '<string>',
derivation: '<string>',
positive_class_value: '<unknown>'
},
domain: '<string>',
owner: '<string>',
join_hints: '<string>'
})
};
fetch('https://api.example.com/api/automl/feature-engineering', 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.example.com/api/automl/feature-engineering",
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_table_name' => '<string>',
'description' => '<string>',
'source_tables' => [
'<string>'
],
'entity_grain' => [
'<string>'
],
'label' => [
'name' => 'label',
'type' => 'binary',
'column' => '<string>',
'derivation' => '<string>',
'positive_class_value' => '<unknown>'
],
'domain' => '<string>',
'owner' => '<string>',
'join_hints' => '<string>'
]),
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.example.com/api/automl/feature-engineering"
payload := strings.NewReader("{\n \"target_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\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.example.com/api/automl/feature-engineering")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/automl/feature-engineering")
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_table_name\": \"<string>\",\n \"description\": \"<string>\",\n \"source_tables\": [\n \"<string>\"\n ],\n \"entity_grain\": [\n \"<string>\"\n ],\n \"label\": {\n \"name\": \"label\",\n \"type\": \"binary\",\n \"column\": \"<string>\",\n \"derivation\": \"<string>\",\n \"positive_class_value\": \"<unknown>\"\n },\n \"domain\": \"<string>\",\n \"owner\": \"<string>\",\n \"join_hints\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "running",
"target_table_name": "<string>",
"domain": "<string>",
"owner": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"recipe": {
"target_table": "<string>",
"entity_grain": [
"<string>"
],
"label": {
"name": "label",
"type": "binary",
"column": "<string>",
"derivation": "<string>",
"positive_class_value": "<unknown>"
},
"features": [
{
"name": "<string>",
"expression": "<string>",
"source_table": "<string>",
"description": "<string>",
"data_type": "<string>"
}
],
"notes": "<string>"
},
"sql": "<string>",
"validation": {
"estimated_row_count": 123,
"label_distribution": {},
"high_null_columns": {},
"warnings": [
"<string>"
]
},
"error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "<string>",
"code": 500
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
- Authorization URL
- https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/auth
- Token URL
- https://sso-rapid.rapid.nx1cloud.com/realms/rapid/protocol/openid-connect/token
Body
Top-level request to start a feature engineering proposal.
Fully qualified output table. For example iceberg.automl_credit_risk.training_v1. Schema must be under the AutoML namespace.
Natural-language description of the prediction problem.
Fully qualified source tables in catalog.schema.table format.
1Columns that uniquely identify a training row.
1How to derive the label column for the training table.
Provide exactly one of column or derivation. column
refers to an existing column or a simple SQL expression over source
columns. derivation is a natural-language description that the crew
translates into SQL.
Show child attributes
Show child attributes
DataHub domain or business domain for governance.
Username who owns the resulting training table.
Optional natural-language join guidance for the crew.
Response
Crew run started. Poll the job for the proposal.
The crew's proposal returned to the user for review.
Lifecycle of an AutoML feature engineering job.
running, pending_approval, failed, approved, materializing, complete Structured recipe describing the training table the crew designed.
Show child attributes
Show child attributes
The CREATE TABLE AS SELECT query the crew produced.
Result of running the CTAS query with a row limit during validation.
Kept intentionally lean. Large agents produce more than 10 KB of JSON when this grows with per-column null rates and sample rows. That often exceeds output-token limits. Run the SQL directly to inspect rows. Only persist what's cheap and structurally useful.
Show child attributes
Show child attributes
Was this page helpful?

