How to export your data from Heap

Heap's documented export paths are Heap Connect warehouse sync, which depends on your plan, and a one-time JSON export requested from Heap support. Your plan's data history limit decides how much history is left to export.

On this page

What you can export from Heap, and what you cannot

A team that must get behavioral data out of Heap before a renewal or cutover has two documented paths. The first is Heap Connect, which syncs behavioral data to Amazon Redshift, Google BigQuery, Snowflake or Amazon S3, including historical events. The second is a one-time JSON export that Heap support provides on a paid plan. A chart view CSV is not a migration export, because it does not contain the raw event data needed to rebuild users and events elsewhere. Heap Connect is also not available on the Free or Growth plans, is an add-on on Pro, and is included on Premier, so the plan you hold decides which path is open to you before any technical work begins.

Data history limits then cap what remains to export. Heap keeps six months of data history on Free and twelve months on Growth, so events older than that window are not available to export on those plans. Confirm the history window on your own contract and ask Heap in writing how far back a Heap Connect sync or JSON export can reach for your project, since a warehouse sync that starts today will not recover events already outside the window. Record the earliest event date you can actually retrieve and compare it with the date range your finance, product or compliance teams still need. Any gap should be documented before the cutover, because data outside the window cannot be recovered from Heap later.

Export methods, formats and limits for Heap data

This table compares each export path Heap documents, along with the data history limits that cap what remains to export. Read each row against your current Heap plan, because the availability of Heap Connect and the one-time JSON export depends on the tier you hold. Vendor terms can change, so confirm current availability and limits with Heap before planning an export.

Export pathWhat it deliversPlan availability
Heap Connect warehouse syncSyncs all behavioral data to Redshift, BigQuery, Snowflake or S3, including data captured before the connection was set upNot on Free or Growth; add-on on Pro; included on Premier
One-time JSON export from Heap supportA one-time export of raw event data requested from Heap support, usable for a migrationRequires a paid plan; confirm with Heap support whether the export covers your full history
Chart view CSV exportAggregated chart results only, not the raw event data needed for a migrationAvailable from chart views; does not replace a raw export
Data history limit on FreeSix months of data history, so older events are not available to exportFree plan
Data history limit on GrowthTwelve months of data history, so older events are not available to exportGrowth plan
Data history on Pro and PremierConfirm the retained history for your contract with Heap before planning the export windowPro and Premier; confirm terms at renewal

Why chart CSV exports are not enough for a migration

A chart view CSV export from Heap gives you the aggregated output of a report, not the raw event data you need to rebuild users, events and properties in another tool. PostHog's Heap migration guide makes this point directly: the chart view CSV does not contain the raw data needed for a migration. If your goal is to move behavioral history, a CSV exported from a chart is the wrong artifact, even though it looks like a complete table of your numbers.

The practical effect is that a CSV can serve as a reporting snapshot for finance, leadership or stakeholders who want to see what a funnel or trend looked like on a given date. It cannot preserve identities, so you lose the link between anonymous and identified users, and it cannot preserve individual event properties or the per-event history that a product analytics tool depends on. Keep one for your records if stakeholders need it, but do not count it as your migration copy.

Before your renewal or cancellation date, confirm with Heap which raw export path your plan includes, and ask for a one-time JSON export from Heap support if you are not on a plan that includes Heap Connect. Check whether the data you need falls inside your plan's data history window, because a chart CSV will not show you what has already aged out. Treat the JSON export or warehouse sync as the migration source and the chart CSV as a supplementary report.

What does not export and the workaround for each

Heap Connect is the documented path for behavioral data, but several categories of data sit outside it. The cards below cover the gaps that matter most when you plan an exit, and what to confirm with Heap or check in your own account before you depend on a single export route.

Events outside the history window

Heap keeps six months of data history on Free and twelve months on Growth, so older events are not available to export on those plans. Heap Connect syncs behavioral data to the warehouse, but events that have already aged out of the window cannot be pulled back. Before any renewal or downgrade, confirm your current plan and the oldest event you can still query, and export that history while it exists.

Chart CSV exports

The CSV export from a chart view contains aggregated results, not the raw event rows needed for a migration. A chart shows counts or conversion for the filters you set, so user-level and event-level detail is lost. Use chart exports for reporting continuity only, and request raw data through Heap Connect or the one-time JSON export instead.

Data outside Heap Connect destinations

Heap Connect syncs to Redshift, BigQuery, Snowflake or S3. If your target is another database, a self-hosted lakehouse or a different event pipeline, you need an intermediate step, such as landing files in S3 and loading them yourself. Confirm the sync format and schema with Heap in writing before you build that step.

