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

Returns one of the app's branches, whatever its status, including merged and deleted branches.

This is limited to 300 requests per minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. List branches and Get branch share it. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app, including a read-only key. Workspace API keys are not accepted.</Note>

<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>

get/api/apps/{app_id}/branches/{branch_id}

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps/{app_id}/branches/{branch_id}
  • Auth: HTTP bearer

Path parameters

branch_idstring required

ID of the branch, as returned by List branches.

app_idstring required

ID of the app whose branches to read.

Response

The branch.

idstring required

ID of the branch.

app_idstring required

ID of the app the branch belongs to.

branch_namestring required

Name of the branch.

status'active' | 'merged' | 'deleted' required

active while the branch can still be worked on, merged once it was merged into main, and deleted once it was deleted.

code_state'unchanged' | 'changed' required

unchanged when the branch has no code changes of its own to merge into main. changed otherwise, including when Base44 can't tell yet.

base_checkpoint_idstring nullable required

ID of the main checkpoint the branch started from, or null if the app had no checkpoint yet.

created_by_idstring required

ID of the user who created the branch.

created_by_namestring nullable required

Display name of the user who created the branch, or the part of their email before the @ when they have no name. null when Base44 can't name them, for example when their account no longer exists.

created_datestring date-time required

When the branch was created, as a UTC timestamp in ISO 8601 format.

merged_atstring date-time nullable required

When the branch was merged into main, as a UTC timestamp in ISO 8601 format, or null if it wasn't.

merged_by_idstring nullable required

ID of the user who merged the branch, or null if it wasn't merged or Base44 doesn't know who did, as for a branch whose pull request was merged on GitHub.

static_preview_urlstring required

URL of the branch's preview. It shows the branch only while it's active and once it has been built.

Example response

{
  "id": "68f1a2b3c4d5e6f708192a3b",
  "app_id": "6820f3a4e7b91d003c45a1f2",
  "branch_name": "add-contact-form",
  "status": "active",
  "run_state": {
    "state": "ready",
    "details": "Restoring checkpoint",
    "last_updated_date": "2026-09-28T10:18:40"
  },
  "code_state": "changed",
  "base_checkpoint_id": "6886b8d390dc7e2f4a2c91b3",
  "created_by_id": "68a0c1d2e3f4a5b6c7d8e9f0",
  "created_by_name": "Jane Doe",
  "created_date": "2026-09-28T10:15:00",
  "merged_at": "2026-09-29T08:02:11",
  "merged_by_id": "68a0c1d2e3f4a5b6c7d8e9f0",
  "static_preview_url": "https://preview--6820f3a4e7b91d003c45a1f2--b-d8c647b.base44.app"
}

Changes