Pull changes from GitHub
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Pulls new commits from the connected repository into the app.
Call this after someone pushes to the repository, or before reading the app's code, to bring Base44 up to date. It compares the repository's head with the last commit Base44 pulled, applies the diff to the app's files, updates the app's sandbox, and records the new head. With nothing new to apply it returns synced: false and already_up_to_date: true.
<Warning>A failed pull still returns HTTP 200. Read synced and error instead of the status code. An app with no active connection comes back synced: false with error: not_connected rather than a 404.</Warning>
error: merge_conflict means the repository's commits and the app's own changes touch the same lines. Hand it to Resolve GitHub sync conflicts. sync_in_progress means another pull, or a builder turn, holds the app right now, so retry it. On any error Base44 leaves the commit it last pulled where it was, so the next pull starts over from the same place rather than skipping the commits that failed.
This endpoint allows 20 requests per minute per caller, shared with Resolve GitHub sync conflicts.
<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>
Path parameters
ID of the app whose GitHub sync this affects.
ID of the app whose GitHub sync this affects.
Response
The outcome of the pull.
Example response
{
"synced": true,
"commits_pulled": 2,
"latest_commit_hash": "4c7e1f90ab3d5628e1a0f7b24c9d8e6350a1b2c4",
"commits": [
{
"author_email": "dana@example.com",
"author_name": "Dana Levi",
"message": "Fix the lead scoring rounding",
"sha": "4c7e1f90ab3d5628e1a0f7b24c9d8e6350a1b2c4",
"short_sha": "4c7e1f9",
"timestamp": "2026-08-15T09:08:41+00:00",
"url": "https://github.com/base44/lead-tracker/commit/4c7e1f90ab3d5628e1a0f7b24c9d8e6350a1b2c4"
}
],
"files_summary": {
"total_files": 7,
"files_with_content": 6,
"files_metadata_only": 1,
"files_deleted": 1,
"total_additions": 214,
"total_deletions": 31
},
"error": "merge_conflict",
"error_message": "Merge conflict while applying the pulled commits",
"duration_ms": 4120
}