Sift’s REST API and client libraries let you export telemetry data from Runs programmatically for use in external tools, custom pipelines, and downstream analysis environments such as MATLAB or Python. Official clients are available for Python, Rust, and Go. Clients for other languages can be generated using Buf. Data captured from a Run can also be exported directly from the UI without writing code, in CSV, Parquet, or Sun (WinPlot) format.Documentation Index
Fetch the complete documentation index at: https://docs.siftstack.com/llms.txt
Use this file to discover all available pages before exploring further.
Before you export
To export data from Sift programmatically, make sure you have the following:- A Sift API key and your base URLs.
- The ID of the Run and the IDs of the Channels you want to export.
How does programmatic export work
Sift provides two programmatic export mechanisms, each available through the REST API and client libraries.Supported clients
Official clients are available for the following languages: Clients for other languages can be generated using Buf.Mechanisms
The table below compares both mechanisms across the REST API and client libraries.Mechanism 1: Data querying
Data querying requests Channel data over a defined time window and returns the response immediately. Available via POST /api/v2/data in the REST API, through the official Python, Rust, and Go clients, and through any client generated using Buf.REST API
The examples below use cURL to call POST /api/v2/data (GetData) directly. See the GetData endpoint reference for the full schema.
Python client
The official Python client provides two methods for querying Channel data:- client.channels.get_data_as_arrow() returns an Apache Arrow table. Recommended when converting data for use in other tools.
- client.channels.get_data() returns typed Python value objects.
Retrieve the data
Fetch the Channel object using its ID, then call client.channels.get_data_as_arrow(). The method returns a Or using client.channels.get_data(), which returns a
dict where each key is a Channel name and the value is an Apache Arrow table.dict[str, pd.DataFrame] directly with no conversion needed:Mechanism 2: Export data to file
Export data to file processes the export in the background and makes the result available as a downloadable ZIP file. Supported output formats: CSV, Parquet, and Sun/WinPlot. Sun/WinPlot is feature-flagged and only available to certain gov cloud customers. Available via POST /api/v1/export in the REST API, through the official Python, Rust, and Go clients, and through any client generated using Buf.REST API
The examples below use cURL to call POST /api/v1/export (ExportData) and GET /api/v1/export//download-url (GetDownloadUrl) directly. See the ExportData endpoint reference and the GetDownloadUrl endpoint reference for the full schema.
Python client
The official Python client provides two methods for exporting data to file:- client.data_export.export() submits the export job.
- job.wait_and_download() polls until complete, downloads, and extracts the result automatically. Returns a list of
Pathobjects pointing to the extracted files.