Import Data from Umami or Plausible¶
Migrating from another analytics tool? Antics can import your historical data so you don’t lose your stats.
From Umami¶
Step 1: Export from Umami¶
Run this SQL against your Umami PostgreSQL database to export hourly breakdown data:
COPY (
SELECT
to_char(date_trunc('hour', e.created_at), 'YYYY-MM-DD"T"HH24') as hour,
e.url_path as pathname,
e.referrer_domain,
s.country,
s.browser,
s.os,
s.device,
COUNT(DISTINCT e.session_id) as visitors,
COUNT(*) as pageviews
FROM website_event e
JOIN session s ON s.session_id = e.session_id
WHERE e.website_id = 'YOUR-UMAMI-WEBSITE-ID'::uuid
AND e.event_type = 1
GROUP BY 1, 2, 3, 4, 5, 6, 7
ORDER BY hour
) TO STDOUT WITH CSV HEADER
Save the output as umami-export.csv.
You can find your Umami website IDs with:
SELECT website_id, name, domain FROM website ORDER BY name;
Step 2: Import into Antics¶
# Stop the antics server first (SQLite write locking)
systemctl --user stop antics # or: docker stop antics
# Run the import
docker run --rm \
-v antics-data:/data \
-e "DATABASE_URL=sqlite:/data/antics.db?mode=rwc" \
ghcr.io/turtletech-ehf/antics:latest \
import-umami-csv /data/umami-export.csv YOUR-ANTICS-SITE-ID
# Restart
systemctl --user start antics # or: docker start antics
The import populates:
stats_hourly– per-page, per-source, per-country hourly countersstats_daily– rolled up daily breakdownssite_stats_daily– daily visitor/pageview summariesEstimated bounce rate from single-page visitors
Important
Always stop the antics server before importing. SQLite doesn’t handle concurrent writers well – the import data may not persist if the server is writing at the same time.
From Plausible¶
Export your data from Plausible as CSV (Settings > Export), then use the generic CSV import:
# CSV format: date,visitors,pageviews
docker run --rm \
-v antics-data:/data \
-e "DATABASE_URL=sqlite:/data/antics.db?mode=rwc" \
ghcr.io/turtletech-ehf/antics:latest \
import-csv /data/plausible-export.csv YOUR-ANTICS-SITE-ID
This imports daily summaries only (no page/source breakdown). For full breakdown data, you’ll need to use the Plausible API to export per-page stats.
Generic CSV Import¶
Any CSV with date,visitors,pageviews columns:
date,visitors,pageviews
2026-03-01,150,200
2026-03-02,180,250
docker run --rm \
-v antics-data:/data \
-e "DATABASE_URL=sqlite:/data/antics.db?mode=rwc" \
ghcr.io/turtletech-ehf/antics:latest \
import-csv /data/stats.csv YOUR-ANTICS-SITE-ID