Bubble does not offer true source code export, but you can export your app data via CSV, duplicate your app for backup, and use the Bubble API to extract database records. This tutorial walks through every available export option so you can back up your work or prepare for migration.
Overview: Exporting Your Bubble App
This tutorial covers every method for getting your data and app structure out of Bubble. Whether you need a simple backup, want to migrate data to another platform, or are evaluating your options for long-term portability, you will learn exactly what Bubble allows you to export and how to do it step by step. This guide is for non-technical founders and builders who want to safeguard their work.
Prerequisites
- A Bubble account with at least one app
- Data in your app's database that you want to export
- Basic understanding of Bubble's Data tab
- A spreadsheet application (Google Sheets or Excel) for opening CSV files
Step-by-step guide
Export your database records as CSV
Export your database records as CSV
Navigate to your Bubble editor and click the Data tab in the left sidebar. Select the App data sub-tab. You will see a list of your Data Types on the left. Click the Data Type you want to export. In the upper-right area of the data table, click the Export button. Bubble will generate a CSV file containing all records for that Data Type. Repeat this for each Data Type you need. Note that linked records export as Unique IDs, not the full related data.
Pro tip: Export all Data Types before making major changes, so you always have a rollback point in spreadsheet form.
Expected result: A downloaded CSV file for each Data Type containing all records and field values.
Duplicate your app as a full backup
Duplicate your app as a full backup
Go to your Bubble dashboard at bubble.io/home. Find the app you want to back up. Click the three-dot menu icon on the app card and select Copy app. Give the copy a descriptive name like MyApp-Backup-2026-03. Bubble will clone the entire app including all pages, workflows, data types, styles, and plugins. Note that live database data is NOT copied — only the app structure.
Pro tip: Create a dated backup copy before every major deployment or redesign.
Expected result: A new app appears in your dashboard that is an exact copy of your app's structure, without live data.
Enable the Data API for programmatic export
Enable the Data API for programmatic export
In your Bubble editor, go to Settings in the left sidebar, then click the API tab. Check the box labeled Enable Data API. Below that, you will see a list of your Data Types with checkboxes. Enable the ones you want to access via API. Each enabled Data Type gets a REST endpoint at https://yourapp.bubbleapps.io/api/1.1/obj/datatype. You can use this endpoint from tools like Postman or a simple script to pull all records as JSON.
1GET https://yourapp.bubbleapps.io/api/1.1/obj/user2Authorization: Bearer YOUR_API_TOKEN34Response:5{6 "response": {7 "cursor": 0,8 "results": [9 {10 "_id": "1234567890x1234",11 "Created Date": "2026-01-15T10:30:00.000Z",12 "email": "user@example.com"13 }14 ],15 "remaining": 0,16 "count": 117 }18}Pro tip: The Data API returns a maximum of 100 records per request. Use the cursor parameter to paginate through large datasets.
Expected result: Your Data API is live and returning JSON records when you hit the endpoint.
Download uploaded files from the File Manager
Download uploaded files from the File Manager
In the Data tab, click File manager in the left sub-menu. This shows all files uploaded to your app including images, documents, and videos. You can click each file to open it in a new tab and save it. For bulk downloads, the file URLs follow a predictable pattern. Extract them from your CSV export — any Image or File field contains the full URL — and use a browser download manager to save them all at once.
Expected result: All uploaded files are saved locally on your computer.
Document your workflows and page structure
Document your workflows and page structure
Since Bubble does not export workflows or page logic as code, you should document them manually. Go to the Workflow tab and screenshot or note down each workflow, its trigger, and its actions. Use the Search tool (magnifying glass icon in the top toolbar) to find all references to key Data Types and elements. This documentation is essential if you ever need to rebuild the app on another platform.
Pro tip: Use the Element Tree in the Design tab to map out your page structure — it shows every element in a nested hierarchy.
Expected result: A written or visual record of your app's logic, page structure, and key workflows.
Complete working example
1EXPORT WORKFLOW SUMMARY2======================34Step 1: CSV Export5 - Data tab → App data → Select Data Type → Export6 - Repeat for each Data Type7 - Save all CSVs in a dated folder89Step 2: App Duplication10 - Dashboard → App card → Three-dot menu → Copy app11 - Name: {AppName}-Backup-{Date}1213Step 3: Data API Setup14 - Settings → API → Enable Data API15 - Check each Data Type to expose16 - Endpoint: https://{app}.bubbleapps.io/api/1.1/obj/{type}17 - Auth: Bearer token from Settings → API → API Token18 - Paginate with ?cursor=0 (100 records per page)1920Step 4: File Download21 - Data tab → File manager → Open and save each file22 - OR extract file URLs from CSV exports2324Step 5: Documentation25 - Workflow tab → Document each workflow26 - Design tab → Element Tree → Map page structure27 - Settings → Note all plugin configurations2829IMPORTANT LIMITATIONS:30- Bubble does NOT export source code31- Workflows and page logic cannot be exported32- Live database data is NOT included in app duplication33- Linked records export as Unique IDs in CSVCommon mistakes when exporting a Bubble app
Why it's a problem: Assuming app duplication includes live data
How to avoid: Always export your database as CSV separately before duplicating, so you have both structure and data backed up
Why it's a problem: Forgetting to export related Data Types
How to avoid: Export every Data Type in your app, not just the main ones, so you can reconstruct relationships later
Why it's a problem: Not paginating API exports
How to avoid: Use the cursor parameter to paginate: start at cursor=0, then use the returned cursor value for the next request
Best practices
- Create a dated backup copy of your app before every major update or deployment
- Export all Data Types as CSV at least monthly for data redundancy
- Store backup CSVs and file downloads in a cloud storage service like Google Drive
- Enable the Data API early so you have a programmatic export path ready
- Document your workflows and page structure as you build, not just when exporting
- Test your CSV imports in a spreadsheet to verify all data exported correctly
- Keep a changelog of major app changes to make future migration easier
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I have a Bubble.io app and I need to export all my data for backup. My app has these Data Types: [list your types]. Can you help me write a step-by-step export plan including CSV downloads, API extraction, and documentation of my workflows?
Help me create a backup plan for my app. I need to export all database records and document all my workflows. What is the best approach for backing up everything in my Bubble app?
Frequently asked questions
Can I export Bubble app source code?
No. Bubble does not provide source code export. Your app logic, workflows, and page designs exist only within the Bubble platform. You can export database data via CSV or the Data API, but not the application code itself.
Does duplicating an app copy the live database?
No. Duplicating an app copies the structure — pages, workflows, data types, styles, and plugins — but not the live database records. Export your data separately via CSV.
How many records can I export via the Data API at once?
The Data API returns a maximum of 100 records per request. Use the cursor parameter to paginate through larger datasets by setting cursor to the value returned in the previous response.
Can I import my exported CSV data into a new Bubble app?
Yes. In the new app, go to Data tab, App data, select the Data Type, and click the Upload button. Map the CSV columns to the correct fields. Linked records must be re-linked using Unique IDs.
Is there a way to automate regular backups of my Bubble app?
You can schedule a backend API workflow that calls the Data API on a recurring basis and sends the data to an external service. For complex backup needs, RapidDev can help set up automated export pipelines that run on a schedule.
What happens to my files when I export?
File and image fields in CSV exports contain the full URL to the hosted file. You need to download each file separately. The File Manager in the Data tab lets you view and download files one at a time.
Can I transfer my Bubble app to another account?
Yes. Go to Settings, then the General tab, and use the Transfer app option. The recipient must accept the transfer. This moves the entire app including live data.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation