How to export your data and code from a Base44 app
Export every Base44 table as CSV, collect uploaded files and users, and get the code through GitHub sync or the CLI, with checks so nothing is lost.
Leer en español →
You can get your data out of Base44 table by table: on the Data page of your app's dashboard, open each table's More actions menu and choose Export to download it as CSV. Uploaded files are stored separately from the tables, so the CSV holds their addresses, not the files themselves, and app users are kept apart from your tables too. For the code, connect the app to GitHub (Builder plan or higher) or use the Base44 CLI. Do all of it before you need it, and check the exports while the original is still there to compare against.
This guide lists every piece worth exporting, how to get each one, and how to confirm the copy is complete.
What should I export from a Base44 app?
Make a list first, because "the data" is really several things:
| What | Where it lives | How to get it |
|---|---|---|
| Table records | Base44 tables (entities) | CSV export per table |
| Uploaded files | Base44 file storage | Download using the addresses in your records |
| App users | Kept separately from tables | User list in the dashboard or the Apps API |
| Front-end code | Base44 project | GitHub sync, CLI or source export |
| Backend functions | Base44 backend | GitHub sync or CLI |
| Table structure | Entity schemas | GitHub sync (with limits) or eject |
| Payments | Your payment provider | The provider's dashboard, or Base44's payment export |
How do I export a table as CSV?
- Click Dashboard in the app editor.
- Click Data.
- On a table's card, open the More actions menu and click Export.
If a search or filter is active, the option reads Export filtered records and only exports the matching rows. Clear filters first when you want everything.
Repeat this for every table. There's no single "export all" in the dashboard, so tick each table off your list as you go. Name the files with the table name and the date, for example orders-2026-10-20.csv.
What should I check in each CSV?
- Row count. Compare it with what the dashboard shows for that table.
- IDs. Every record should have its ID. Reference fields point to other records by ID, so without them the links between tables are lost.
- Dates. Note which time zone they're in before importing them anywhere else.
- Object fields. Fields that hold structured JSON can be awkward in spreadsheets. Open the file in a text editor to see the raw value.
- Hidden columns. Every table has Created, Last updated and Created by columns that are hidden in the view until you turn them on. Check that your export has the ones you need.
How do I get uploaded files out?
Base44's docs explain that when a record points at an uploaded file, such as a photo, the record stores the file's address rather than the file. The file is stored separately.
So exporting the table gives you a column of addresses. To keep the files, download each one from its address and save it with a name you can map back to its record, for example the record ID plus the original file extension. Private files may need an authenticated request, so test a few before scripting the rest. If you're moving to a new storage service, upload the files there and update the addresses in your data during import.
What about my users and their logins?
App users aren't part of your tables, and Base44's backups leave them out entirely. You can see them in the dashboard, and the Base44 Apps API includes endpoints to list an app's users.
What you shouldn't expect to take with you is anyone's password. Plan for users to set a new password or sign in with a link on the new system the first time, and keep each user's ID or email so their records still belong to them.
How do I get the code?
Option 1: GitHub two-way sync
On the Builder plan or higher:
- Click Dashboard in the app editor.
- Click the GitHub icon at the top right, then Connect to GitHub.
- Authorize Base44 Builder, choose the account or organization and the repositories it can access, and install it.
- Create the repository for your app.
From then on, changes sync automatically and the repository's default branch must be main. Two warnings from Base44's docs: after connecting, you can't use Version History to restore versions from before the connection, and with two-way sync your entity definitions stay in Base44 rather than in the repository.
Option 2: The Base44 CLI
The CLI (npm install -g base44@latest, then base44 login) gives you more control:
base44 ejectcreates a separate local copy of an app, including the front end and backend resources, with its own new app ID. The docs are clear that the copy's database is empty: schemas are copied, data isn't.base44 functions pulldownloads your deployed backend functions.
If you run a synced copy locally with base44 dev --remote, be careful: in that mode, writes go to your live app's production data.
Do I have a backup if something goes wrong?
On the Elite plan, Base44 keeps 7 days of automatic backups; on Business and Enterprise, 30 days. From the Backup & Restore tab you can download any table as it was at an earlier point, as CSV. On other plans, your own exports are the backup, and deleted records stay recoverable for 30 days.
Whatever your plan, set a routine: export the tables that change most every week, and all of them every month, and store the files outside Base44.
How do I keep the exported data safe?
These files contain your customers' personal data, often in plain text. Store them in a private location with limited access, don't email them around, and delete old copies you no longer need. Depending on where you and your users are, data protection laws may set rules on how you store and move this data. This isn't legal advice; check with a lawyer if you're unsure. Our guide to data protection basics for app founders gives a plain-language overview.
Quick answers
Can I export all my Base44 data at once? Not from the dashboard. Export each table from its card on the Data page. The Backup & Restore tab on eligible plans also downloads tables one at a time.
Does the CSV include uploaded images? No. It includes each file's address. Download the files separately.
Can I export my Base44 code? Yes, through GitHub two-way sync on Builder or higher, or with the Base44 CLI.
Does base44 eject copy my data? No. It copies the code and entity schemas into a new app with an empty database.
Want help with the move?
Exporting is the easy half; importing into a new database with IDs, files and users intact is where most of the work is. If you're weighing a move, read Base44 limitations and when to move first. Our Base44 app service can plan and carry out the migration, with a fixed price you approve before work starts. You can also contact us with your list of tables.


