Create app
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Creates a new app. Pass initial_message.content to build it from a prompt, or send an empty body ({}) to create an empty app. Add initial_message.file_urls to build from a screenshot or a mockup alongside the prompt.
Building from a prompt runs in the background and consumes credits. Poll Get app and watch its status to see when the build finishes. By default the app is created in your default workspace. Set organization_id to create it in another workspace you belong to. This endpoint is limited to 5 requests per minute.
Set name, user_description, public_settings, custom_instructions, secrets, and prevent_iframe_embedding in the same request to configure the app before its first build turn runs. Without a name, the app starts as untitled, and once a build turn changes it Base44 names and describes it, replacing any user_description you sent.
<Warning>secrets are applied after the app is saved. A request that fails on a secrets entry still leaves the new app in your workspace, and it counts toward your plan's app limit. Delete it before you retry.</Warning>
<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time. Send only the fields documented here. Other request fields are not supported and their behavior can change.</Warning>
Request body
Example request
{
"initial_message": {
"content": "A CRM to track leads and deals",
"file_urls": [
"https://example.com/mockup.png"
]
},
"name": "My CRM",
"user_description": "A CRM to track leads and deals",
"public_settings": "public_with_login",
"custom_instructions": "Use a dark theme and keep every page mobile friendly.",
"secrets": {
"STRIPE_API_KEY": {
"type": "value",
"value": "sk_test_example"
}
},
"organization_id": "67e0b12c4d8a3f005b21c9e4"
}Response
Successful Response
Example response
{
"id": "6820f3a4e7b91d003c45a1f2",
"name": "My CRM",
"slug": "my-crm-3c45a1f2",
"user_description": "A CRM to track leads and deals",
"created_by": "developer@example.com",
"created_date": "2026-08-01T09:15:00",
"updated_date": "2026-08-02T14:30:00",
"status": {
"state": "ready",
"details": "Publishing app",
"request_id": "a1b2c3d4e5f67890abcdef12",
"last_updated_date": "2026-08-02T14:30:00Z",
"error_source": "build",
"paywall_context": {
"billing_organization_id": "67e0b12c4d8a3f005b21c9e4",
"user_id": "6706af53b9c1e2004a37d85f",
"evaluated_at": "2026-08-02T14:30:00Z"
}
},
"last_deployed_at": "2026-08-02T14:30:00",
"screenshot_url": "https://storage.base44.com/screenshots/6820f3a4e7b91d003c45a1f2.png",
"preview_screenshot_url": "https://storage.base44.com/previews/6820f3a4e7b91d003c45a1f2.png"
}Changes
Changed in 3 of the 14 revisions of this API.13
- ○
added the new optional request property
new-optional-request-property
- ○
added the new optional request property
new-optional-request-property
- ○
added the new optional request property
new-optional-request-property
- ○
added the new optional request property
new-optional-request-property
- ○
added the new optional request property
new-optional-request-property
- ○
added the new optional request property
new-optional-request-property
- ○
added the optional property
to the response with the statusresponse-optional-property-added
- ○
- ○
added the new optional request property
/new-optional-request-property
- ○
added the non-success response with the status
response-non-success-status-added
- ○
added to the
response propertyanyOflist for the response statusresponse-property-any-of-added
- ○
removed from the
response propertyanyOflist for the response statusresponse-property-any-of-removed
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
- ○
added the new optional request property
new-optional-request-property
- ○
added the optional property
to the response with the statusresponse-optional-property-added
- ○