One-time JSON export on paid plans

A one-time JSON export can be requested from Heap support on a paid plan, and PostHog's Heap guide names it as the route for a migration. Plan access is the main constraint, so check that your account is on a paid tier before the export is needed. Ask support in writing what the file covers, how large it is, and how long the download link remains available.

Definitions, identities and saved reports

Heap Connect documentation describes behavioral event data, but it does not confirm whether virtual event definitions, user identities, merge history or saved reports travel with it. Those objects are needed to rebuild funnels and user profiles in PostHog. Ask Heap to confirm in writing which objects each export route includes, and document your definitions separately before the exit starts.

The sequence for a complete export from Heap

This sequence moves behavioral data out of Heap in an order that confirms what you are entitled to export before any work starts, then proves the copy is complete and intact. The result is a verified, checksummed archive of your Heap history that you hold in your own storage.

  1. Confirm your plan and data history window

    Check your current Heap plan and the data history it includes, using Heap's pricing page and your contract. Heap keeps six months of data history on Free and twelve months on Growth, so events older than that window are not available to export on those plans. Record the earliest date you can reach and the plan that governs it. Output: a written note of the plan, the history window and the start date of the export range you need, agreed with your data owner.

  2. Choose between Heap Connect and JSON export

    Heap Connect syncs behavioral data to Redshift, BigQuery, Snowflake or S3 and can backfill history, but Heap's pricing page states it is not available on Free or Growth, is an add-on on Pro and is included on Premier. If your plan does not include it, a one-time JSON export can be requested from Heap support on a paid plan, as PostHog's Heap migration guide describes. Confirm the option with Heap in writing before you commit. Output: a decision record naming the path and the owner of the export.

  3. Set up the destination or request the JSON

    If you use Heap Connect, create the destination in Redshift, BigQuery, Snowflake or S3, grant the sync credentials write access only to a dedicated schema or bucket, and enable the sync in Heap. If you use the JSON path, submit the request to Heap support with the date range and the projects in scope, then confirm the delivery format and the delivery location. Output: a configured destination or a support ticket that names the export scope.

  4. Let the sync backfill the history

    Heap Connect syncs all behavioral data to the warehouse, including events from before the sync was enabled, according to Heap's Heap Connect page. Keep the sync running until the backfill finishes, and track its status in Heap and in your warehouse load logs. Do not change event definitions or delete properties during this window, because that alters what the backfill returns. Output: a load log that shows the backfill has completed for the full range.

  5. Compare event counts against Heap

    Pick a sample window, such as one recent week and one older week, and compare daily event counts by event type in your export with the counts in Heap's own views for the same dates. Investigate any day where the figures differ, and note whether the gap comes from time zone handling, late-arriving events or filters. Output: a reconciliation table for each sample window with the differences explained and accepted by the data owner.

  6. Check identities and user properties

    Confirm that user identifiers, session identifiers and the properties you rely on are present and populated in the export, for both recent and historical rows. Check that identity merges and aliases can be traced, because this is the field most often lost in a partial export. Sample a small set of known users and follow them across events. Output: a short checklist signed off by the analyst who owns the data model.

  7. Confirm the export covers the full range

    Compare the earliest and latest dates in the export with the range you recorded in the first step. Check that the earliest date does not stop at the edge of your Heap history window and that no period has a gap. Ask Heap to confirm in writing the history window that was exported if the boundary is unclear. Output: a coverage statement with the first and last dates and any known exclusions.

  8. Store a checksummed copy in your storage

    Copy the verified export into storage you control, such as your own object store or data warehouse account. Generate a checksum for each file or table snapshot, store the checksum list separately from the data, and restrict access to the owning team. Record the location, retention terms and the person responsible. Output: an archive manifest with checksums that you can recheck at any later point.

How the data history limit caps what is left to export

Data history limits set a ceiling on what remains exportable from Heap. On the Free plan, Heap keeps six months of data history, and on Growth it keeps twelve months, so events older than that window are not available to export on those plans. The practical point is that an export only reaches back as far as the plan's window allows, which means the history you can move to another platform shrinks every time the window rolls forward without a new export.

Before you change plans or downgrade, export the full window you need. A downgrade can shorten the history you can reach, so the time to pull data is while your current plan still covers it. Check the period your reporting, audit or product review requires, then compare it with the history window of the plan you are on today. If your plan's window is shorter than that period, the gap has to be closed through an export made now, and the Heap pricing page is the place to confirm the current window for each plan.

