Skip to content

How to export data from Notion (pages, databases & full workspace)

Learn the exact steps to export your Notion pages, databases, and entire workspace. Discover the best formats for migration, how to handle CSV relation IDs, and troubleshooting tips for common export failures.

Raaj Raaj · · 13 min read
How to export data from Notion (pages, databases & full workspace)
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,500+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

TL;DR

From any Notion page click the ••• (three-dot) menu → Export → choose PDF, HTML, or Markdown & CSV. To export your whole workspace go to Settings & members → Settings → Export all workspace content and download the ZIP file emailed to you. For programmatic or recurring exports, use the Notion API.

Quick steps:

  1. Open the Notion page or database you want to export (desktop or browser).
  2. Click the three-dot menu (•••) in the top-right corner.
  3. Select Export.
  4. Choose a Format: PDF, HTML, or Markdown & CSV.
  5. Choose whether to include subpages and files/images.
  6. Click Export → Notion prepares a ZIP file; download it from your browser or the link Notion emails you.
  7. For a full workspace export: open Settings & members → Settings → Export all workspace content, select the format/options, then click Export (you'll receive a ZIP link by email).

Quick reference card

Need a fast breakdown of which format to pick? Here is a quick reference guide to help you decide the best export method for your needs.

Format Best for Quick tip
CSV Database migrations Export current view; relations export as IDs.
HTML Offline viewing Creates an index.html sitemap.
PDF Printing & sharing Use horizontal dividers (---) for page breaks.

Which export format should I choose?

Markdown & CSV

This format preserves your plain text in Markdown and converts your databases into CSV files. It is the absolute best choice for data migrations and programmatic backups. Note that relation properties export as internal Notion UUIDs (e.g., a1b2c3d4-1234-5678-abcd-ef1234567890) rather than plain text. Rollups export as static comma-separated strings. Rich text formatting (like bold or italics) inside database text properties is stripped to plain text in the CSV, while page bodies retain standard Markdown syntax. Attachments are saved in a separate /assets directory with sanitized filenames (spaces and special characters replaced with underscores, truncated to avoid OS path-length limits). Use this when moving data to a relational database or another CMS.

HTML

HTML export is ideal for local viewing and archiving your workspace. It preserves the visual structure of your pages better than Markdown by generating static HTML files with embedded CSS. When you export an entire workspace as HTML, Notion generates a handy index.html sitemap, allowing you to click and navigate through your offline pages just like a real website. Use this for offline read-only backups.

PDF

The PDF option is best suited for printing documents or sharing static pages with external clients. While great for visual sharing, it has limitations regarding layout control. Wide database tables will be aggressively truncated or scaled down to fit the page width. You might encounter awkward page breaks, which can sometimes be mitigated by adding extra empty lines or using specialized third-party formatting tools. Use this for final reports or invoices.

Native export vs. Notion API

Native export (the UI-based ZIP download) is a snapshot: no authentication required beyond being logged in, captures the current state, and produces flat files. It works well for one-off backups but has clear limitations — no version history, no granular block-level access, and no way to schedule recurring exports.

The Notion API gives you authenticated, paginated access to your workspace at the block level. You can retrieve individual blocks (GET /v1/blocks/{block_id}/children), query databases with filters (POST /v1/databases/{database_id}/query), and fetch page properties individually. This means you can build scheduled backup scripts, preserve richer structural data, and selectively export only what changed.

Dimension Native export (UI) Notion API
Auth required Logged-in user Integration token (internal or public)
Granularity Full page/workspace snapshot Block-level, property-level
Scheduling Manual only Scriptable (cron, Zapier, etc.)
Version history Not included Not directly, but you can diff snapshots over time
Relations Exported as UUIDs Returns page IDs; you resolve titles via additional API calls
Formulas Evaluated output only Evaluated output only (formula source not exposed)
Rate limits None (but large workspaces can time out) 3 requests/second per integration
Output format ZIP (Markdown, CSV, HTML, or PDF) JSON

For most one-off exports and migrations, native export is sufficient. Use the API when you need recurring backups, selective extraction, or integration into a pipeline.

Export a single page (desktop & mobile) — step-by-step

Exporting a single page varies slightly depending on whether you are using a computer or a smartphone. Here is how to navigate the UI differences.

Desktop steps:

  1. Open the page.
  2. Click ••• (top right).
  3. Select Export.
  4. Choose format (Markdown & CSV, HTML, or PDF).
  5. Select include subpages? (Toggle on if needed).
  6. Click Export.

! Export menu on a Notion page (click ••• → Export).

When the export finishes, your ZIP file will typically contain the main text file, an assets folder, and nested subpages.

Mobile steps:

  1. Tap ••• in the top right.
  2. Scroll down and tap Export.
  3. Choose format.

Note that some granular options, like specific subpage inclusions or enterprise-level full workspace exports, are only accessible via the desktop app or web browser.

Example ZIP contents for a page export:

  • Index.md (Your main page text)
  • Subpage_Name.md (Nested page content)
  • Database_Name.csv (Any inline tables)
  • assets/ (Folder containing uploaded images and PDFs)

Export a database to CSV

When exporting a Notion database, the resulting CSV file will directly reflect your current view — meaning active filters, hidden properties, and sorting are all applied to the downloaded data. If a property column is hidden in that view, it will not appear in the CSV. Grouped views export as a flat table; the grouping headers are not preserved.

Exact steps:

  1. Open database.
  2. Click the three-dot menu.
  3. Select Export.
  4. Choose Markdown & CSV.
  5. Click Export.

! FiDatabase export dialog: select Markdown & CSV to export tables.

Warning

Relations export as internal UUIDs, not page titles. Add a formula column with prop("Name") referencing the related item's title before exporting, or prepare a separate ID→name mapping file.

Sample CSV Snippet:

id,Name,Status,Due Date
a1b2c3d4-1234-5678-abcd-ef1234567890,Launch plan,In progress,2025-07-15
b2c3d4e5-2345-6789-bcde-f12345678901,Beta feedback,To do,2025-08-01
c3d4e5f6-3456-789a-cdef-123456789012,Release notes,Done,2025-06-30

Complete property-type export reference

Notion has over 20 property types. Here is how each one behaves when exported to CSV:

Property type CSV exported value Notes
Title Text Primary column, always included
Rich text Plain text Bold, italic, and other inline formatting stripped
Number Numeric string Exported as-is (e.g., 42, 3.14)
Select Option name Single string (e.g., In progress)
Multi-select Comma-separated names e.g., planning, launch
Status Option name e.g., Done, In progress
Date ISO 8601 string e.g., 2025-07-15 or date range 2025-07-15 → 2025-07-20
Person / People Email address(es) Comma-separated if multiple (e.g., alice@example.com, bob@example.com)
Checkbox true / false Boolean string
URL Full URL string e.g., https://example.com
Email Email string e.g., alice@example.com
Phone Phone string Exported as entered (e.g., +1-555-0100)
Relation UUID(s) Internal Notion page IDs, semicolon-separated if multiple
Rollup Static evaluated string Comma-separated values; rollup configuration is lost
Formula Evaluated output string Formula logic is lost; only the computed result remains
Files & media File URLs Links to Notion-hosted files; downloaded copies go to /assets
Created time ISO 8601 timestamp e.g., 2025-06-15T10:30:00.000Z
Created by Email or name The user who created the row
Last edited time ISO 8601 timestamp e.g., 2025-07-01T14:22:00.000Z
Last edited by Email or name The user who last modified the row
Unique ID Auto-incremented string e.g., PRJ-001
Verification Status string Verification state if configured

Export the entire workspace

Backing up your entire Notion environment is straightforward but requires workspace owner permissions. Navigate to Settings & members → Settings → Export all workspace content. From there, choose your format (Markdown/CSV or HTML). Note that exporting an entire workspace as a PDF is restricted to Enterprise plans. Decide whether to include files and subpages.

Once you click Export, Notion will process the request. You will receive an email containing a secure download link that expires in 7 days. Depending on the size of your workspace, this process can take anywhere from a few minutes to several hours.

Plan-tier export differences

Plan Page/database export Workspace export PDF workspace export API access
Free ✅ All formats ✅ Markdown/CSV, HTML ✅ (internal integrations)
Plus ✅ All formats ✅ Markdown/CSV, HTML
Business ✅ All formats ✅ Markdown/CSV, HTML
Enterprise ✅ All formats ✅ Markdown/CSV, HTML

Enterprise admins can also disable exports workspace-wide via the security settings. On all plans, the "Disable exports" toggle in workspace settings can block members from exporting.

Pre-export checklist:

  • Check admin permissions (only workspace owners can do this).
  • Ensure "Disable exports" is toggled off in security settings.
  • Check workspace size to anticipate processing time.
  • Remove very large, unnecessary video files to speed up the export.
  • Notify users to pause editing, as the export captures a snapshot in time.

What's NOT preserved & common gotchas

Native Notion exports are great for backups, but they aren't perfect. Here is what is lost or altered during the process:

  • Relational links (UUIDs): Linked databases lose their human-readable connections and export as raw UUIDs. Workaround: Create a formula column prop("Name") to extract the text before exporting.
  • Page history and versions: Native exports only capture the current state of the page. Previous versions are completely dropped. Workaround: Use the Notion API to programmatically fetch and diff blocks over time if versioning is required.
  • Rollups: Exported as static text strings representing their current evaluated state. You cannot reverse-engineer the rollup configuration from the export.
  • Live embeds: Embedded Google Drive files, Figma boards, or tweets will not be interactive. Workaround: Export these assets natively from their source platforms.
  • Board/timeline layout fidelity: Visual Kanban boards and timelines revert to standard flat tables in CSV format. Workaround: Use HTML export if visual structure is more important than data manipulation.
  • Complex formulas: The underlying formula logic is lost, leaving only the static calculated value as a string. Workaround: Document your complex formulas in a separate text block if you need to rebuild them later.
  • Permissions and sharing settings: Page-level access rights and guest permissions are completely stripped. Workaround: Keep a separate manual log of your access control matrix.
  • Comments: Resolved comments and specific thread histories may be missing or difficult to parse from the export. Workaround: Use the Notion API's GET /v1/comments endpoint to retrieve comment threads programmatically before exporting.

Export troubleshooting

When exports fail or produce unexpected results, here are the most common issues and how to resolve them:

Symptom Likely cause Fix
Export email never arrives Large workspace still processing, or email landed in spam Wait up to several hours for large workspaces. Check spam/junk folders. Re-trigger the export if nothing arrives after 24 hours.
Download link returns 404 or "expired" The 7-day download window has passed Re-export. Download links expire exactly 7 days after generation.
ZIP file is empty or contains only folder structure Export timed out mid-process on a very large workspace Break the export into smaller chunks: export individual top-level pages or databases rather than the entire workspace at once.
Assets folder is empty (images missing) "Include files" toggle was off, or files were externally linked (not uploaded to Notion) Re-export with the "Include files" toggle on. Externally linked files (e.g., URLs to Google Drive) are not downloaded — only files uploaded directly to Notion are included.
CSV opens with garbled characters Spreadsheet software defaulted to a non-UTF-8 encoding Open the file using your spreadsheet's Import function and explicitly select UTF-8 encoding. In Excel: Data → From Text/CSV → select 65001: Unicode (UTF-8).
Relation columns show UUIDs instead of names Expected behavior — relations always export as page IDs Add a formula column with prop("Name") before exporting to get human-readable values.
Markdown files have unparsed callout or toggle blocks Notion uses custom Markdown syntax not supported by standard parsers Write custom regex to convert Notion-specific blocks, or use a Notion-aware parser. Standard tools like Pandoc will not handle these.
Database export is missing rows The export reflects the current view's active filters Switch to a view with no filters applied, or create a new "All items" view before exporting.
Database export is missing columns Hidden properties in the current view are excluded from CSV Unhide all property columns in the view before exporting.

Automating and scheduling Notion exports

Native Notion export has no scheduling capability — every export is a manual action. If you need recurring backups or automated data extraction, you have several options:

Notion API + cron job: Write a script that calls the Notion API endpoints (/v1/databases/{id}/query, /v1/blocks/{id}/children) and stores the JSON output to your backup destination. Schedule it with cron (Linux/macOS), Task Scheduler (Windows), or a cloud function (AWS Lambda, Google Cloud Functions). The API rate limit is 3 requests per second per integration token, so paginate and throttle accordingly for large workspaces.

Zapier / Make (Integromat): Both platforms have Notion integrations that can trigger on database changes or run on a schedule. You can push rows to Google Sheets, Airtable, or a data warehouse on a recurring basis. This approach works well for database-level backup but does not cover full page content or nested blocks.

Third-party backup tools: Several tools (e.g., Notion Backups, Notionpack) offer automated scheduled exports of your workspace to cloud storage. These typically use the Notion API under the hood and produce Markdown or JSON snapshots on a daily or weekly cadence.

For most teams, a weekly API-based backup script is the right balance between coverage and complexity.

Post-export actions & how to prepare the files

Once your ZIP file downloads, extract it to a local folder. You will find your markdown files, CSVs, and an assets folder. If your data contains special characters or different languages, always ensure your spreadsheet software opens the CSV using UTF-8 encoding to prevent garbled text.

To open the data in Google Sheets, use File → Import → Upload, select your CSV, and choose "Detect automatically" for the separator. In Excel, use Data → From Text/CSV, select the file, and set the encoding to 65001: Unicode (UTF-8). Avoid double-clicking the CSV directly, as both applications may default to a locale-specific encoding or delimiter that corrupts the data.

If you are dealing with relational databases, you will need to map the exported UUIDs back to their corresponding names using a mapping CSV. To save massive headaches, we highly recommend adding a human_readable_title formula column in Notion before you export to avoid ID mapping complexity altogether. If you are parsing the Markdown files programmatically, note that Notion's Markdown flavor uses custom syntax for elements like callouts and toggles. Standard parsers (like Pandoc or marked) may not support these out of the box, requiring you to write custom regex to sanitize the elements before ingestion.

Post-export prep checklist:

  • Unzip the main file securely.
  • Force UTF-8 encoding in your spreadsheet tool.
  • Verify attachment folders aren't empty.
  • Spot-check relation columns for UUID vs. name values.

Downloads & examples

To make your data transition smoother, reference the sample files in the Appendix below.

  • Sample exported CSV: See Appendix — shows exactly how Notion structures its rows and columns upon export, including actual UUID formats.
  • Mapping template CSV: See Appendix — a framework to help you match relational UUIDs back to their human-readable titles.
  • Sample HTML excerpt: See Appendix Table C — a quick preview of how the index.html file organizes your workspace navigation.

Video tutorial + timestamps

Prefer a visual walkthrough? Check out this excellent tutorial breaking down the export process step-by-step.

::youtube [Video]{id="WM-iMsFdvJs"}

  • [00:15] — Navigating to the top right three-dot menu for page exports.
  • [01:10] — Selecting the correct format (Markdown vs. CSV vs. PDF).
  • [02:45] — Initiating a full workspace export from the Settings menu.

Transcript excerpt: "To get your data out, you're going to click the three dots in the top right corner. Scroll down to Export. From here, you can choose your export format. If you want to move this data to another app, Markdown and CSV is usually your best bet. Make sure to choose whether you want to include subpages..."

Appendix: sample CSV & mapping template

Table A: Format comparison

Format Best for Preserves Limitations Output example
Markdown & CSV Database migrations Text content, database rows, attachments as files Relations exported as internal IDs, and formulas as values database.csv

Table B: Property → CSV export mapping

See the Complete property-type export reference section above for the full table covering all 20+ Notion property types.

Table C: ZIP contents example

File/Folder Description
index.html Workspace sitemap / entry page
page.md Markdown for exported page
assets/ Images and uploaded files
database.csv CSV of database rows (per view)

Sample exported database CSV

id,Name,Status,Due Date,Assignee,Tags,Relation_ids
a1b2c3d4-1234-5678-abcd-ef1234567890,Launch plan,In progress,2025-07-15,alice@example.com,"planning;launch","d4e5f6a7-4567-89ab-cdef-234567890123;e5f6a7b8-5678-9abc-def0-345678901234"
b2c3d4e5-2345-6789-bcde-f12345678901,Beta feedback,To do,2025-08-01,bob@example.com,"feedback","f6a7b8c9-6789-abcd-ef01-456789012345"
c3d4e5f6-3456-789a-cdef-123456789012,Release notes,Done,2025-06-30,carol@example.com,"docs;release",""

Mapping template CSV

source_id,source_title,relation_id,relation_name
a1b2c3d4-1234-5678-abcd-ef1234567890,Launch plan,d4e5f6a7-4567-89ab-cdef-234567890123,Product Specs
a1b2c3d4-1234-5678-abcd-ef1234567890,Launch plan,e5f6a7b8-5678-9abc-def0-345678901234,Marketing Plan
b2c3d4e5-2345-6789-bcde-f12345678901,Beta feedback,f6a7b8c9-6789-abcd-ef01-456789012345,Beta Users List

Sources & references

-https://www.notion.com/help/export-your-content (Notion Help — Export your content) -https://www.notion.com/help/notion-error-messages (Notion Help — Troubleshooting) -https://developers.notion.com/reference (Notion API Reference) -https://www.youtube.com/watch?v=WM-iMsFdvJs (YouTube export tutorial) -https://www.youtube.com/watch?v=iwtjB0xmbOM&t=19 (YouTube export tutorial) -https://www.youtube.com/watch?v=E9e5ba9WdEE (YouTube export tutorial)

Frequently Asked Questions

What format should I use to export a Notion database?
Use Markdown & CSV. This exports your database rows as a CSV file and page content as Markdown. It's the best choice for data migrations and programmatic backups.
Why do relation columns show random IDs instead of names in my CSV export?
Notion exports relation properties as internal UUIDs (e.g., a1b2c3d4-1234-5678-abcd-ef1234567890), not the linked page titles. Add a formula column with prop("Name") referencing the related item's title before exporting to get human-readable values.
Can I export my entire Notion workspace as a PDF?
Full workspace PDF export is restricted to Enterprise plans only. On Free, Plus, and Business plans, you can export individual pages as PDF but must use Markdown/CSV or HTML for workspace-level exports.
How long does a Notion export download link last?
The download link Notion emails you expires after 7 days. If it expires, you need to re-trigger the export.
What is the difference between Notion's native export and the Notion API?
Native export produces a one-time ZIP snapshot via the UI — no authentication beyond login, but no scheduling or block-level access. The Notion API gives authenticated, paginated, block-level access that you can script and schedule, but outputs JSON and is rate-limited to 3 requests per second per integration.
How do I automate recurring Notion backups?
Use the Notion API with a cron job or cloud function to query databases and retrieve blocks on a schedule. Alternatively, use Zapier or Make to push database rows to Google Sheets or a data warehouse on a recurring basis.
My Notion export email never arrived. What should I do?
Check your spam/junk folder first. Large workspaces can take several hours to process. If nothing arrives after 24 hours, re-trigger the export from Settings.
Why is my exported CSV missing columns or rows?
The CSV export reflects your current database view. Hidden property columns are excluded, and active filters remove rows. Switch to a view with no filters and all columns visible before exporting.

More from our Blog

The Complete Guide to Exporting Notion Data (HTML, PDF, Markdown & API)
Notion

The Complete Guide to Exporting Notion Data (HTML, PDF, Markdown & API)

Notion allows exporting workspace data in HTML, Markdown with CSV, and PDF, but HTML is the only format that preserves page hierarchy for migrations to platforms like Confluence. For automation, the Notion API returns JSON block data instead of direct export files, requiring a translation layer and careful handling of rate limits (3 requests per second) when extracting large workspaces.

Raaj Raaj · · 9 min read
The Ultimate Guide: Migrating from Notion to Confluence (Technical & Strategic)
Notion/Confluence/Migration Guide

The Ultimate Guide: Migrating from Notion to Confluence (Technical & Strategic)

A practical guide to migrating Notion to Confluence that explains how Notion blocks map to Confluence pages and macros, highlights common migration failures such as flattened databases and broken relations, and outlines when to use native export, custom API scripts, or automated migration pipelines. The guide helps teams preserve structured data, maintain documentation integrity, and plan a reliable transition to Confluence.

Raaj Raaj · · 8 min read
Notion to SharePoint Migration: The Complete Technical Guide
Notion/SharePoint/Migration Guide

Notion to SharePoint Migration: The Complete Technical Guide

Migrating between Notion and SharePoint requires custom extraction and transformation. Learn how to map blocks to modern pages, translate databases to lists, and handle complex permission models in both directions.

Raaj Raaj · · 18 min read