Import a GitHub branch

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Adopts a branch that already exists in the connected repository as a Base44 branch.

The new branch works on that GitHub ref as it is: its turns commit to the same branch name, and Base44 never creates a separate ref for it. Its starting files, routes and entity schemas come from the ref's tree at the head commit this call resolves, so an entity that only the branch declares is live in its preview right away.

Send a branch that exists in the repository and isn't its default branch, which is already the app's main chat. The name has to be free among the app's active and merged branches, so a branch can be imported once.

If the call can't read the branch's files it changes nothing, so retry it.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

post/api/apps/{app_id}/github/branches/import

Path parameters

app_idstring required

ID of the app to import the branch into.

ID of the app to import the branch into.

Request body

branch_namestring required

Name of the branch to import, as it exists in the connected repository. Can't be the repository's default branch.

Example request

{
  "branch_name": "feature/reporting"
}

Response

The imported branch.

idstring required

ID of the new Base44 branch.

branch_namestring required

The GitHub branch name, stored exactly as you sent it. Base44's own commits go to this same branch.

conversation_idstring required

ID of the branch's own builder conversation. The branch's chat history is separate from the app's main chat.

base_git_commit_hashstring required

Commit where the branch forked off the repository's default branch.

last_git_commit_hashstring required

Head commit of the GitHub branch at the moment it was imported.

created_datestring required

When the branch was created, in ISO 8601 with a UTC offset.

Example response

{
  "id": "68b1c0d4e7b91d003c45a1f7",
  "branch_name": "feature/reporting",
  "conversation_id": "68b1c0d4e7b91d003c45a1f8",
  "base_git_commit_hash": "9f2c1ab7d4e58036bb1f4c0a7de92b41c0d5e8a3",
  "last_git_commit_hash": "4c7e1f90ab3d5628e1a0f7b24c9d8e6350a1b2c4",
  "created_date": "2026-08-15T09:10:00.123456+00:00"
}

Changes