Apply destination column types
curl --request POST \
--url http://localhost:8080/api/v1/pipeline/dest-types \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"pipeline": "<string>",
"fields": [
{
"name": "<string>"
}
]
}
'import requests
url = "http://localhost:8080/api/v1/pipeline/dest-types"
payload = {
"pipeline": "<string>",
"fields": [{ "name": "<string>" }]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({pipeline: '<string>', fields: [{name: '<string>'}]})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pipeline' => '<string>',
'fields' => [
[
'name' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/pipeline/dest-types"
payload := strings.NewReader("{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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("http://localhost:8080/api/v1/pipeline/dest-types")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}")
.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::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"migrated": true,
"version": 123,
"fields": [
{}
]
}Pipelines
Apply destination column types
Applies column types to an all-string destination. Destination-first: if data has already landed the table is migrated before the config changes — postgres retypes in place, snowflake/databricks validate every landed value with TRY_CAST and then swap the table. Any landed value that will not cast fails the whole apply with the column named and nothing changed. On success the pipeline definition is updated as a new version. The migration locks or replaces the table — do not apply while a run is in flight.
POST
/
api
/
v1
/
pipeline
/
dest-types
Apply destination column types
curl --request POST \
--url http://localhost:8080/api/v1/pipeline/dest-types \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"pipeline": "<string>",
"fields": [
{
"name": "<string>"
}
]
}
'import requests
url = "http://localhost:8080/api/v1/pipeline/dest-types"
payload = {
"pipeline": "<string>",
"fields": [{ "name": "<string>" }]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({pipeline: '<string>', fields: [{name: '<string>'}]})
};
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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pipeline' => '<string>',
'fields' => [
[
'name' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/pipeline/dest-types"
payload := strings.NewReader("{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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("http://localhost:8080/api/v1/pipeline/dest-types")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}")
.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::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pipeline\": \"<string>\",\n \"fields\": [\n {\n \"name\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"pipeline": "<string>",
"migrated": true,
"version": 123,
"fields": [
{}
]
}Authorizations
Optional API key for authentication (enabled via application.yaml)
Body
application/json
