curl --request GET \
--url https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}', 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.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}",
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://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}"
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://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}")
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{
"exportID": "tse-123456",
"status": "pending",
"createdMs": 1752738240000,
"fromDate": "<string>",
"toDate": "<string>",
"interval": "hourly",
"format": "csv",
"timeZone": "Europe/Berlin",
"timeSeries": [
{
"name": "<string>",
"excludeColumns": [
"<string>"
],
"engagement": "<string>",
"columns": [
"<string>"
],
"customTags": {},
"columnGuide": {
"version": 123,
"columns": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"values": "<string>"
}
],
"notes": [
"<string>"
]
},
"file": {
"name": "<string>",
"size": 123,
"checksum": "<string>",
"rows": 123
}
}
],
"completedMs": 1752738240000,
"expiresAtMs": 1752738240000,
"sizeBytes": 123,
"error": "<string>"
}{
"error": {
"message": "Validation failed",
"details": [
{
"field": "projectID",
"message": "required"
}
]
}
}Get a time series export by ID
Required API key permission: observe:timeSeries:read.
curl --request GET \
--url https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}', 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.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}",
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://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}"
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://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloud.corbado.io/v1/observe/timeSeries/exports/{exportID}")
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{
"exportID": "tse-123456",
"status": "pending",
"createdMs": 1752738240000,
"fromDate": "<string>",
"toDate": "<string>",
"interval": "hourly",
"format": "csv",
"timeZone": "Europe/Berlin",
"timeSeries": [
{
"name": "<string>",
"excludeColumns": [
"<string>"
],
"engagement": "<string>",
"columns": [
"<string>"
],
"customTags": {},
"columnGuide": {
"version": 123,
"columns": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"values": "<string>"
}
],
"notes": [
"<string>"
]
},
"file": {
"name": "<string>",
"size": 123,
"checksum": "<string>",
"rows": 123
}
}
],
"completedMs": 1752738240000,
"expiresAtMs": 1752738240000,
"sizeBytes": 123,
"error": "<string>"
}{
"error": {
"message": "Validation failed",
"details": [
{
"field": "projectID",
"message": "required"
}
]
}
}Authorizations
Use an Observe API key from the management console. The key selects the project and must grant the permission listed on the operation. Keep this key on your server.
Path Parameters
ID of the export (format tse-<number>)
Response
Time series export descriptor.
Export ID (format tse-<number>)
"tse-123456"
Lifecycle status of a time series export. running while it is generated, completed once every file is stored, failed when generation was aborted (deadline, error, disconnect), expired once the files were removed after the retention period. pending is reserved for queued exports.
pending, running, completed, failed, expired Unix timestamp in milliseconds elapsed since January 1, 1970, 00:00:00 UTC
1752738240000
UTC range start without a timezone suffix.
Exclusive UTC range end without a timezone suffix.
Aggregation interval for the time series
hourly, daily, monthly File format of a time series export
csv, parquet IANA timezone of the project at export time; the files' timeLocal column renders bucket starts in it.
"Europe/Berlin"
Show child attributes
Show child attributes
Unix timestamp in milliseconds elapsed since January 1, 1970, 00:00:00 UTC
1752738240000
Unix timestamp in milliseconds elapsed since January 1, 1970, 00:00:00 UTC
1752738240000
Total size of all files in bytes
Failure reason for failed exports
Was this page helpful?