
Bubble Migration & Switching Guide 2026
Bubble imports data by CSV or Data API and exports it as CSV, JSON or NDJSON, but you cannot import a site or export the app itself. Leaving means a full rebuild.
Bubble Migration verdict
Bubble migration is a one-way street on data and a dead end on the app.
You can import records, by CSV one type at a time or the Data API, and export them back out as CSV, JSON or NDJSON. But you cannot import an existing site or export your app's logic or source code.
Bubble suits teams committed to building and staying on it who need to load data in and keep a clean data-export path out. It is less ideal if you need to move an existing app in, or want the option to take the built application off Bubble later.
- There is no way to import an existing external site or app into Bubble, since only data moves in, via CSV or the Data API.
- CSV import is one data type at a time, fields must already exist, and system fields like Unique ID, dates, Creator and Slug cannot be imported. You can export your data, as CSV, JSON or NDJSON, or the Data API, but not the application, its logic or any source code.
- Bubble states migrating an app away from its hosting is not possible, so leaving Bubble means a full rebuild.
- Import in
- Data only (CSV / Data API)
- Site/app import
- Not supported
- Data export
- CSV / JSON / NDJSON
- Code / app export
- None
- Lock-in
- Heavy (rebuild to leave)
This page covers importing into Bubble and switching away. SEO output and pricing live on their own pages.
What moves into Bubble, and can you leave?
Pick what you are bringing to Bubble, and see exactly what transfers.
- Database records (CSV): via CSV or API, one data type at a time; headers must match existing fields.
- Records via Data API: via CSV or API, create/edit programmatically; good for relations.
- System fields (ID, dates, Creator, Slug): does not transfer, managed by Bubble, not importable.
- Existing site or app (pages/logic): does not transfer, no import; rebuild in the editor.
- Relations between types: manual rebuild, rebuild with the Data API after import.
- 1Model data types and fields, fields must exist before import.
- 2Import records by CSV, one type per run.
- 3Rebuild pages, workflows, logic, manual, no import.
- 4Wire relations via Data API, programmatic.
- 5Cut over domain (A records), paid plan, up to 24-48h.
Every row is a documented import/export capability from Bubble and the source platforms, not an effort estimate.
Bubble migration configuration
Upload one data type at a time under Data, App data. Column headers must match fields that already exist on the type; system fields (Unique ID, Creator, dates, Slug) are managed by Bubble and are not imported. Supported delimiters are comma, semicolon, tab and pipe.
name,email,plan,signup_source
Ada Lovelace,[email protected],Pro,referral
Alan Turing,[email protected],Free,organic
# one data type per upload; headers must match existing fields;
# Unique ID / Creator / Created Date / Modified Date / Slug are NOT importableEnable the Data API under Settings, API, then POST to the data endpoint for a type to create records programmatically. Use it to wire relations after a CSV import or to stream data in from another system. Requests are authenticated with a private API key as a bearer token.
curl -X POST "https://my-app.bubbleapps.io/api/1.1/obj/customer" \
-H "Authorization: Bearer YOUR_PRIVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Ada Lovelace","email":"[email protected]","plan":"Pro"}'
# returns the new thing's unique id; use it to link related recordsUnder Data, App data, select a type, set up a view, click Export and pick CSV, JSON or NDJSON; Bubble emails a download link when the export is ready. The Data API also reads records out programmatically. This is the portability you keep, your data, not the app.
# UI: Data > App data > (pick type) > Export > CSV | JSON | NDJSON
# Bubble emails a link when the export is done.
# Or read out programmatically via the Data API:
curl -H "Authorization: Bearer YOUR_PRIVATE_API_KEY" \
"https://my-app.bubbleapps.io/api/1.1/obj/customer?limit=100&cursor=0"What moves into Bubble
| Asset | Into Bubble | Detail | Source |
|---|---|---|---|
| External site or app | Not supported | No tool imports or converts an existing site/app; rebuild it in Bubble | — |
| Database records (CSV) | Supported | Built-in CSV uploader maps columns to fields; delimiters , ; tab | | — |
| One data type per run | Required | Upload a single type at a time; fields must already exist with matching names | — |
| System fields | Cannot import | Unique ID, Creator, Created/Modified Date and Slug are set by Bubble | — |
| Programmatic import | Data API | Accept incoming requests to create/edit records; good for relations and automation | — |
| Import validation | Built-in | Field-mapping and a validation step before commit; delimiters comma, semicolon, tab, pipe | — |
Import-to-target mapping
| Source element | Lands in Bubble as | Caveat | Source |
|---|---|---|---|
| CSV column | Field on one data type | Field must exist first; matching column names auto-map; cannot create fields on import | — |
| Multiple data types | Multiple separate runs | Only one data type per upload | — |
| Unique ID / Creator / dates / Slug | Not imported | Auto-created and managed by Bubble | — |
| Relations between types | Rebuild via Data API | Link records after import using the Data API | — |
| Large imports | Queued | Importer shares the API-workflow scheduler; can sit at 0% until its turn | — |
| Pages, workflows, logic | Rebuilt by hand | No import path; this is the bulk of the work | — |
Bubble migration timeline and rollout
| Phase | What happens | Effort | Source |
|---|---|---|---|
| 1. Model data types | Create types and fields in Bubble first | Medium, fields must pre-exist to import | — |
| 2. Import records | CSV uploader, one type per run | Low per type, but one at a time and queued | — |
| 3. Rebuild app | Pages, workflows and logic built by hand | High, no import for app structure | — |
| 4. Wire relations | Data API links records and automates | Medium, programmatic | — |
| 5. Domain cutover | Point A records to Bubble (Cloudflare IPs) | Low, up to 24-48h to propagate | — |
What to verify before you commit to Bubble
- You can take your data with you, in CSV, JSON or NDJSON, or through the Data API, so the records you build up are never trapped
- You cannot take the application: Bubble runs on a proprietary engine and states plainly that moving an app off its hosting is not possible, so there is no source-code or logic export
- Because the app cannot leave, switching platforms means rebuilding the pages, workflows and logic from scratch elsewhere; only the data carries over
- Even the domain move in is gated: custom domains require a paid plan and point apex A records at Cloudflare IPs, and propagation can take up to 24-48 hours
Bubble Migration FAQ
Can I import an existing website or app into Bubble?
No. Bubble has no tool to import or convert an existing site or app's pages, design or logic. Only database records come in, through the built-in CSV importer, one data type at a time, or the Data API. The app itself, pages, workflows and logic, is rebuilt by hand in the Bubble editor.
How do I import data into Bubble?
Use the CSV uploader under Data, App data: one data type at a time, with column headers that match fields that already exist on the type. You cannot create fields during import. System fields like Unique ID, Creator, the dates and Slug are managed by Bubble and are not imported. The Data API handles programmatic imports and relations.
Can I get my data back out of Bubble?
Yes. Under Data, App data you can export any data type to CSV, JSON or Newline-Delimited JSON, and Bubble emails a download link when it is ready. The Data API also reads records out programmatically, so your data is portable even though the app is not.
Can I export my Bubble app or its source code?
No. Bubble runs on a proprietary client-plus-server engine and states that migrating an app away from its hosting is not possible. There is no source-code, logic or app export, so you cannot self-host a Bubble app or move it to another platform.
What does it take to leave Bubble?
A full rebuild. You can export your data, via CSV, JSON, NDJSON or the Data API. But because the application cannot be exported, you would recreate the pages, workflows and business logic from scratch on another platform. That lock-in is the single most important thing to weigh before committing.
Sources & verification
| Source | What was checked | Last checked |
|---|---|---|
| Bubble Official | Official product page | July 10, 2026 |
| Bubble Export Import Data Exporting Data | Export Import Data Exporting Data | July 10, 2026 |
| Bubble Export Import Data Importing Data Csv | Export Import Data Importing Data Csv | July 10, 2026 |
| Bubble Hosting And Scaling How Bubble Hosting Works | Hosting And Scaling How Bubble Hosting Works | July 10, 2026 |
| Bubble Web App Custom Domain And Dns | Web App Custom Domain And DNS | July 10, 2026 |
Every fact on this Bubble page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.
Explore Bubble
Every page on Bubble in one place, you are on migration.
Snapshot, score and verdict
You are here
SEO output and page performance of sites it builds
Every tier and the entry price
Compared and ranked vs peers
Price and feature change history
Browse the full Website Builders category
