curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage', 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://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"downstream_column_id": "<string>",
"upstream_column_id": "<string>"
}
],
"has_more": false,
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}List column lineage
Lists column-to-column lineage edges, one record per edge (mirroring the asset-lineage shape). Full scan by default; the synced_since / deleted_since feeds filter on the downstream column’s timestamps.
curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage', 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://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/column-lineage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"downstream_column_id": "<string>",
"upstream_column_id": "<string>"
}
],
"has_more": false,
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Personal or account token.
Path Parameters
Environment identifier that scopes the request.
Query Parameters
Return only edges whose downstream column is in this set.
1000Return only edges whose downstream column belongs to these asset ids.
1000Upserts feed: edges whose downstream column synced_at >= this time (inclusive). Orders by synced_at.
Tombstones feed: edges whose downstream column deleted_at >= this time (inclusive). Orders by deleted_at.
Opaque cursor from a previous response's next_cursor. Reuse it only with the identical query parameters that produced it.
Maximum items to return per page (1-2000).
1 <= x <= 2000Sort field for a full scan. Ignored when synced_since/deleted_since is set (those feeds always order by their own cursor).
id, synced_at Sort direction for order_by.
asc, desc Response
Successful Response
Objects returned in the current page.
Show child attributes
Show child attributes
The only signal to continue pagination; a short page may still have more items because permission filtering can trim rows.
Opaque cursor for the next page, valid only with identical query parameters.

