CSV Export

Tally provides CSV export endpoints for all raw data. These are useful for importing into spreadsheets, data warehouses, or custom reporting tools.

Export pageviews

GET /api/v1/export/pageviews?site_id=blog&period=30d

Returns one row per pageview with columns:

page_path, page_title, session_id, referrer, entered_at, exited_at,
focus_time_ms, scroll_depth, word_count

Export sessions

GET /api/v1/export/sessions?site_id=blog&period=30d

Returns one row per session with columns:

session_id, ip, city, region, country, latitude, longitude,
browser, browser_version, os, os_version, device_type,
referrer_source, referrer_medium, utm_source, utm_medium, utm_campaign,
first_seen_at, last_seen_at

Export pages summary

GET /api/v1/export/pages?site_id=blog&period=30d

Returns one row per page with aggregated metrics:

page_path, page_title, views, unique_views, avg_focus_time_ms, avg_scroll_depth

Usage examples

Download with curl

curl -H "Authorization: Bearer your-api-key"   "https://your-tally-server.com/api/v1/export/pageviews?period=30d"   -o pageviews.csv

Import into SQLite

sqlite3 analytics.db ".mode csv" ".import pageviews.csv pageviews_export"

Pipe into duckdb

curl -s -H "Authorization: Bearer $KEY"   "https://tally.example.com/api/v1/export/pageviews?period=7d" |
  duckdb -c "COPY read_csv_auto('/dev/stdin') TO 'pageviews.parquet' (FORMAT PARQUET);"

Tip: Timestamps in CSV exports are ISO 8601 UTC format. You can filter by date range using start and end parameters (YYYY-MM-DD format).