Do not assume that data outside the window can be recovered later. Once events fall out of the history window, they should be treated as unavailable through Heap, and no migration path in this guide restores them. Confirm the exact retention terms in writing with Heap before a renewal or plan change, and ask whether the one-time JSON export from support covers the full range you need. Record what you exported, the date range it covers and where it is stored, so that any later gap in your history is documented rather than discovered during an audit.

What to plan before the Heap contract ends

Most of the risk in leaving Heap sits in decisions made before the contract ends: which plan you are on, whether Heap Connect is included, and how far back your data reaches. Each card below is a decision or a written confirmation to obtain while you still have leverage and access.

Confirm Heap Connect coverage

Heap Connect is not available on Free or Growth, is an add-on on Pro, and is included on Premier. Check your order form or ask your account contact which plan and which add-ons are in effect, and whether Heap Connect is part of the current contract or billed separately. If it is an add-on, ask what it costs to keep it active through your final sync. Confirm which destination you would use (Redshift, BigQuery, Snowflake or S3) so the export lands where your team can read it.

Request the one-time JSON export early

PostHog's Heap migration guide notes that a one-time JSON export can be requested from Heap support on a paid plan. Ask for it while your subscription is still active rather than after cancellation, and ask Heap in writing what format, date range and delivery method it will use. Plan for the time Heap support needs to prepare the file, and keep the request ticket as a record of when you asked.

Record the history window at renewal

Heap keeps six months of data history on Free and twelve months on Growth, so older events are not available to export on those plans. Write down the history window in effect on your current plan on the day you renew or downgrade, and the date of the oldest event you can still query. Data outside that window cannot be recovered by exporting later, so this record sets the real scope of your migration.

Get export coverage and deadlines in writing

Ask Heap to confirm in writing which data is covered by the warehouse sync and the JSON export, whether historical events are included, and the last date on which an export can be requested or completed. Ask what happens to synced data and to your account after termination. Verbal answers from sales or support are hard to enforce, so treat the written reply as the reference for your project plan.

Ask Heap for its roadmap and terms

Heap agreed in 2023 to become part of Contentsquare, and Contentsquare has since merged Hotjar into its platform. The documented merger does not tell you how Heap's plans, data history limits or Heap Connect terms will change. Ask for the product roadmap, pricing changes and data handling commitments in writing, and do not assume your current terms will carry over at renewal.

Set a retention schedule for exports

Once data leaves Heap, it becomes your organization's responsibility under your own privacy and retention policies. Decide how long raw exports and warehouse copies are kept, who can access them, and where they are stored, including any personal data subject to EU rules. PostHog's Free plan includes 1-year data retention, while Pay-as-you-go includes 7-year retention, so compare these with the schedule you set for the self-hosted or cloud target.

Questions teams ask before exporting from Heap

What does it cost to export data from Heap?

The export cost has three parts: the Heap Connect add-on, the warehouse you send data to, and the people who build and check the pipeline. Heap does not publish Heap Connect pricing on its pricing page, so you need to ask Heap for a quote tied to your plan and data volume. Heap Connect is not available on Free or Growth, is an add-on on Pro, and is included on Premier, so the plan you hold changes the answer. Warehouse storage and compute are billed by your cloud provider (Redshift, BigQuery, Snowflake or S3) and recur for as long as you keep the data there. Ask Heap for the add-on price, whether it is annual, and what it covers, then estimate warehouse costs with your provider using your event volume.

How long does a Heap data export take?

Duration depends on how much history you need, how quickly the destination is ready, and how much checking you do before cutover. Heap Connect syncs behavioral data to the warehouse and can backfill historical data, so the volume of events you keep is the main driver of sync time. Setting up the destination, including permissions, schemas and network access, is often the slowest step in a first export. Verification scope also matters: comparing event counts for a few key events takes far less time than reconciling every table and user record. Ask Heap and your engineering team to confirm the expected sync time for your data volume before you set a cutover date.

Can our own team export Heap data without outside help?

Yes, a team can run the export itself if it has warehouse administration and data engineering skills and access to the Heap project. The work includes configuring Heap Connect, creating the destination, checking that events and user properties arrive as expected, and writing queries that rebuild the data for the new platform. The main limit is the plan requirement: Heap Connect is not included on Free or Growth, so a team on those plans cannot use the warehouse sync at all. On those plans, the one-time JSON export from Heap support is the other route, and it requires a paid plan as well, so confirm eligibility with Heap before planning. Teams without warehouse experience should budget for an implementation partner or staff training.

