Exports
CSV download of any range
Anything you see in the OpenPost dashboards can be exported as a CSV. Pick a range, pick the grain (post-level, day-level, or channel-level), hit Export. The file downloads immediately for ranges under 90 days; longer ranges are prepared in the background and emailed when ready.
Export from the dashboard
Open the analytics view you want
Overview, per-post list, or any filtered slice (by channel, tag, or campaign). The export mirrors what’s visible.
Click Export → CSV
Top-right of every analytics view. You’ll get a file like openpost-analytics-2026-04-01-to-2026-04-30.csv.
Open in your tool of choice
Columns are UTF-8, comma-separated, with a header row. Times are ISO 8601 in UTC.
Export grains
| Field | Type | Description |
|---|---|---|
| post | per-post | One row per post. Aggregated totals across all channels. |
| post-channel | per-post × per-channel | One row per (post, channel) pair. Use when you want to compare how a post did on each platform. |
| day | per-day | One row per day. Totals across all posts and channels. |
| day-channel | per-day × per-channel | One row per (day, channel). Best for channel-over-time charts. |
Programmatic export
Kick off a background export via the API. You’ll get an export_id; poll it for the download URL once it’s ready.
curl -X POST https://api.openpost.so/v1/analytics/exports \
-H "Authorization: Bearer $OP_KEY" \
-H "Content-Type: application/json" \
-d '{
"grain": "post-channel",
"range": { "from": "2026-01-01", "to": "2026-04-01" }
}'
{
"id": "exp_7YwxJ9",
"status": "processing",
"grain": "post-channel",
"estimated_rows": 24310,
"created_at": "2026-04-16T10:22:14Z"
}
Poll it:
curl https://api.openpost.so/v1/analytics/exports/exp_7YwxJ9 \
-H "Authorization: Bearer $OP_KEY"
{
"id": "exp_7YwxJ9",
"status": "ready",
"url": "https://exports.openpost.so/exp_7YwxJ9.csv?...signed",
"expires_at": "2026-04-16T11:22:14Z",
"row_count": 24310
}
url is a signed S3 URL valid for one hour. Download it before the expiry. You can always re-request another link by calling the export endpoint again.Scheduled exports
Workspaces on Pro and Max can schedule a recurring export (daily / weekly / monthly) that drops a CSV in a given S3 bucket you own or emails it to a distribution list. Set one up in Settings → Integrations → Exports.
Column reference
| Field | Type | Description |
|---|---|---|
| post_id | string | Stable OpenPost ID, e.g. pst_abc. |
| channel | string | x, instagram, linkedin, etc. Empty if the grain is post. |
| published_at | ISO 8601 | UTC timestamp of publish. |
| impressions | int | Times shown to users. |
| reach | int | Unique accounts reached. |
| engagement | int | Likes + comments + shares + saves. |
| engagement_rate | float | engagement / impressions. |
| link_clicks | int | Where the platform exposes them. |
| link_url | string | First URL in the post, if any. |
Warehouse sync (beta)
If you’d rather have OpenPost push rows straight to BigQuery, Snowflake, or Postgres on a schedule, reach out to support — we have a closed beta running. The sync uses the same data model as the CSV exports.