curl --request GET \
--url https://oleander.dev/api/v1/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://oleander.dev/api/v1/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://oleander.dev/api/v1/events', 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://oleander.dev/api/v1/events",
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://oleander.dev/api/v1/events"
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://oleander.dev/api/v1/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://oleander.dev/api/v1/events")
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[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_state": "START",
"received_at": "2023-11-07T05:31:56Z",
"job_name": "<string>",
"job_namespace": "<string>",
"event_time": "2023-11-07T05:31:56Z",
"event_schema": "<string>",
"event_schema_version": "<string>",
"event_size_in_bytes": 123,
"event_raw": {
"eventTime": "2023-11-07T05:31:56Z",
"producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
"schemaURL": "https://openlineage.io/spec/0-0-1/OpenLineage.json",
"run": {
"runId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facets": {}
},
"job": {
"namespace": "my-scheduler-namespace",
"name": "myjob.mytask",
"facets": {}
},
"eventType": "START|RUNNING|COMPLETE|ABORT|FAIL|OTHER",
"inputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.table",
"facets": {},
"inputFacets": {}
}
],
"outputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.table",
"facets": {},
"outputFacets": {}
}
]
},
"produced_by": "<string>",
"integration": "<string>",
"integration_version": "<string>",
"parent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent_job_namespace": "<string>",
"parent_job_name": "<string>",
"inputs": [
{
"namespace": "<string>",
"name": "<string>"
}
],
"outputs": [
{
"namespace": "<string>",
"name": "<string>"
}
]
}
]{
"error": "Validation error details."
}{
"error": "Unauthorized"
}{
"status": 500
}Retrieve events
List lineage events. Supports filtering by time range, run, state, namespace, job, and integrations. Results can be paginated and sorted.
curl --request GET \
--url https://oleander.dev/api/v1/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://oleander.dev/api/v1/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://oleander.dev/api/v1/events', 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://oleander.dev/api/v1/events",
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://oleander.dev/api/v1/events"
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://oleander.dev/api/v1/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://oleander.dev/api/v1/events")
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[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_state": "START",
"received_at": "2023-11-07T05:31:56Z",
"job_name": "<string>",
"job_namespace": "<string>",
"event_time": "2023-11-07T05:31:56Z",
"event_schema": "<string>",
"event_schema_version": "<string>",
"event_size_in_bytes": 123,
"event_raw": {
"eventTime": "2023-11-07T05:31:56Z",
"producer": "https://github.com/OpenLineage/OpenLineage/blob/v1-0-0/client",
"schemaURL": "https://openlineage.io/spec/0-0-1/OpenLineage.json",
"run": {
"runId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facets": {}
},
"job": {
"namespace": "my-scheduler-namespace",
"name": "myjob.mytask",
"facets": {}
},
"eventType": "START|RUNNING|COMPLETE|ABORT|FAIL|OTHER",
"inputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.table",
"facets": {},
"inputFacets": {}
}
],
"outputs": [
{
"namespace": "my-datasource-namespace",
"name": "instance.schema.table",
"facets": {},
"outputFacets": {}
}
]
},
"produced_by": "<string>",
"integration": "<string>",
"integration_version": "<string>",
"parent_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent_job_namespace": "<string>",
"parent_job_name": "<string>",
"inputs": [
{
"namespace": "<string>",
"name": "<string>"
}
],
"outputs": [
{
"namespace": "<string>",
"name": "<string>"
}
]
}
]{
"error": "Validation error details."
}{
"error": "Unauthorized"
}{
"status": 500
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Start timestamp (UNIX epoch). Only events with event_time >= this value are returned.
1672531200
End timestamp (UNIX epoch). Only events with event_time < this value are returned.
1672617600
Field by which results should be sorted. Defaults to EVENT_TIME.
EVENT_TIME, EVENT_SIZE_IN_BYTES Sort order. Defaults to DESC.
ASC, DESC Filter by run_id (UUID). Only events matching this run_id are returned.
"550e8400-e29b-41d4-a716-446655440000"
Comma-separated list of run states to filter by. E.g. 'START,RUNNING,COMPLETE'.
START, RUNNING, COMPLETE, ABORT, FAIL, OTHER Filter by job namespace, partial matches included.
"my-scheduler-namespace"
Filter by job name, partial matches included.
"myjob.mytask"
Comma-separated list of integration names to filter by.
"airflow,dbt"
Number of results to return. Defaults to 30.
50
Offset for pagination. Defaults to 0.
100
Response
A list of lineage events.
START, RUNNING, COMPLETE, ABORT, FAIL, OTHER Timestamp with offset, e.g. '2023-07-14T12:34:56Z'.
Event occurrence time (with offset).
Size of the raw event payload in bytes.
Arbitrary structure corresponding to rawLineageEventSchema.
Show child attributes
Show child attributes
Optional parent run ID.
Optional parent job namespace.
Optional parent job name.
List of input datasets.
Show child attributes
Show child attributes
List of output datasets.
Show child attributes
Show child attributes
Was this page helpful?