Propose destination column types from landed data
curl --request GET \
--url http://localhost:8080/api/v1/pipeline/dest-types \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/pipeline/dest-types"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/pipeline/dest-types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/pipeline/dest-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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 := "http://localhost:8080/api/v1/pipeline/dest-types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/pipeline/dest-types")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/pipeline/dest-types")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"eligible": true,
"reason": "destination-not-supported",
"message": "<string>",
"sampleRowCount": 123,
"fields": [
{
"name": "<string>",
"type": "string",
"samples": [
"<string>"
],
"stringReason": {
"value": "<string>",
"blocked": "<string>"
}
}
]
}Pipelines
Propose destination column types from landed data
Agent-created pipelines store every destination column as text. This stateless call samples up to 1000 rows that already landed in the destination (postgres, snowflake, or databricks), infers real column types deterministically, and returns them with per-column evidence: a few distinct sample values, and — for columns kept as string by a dirty value — the offending value and the type it blocked. Nothing is stored or changed.
GET
/
api
/
v1
/
pipeline
/
dest-types
Propose destination column types from landed data
curl --request GET \
--url http://localhost:8080/api/v1/pipeline/dest-types \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/pipeline/dest-types"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/pipeline/dest-types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/pipeline/dest-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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 := "http://localhost:8080/api/v1/pipeline/dest-types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/pipeline/dest-types")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/pipeline/dest-types")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"eligible": true,
"reason": "destination-not-supported",
"message": "<string>",
"sampleRowCount": 123,
"fields": [
{
"name": "<string>",
"type": "string",
"samples": [
"<string>"
],
"stringReason": {
"value": "<string>",
"blocked": "<string>"
}
}
]
}Authorizations
Optional API key for authentication (enabled via application.yaml)
