Import entity records from CSV
Changed on<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Creates records in one of the app's entities from a CSV file, and returns the records it created.
Send the file as multipart/form-data in a field named file. The first row has to be a header row with no blank or repeated column names. Commas, semicolons, and tabs all work as the delimiter, and the file can be up to 10 MB.
Base44 pairs each of the entity's fields with the column of the same name, ignoring case, spaces, and punctuation. For any field it can't pair by name, an AI model picks a matching column or leaves the field out. Columns that match no field are ignored, and every required field needs a column.
The import is all or nothing. Every row is checked against the entity's schema before anything is written, and if one row fails, no records are created. A file Base44 can't import still returns a successful response, with status set to error and the reason in details, so read status before output.
Each row becomes a new record, so importing the same file twice creates every record twice. Row-level security applies, so the whole call is rejected when the entity's rls create rule doesn't cover one of the rows. Imported records don't trigger the app's webhooks, automations, or workflows.
<Note>This endpoint accepts a personal API key belonging to a user with access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>
Request
- Base URLhttps://app.base44.com
- URLhttps://app.base44.com/api/apps/{app_id}/entities/{entity_name}/import
- AuthHTTP bearer
Path parameters
ID of the app that owns the entity.
Name of the entity, exactly as List entity schemas reports it. Don't pass User here. It doesn't fail, but it reads and writes a separate, disconnected set of records stored under that name, not the app's real user accounts, which are managed through their own endpoints.
Request body multipart/form-data
Response
The import's outcome, including when the file couldn't be imported.
Example response
{
"status": "success",
"details": "Successfully imported 2 entities with RLS enforcement",
"output": [
{
"id": "6886b8d390dc7e2f4a2c91b3",
"created_date": "2026-06-01T09:23:41.481000Z",
"updated_date": "2026-06-01T09:23:41.481000Z",
"created_by": "jane@acme.com",
"created_by_id": "6874b0c2e1a94d0031bb77de",
"is_sample": false,
"amount": 4200,
"status": "draft",
"customer_email": "jane@acme.com"
}
]
}Changes
- info
the endpoint scheme security
PersonalAccessTokenAuthwas added to the API
- info
- info
endpoint added
- info