curl --request GET \
--url https://api.topsort.com/public/v1/export-service/exports/{export_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/export-service/exports/{export_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topsort.com/public/v1/export-service/exports/{export_id}', 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.topsort.com/public/v1/export-service/exports/{export_id}",
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.topsort.com/public/v1/export-service/exports/{export_id}"
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.topsort.com/public/v1/export-service/exports/{export_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/export-service/exports/{export_id}")
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": "218ad339-00cd-4e11-aeaa-8d96694908a0",
"status": "completed",
"dataset": "monitoring_metrics",
"createdAt": "2026-09-08T14:03:12Z",
"downloadUrl": "https://downloads.example.com/exports/218ad339-00cd-4e11-aeaa-8d96694908a0.parquet?expires=3600&signature=...",
"downloadExpiresAt": "2026-09-08T15:21:40Z",
"error": "Export exceeded the processing time limit",
"message": "No data was found for the requested date range."
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred.",
"details": []
}
}Get an export
Check an export and download it once it is ready.
Check at most once a minute. A completed export includes a download link
valid for 1 hour; check again for a new one. If no rows matched, the
export completes without a link and message says so.
curl --request GET \
--url https://api.topsort.com/public/v1/export-service/exports/{export_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/export-service/exports/{export_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topsort.com/public/v1/export-service/exports/{export_id}', 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.topsort.com/public/v1/export-service/exports/{export_id}",
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.topsort.com/public/v1/export-service/exports/{export_id}"
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.topsort.com/public/v1/export-service/exports/{export_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/export-service/exports/{export_id}")
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": "218ad339-00cd-4e11-aeaa-8d96694908a0",
"status": "completed",
"dataset": "monitoring_metrics",
"createdAt": "2026-09-08T14:03:12Z",
"downloadUrl": "https://downloads.example.com/exports/218ad339-00cd-4e11-aeaa-8d96694908a0.parquet?expires=3600&signature=...",
"downloadExpiresAt": "2026-09-08T15:21:40Z",
"error": "Export exceeded the processing time limit",
"message": "No data was found for the requested date range."
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred.",
"details": []
}
}Autorizaciones
A valid API key generated in Topsort's UI. Use the TSE API key if calling auctions or events API, otherwise use the TSC API key.
Parámetros de ruta
The exportId returned when you created the export.
Respuesta
Your export. A completed one includes a download link, or message when it has no rows.
Your export. A completed one includes a download link, or message when it has no rows.
ID of your export.
"218ad339-00cd-4e11-aeaa-8d96694908a0"
Current status of your export.
pending, running, completed, failed "completed"
The dataset being exported.
monitoring_metrics "monitoring_metrics"
When you requested the export.
"2026-09-08T14:03:12Z"
Link to download the Parquet file, present only when status is completed and the export has data. It is valid for 1 hour; check the export again to get a new link.
"https://downloads.example.com/exports/218ad339-00cd-4e11-aeaa-8d96694908a0.parquet?expires=3600&signature=..."
When downloadUrl stops working.
"2026-09-08T15:21:40Z"
Why the export failed, present only when status is failed. One of An unexpected error occurred., The export result did not match the expected schema or Export exceeded the processing time limit. Request a new export to try again.
"Export exceeded the processing time limit"
Present only when status is completed but no rows matched your request, so there is no file to download: No data was found for the requested date range.
"No data was found for the requested date range."
¿Esta página le ayudó?