What do we need to provide for a Heap export project?

A Heap export needs four inputs from your organization before work starts. First, admin access to the Heap project and a decision on which plan covers Heap Connect or the one-time export. Second, a destination you control, such as a Redshift cluster, BigQuery dataset, Snowflake account or S3 bucket, with credentials and network access set up. Third, a list of the events, properties and users that matter for migration, along with any data retention or privacy rules that limit what can be copied. Fourth, a named owner who makes decisions on scope, approves the cutover and signs off the verification results. Engagements are usually fixed-scope, so write these inputs and deliverables into the agreed scope before work begins.

Can PostHog import our data directly from Heap?

PostHog does not document a managed, direct import from Heap. Its documented path is a scripted migration: you export data through Heap Connect into a warehouse, query the per-event tables, convert events and users into PostHog's format, and send them to PostHog. This differs from the managed import PostHog offers for Mixpanel and Amplitude, which pulls historical events through API credentials or JSONL files in an S3 bucket. Because the Heap path is scripted, the team or its partner writes and tests the conversion logic, including identity aliasing. Confirm the current steps in PostHog's Heap migration guide before you commit to a plan.

Can we delete selected events after importing them into PostHog?

PostHog's migration documentation says there is no way to selectively delete event data once it has been imported. That means a bad import or a batch containing data you should not keep cannot be removed event by event. Because of this, validate the conversion script against a small sample and confirm event counts before running a full import. Also check whether any imported data falls under your retention or privacy rules, since PostHog's plan retention settings apply to what is stored. Ask PostHog to confirm the current deletion options for your hosting choice, whether PostHog Cloud or a self-hosted deployment, before the import starts.

Next steps: confirm your plan and export window first

Start by confirming which Heap plan your account is on, because that single fact decides which export paths are open to you. Pull the current plan from your Heap contract or account administrator, then check the Heap pricing page for what that plan includes. Heap Connect is not available on Free or Growth, is an add-on on Pro and is included on Premier, so an account on Pro should also confirm in writing whether the add-on is active. Ask Heap to confirm the entitlement in the order form or renewal terms, not only in the admin console screens your team happens to see.

Next, measure how much history falls inside your window. Heap keeps six months of data history on Free and twelve months on Growth, so events older than that are not available to export on those plans. For each plan, note the earliest date you need for your analysis, compare it with the retention window, and list the events and properties that carry your core funnels and retention reports. If the window is shorter than your reporting needs, request the one-time JSON export from Heap support early, since that request is only available on a paid plan and depends on what Heap can still retrieve. Confirm with Heap what the export will contain before you rely on it.

With the plan and window confirmed, choose the next page to read. If you are ready to move data, the Migrate from Heap to PostHog guide walks through Heap Connect or the JSON export, per-event tables and identity aliasing. If you still need to decide whether to leave, the Heap cost comparison covers the add-on, the data history you would pay to extend and the self-hosted infrastructure, support and migration work. Treat either page as a planning aid: a successful export depends on your plan, your warehouse setup and your own event schema, and the outcome should be validated with a test export before any cutover.

How DeployOpen scopes and delivers a Heap data exit

DeployOpen plans and delivers the export of Heap behavioral data as a fixed-scope engagement inside your own infrastructure. We start with what your Heap plan can actually return, then build, document and hand over a tested export path that your team can run and keep.

How we scope

  • Confirm your Heap plan, whether Heap Connect is active, and which warehouse or S3 target you use.
  • Record the data history window your plan retains, so the written scope states what can and cannot be exported.
  • Agree in writing whether the export covers Heap Connect sync, a one-time JSON export from Heap support, or both.

How we build

  • Set up the export path in your own cloud account, data center or air-gapped network, with access limited to named staff.
  • Test a sample export end to end, checking event counts, user identities and timestamps against the source before full transfer.
  • Document field mappings and known gaps, such as data that falls outside the history window or chart-level CSV limits.

How we hand over

  • Deliver the exported data, scripts and runbook in the locations and formats agreed in the written scope.
  • Walk your engineers and analysts through the handover so they can re-run or verify the export on their own.
  • Provide a record of what was exported, when, and from which Heap plan, for your compliance and records files.

How we support

  • Engagements are fixed-scope, and ongoing support, upgrades and continuous testing are available as a retainer.
  • Ask for a written quote that lists scope, deliverables and timelines. DeployOpen does not publish a price list.
  • Confirm with your legal and privacy teams which retention and transfer obligations apply to the exported data before the export starts.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.