Create comment
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Starts a new comment thread on the app with its first comment.
Set page_path to the app page the comment is about. anchor pins the thread to an element of the app's preview. The builder fills it in when you click an element, and source_location must match that element's data-source-location attribute in the preview for a pin to show. Leave anchor out to post a thread with no pin. It still shows in the builder's comments panel.
To attach a screenshot, upload the image with Upload app file and visibility set to private, then pass its file_uri as screenshot_file_uri. Only private files uploaded to this app are accepted.
mentioned_emails records who the comment mentions. Only emails that List mentionable users returns are kept, and the rest are dropped without an error. Mentioning someone sends them no email or notification, and responses never return the list.
Comments don't reach the builder agent on their own. It only works on a thread when someone sends the thread to the builder chat from the builder. Anyone with the app open in the builder sees the change right away.
This is limited to 120 requests per minute per app, shared by every other comments endpoint. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit. Every request that counts against the limit gets X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time in seconds) headers, and a 429 also gets Retry-After in seconds. If the limiter itself is unavailable, requests go through without these headers.
<Note>Call this as an editor of the app, with a personal access token sent as a Bearer token or from a signed-in session. Viewers in the app's workspace, read-only tokens, and workspace API keys are refused.</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>
Path parameters
ID of the app.
ID of the app.
Request body
Example request
{
"content": "Make this button match the header color.",
"page_path": "/pricing",
"anchor": {
"source_location": "pages/Pricing.jsx:42:8",
"element_tag": "button",
"point": {
"x": 0.5,
"y": 0.5
},
"crop": {
"x": 512,
"y": 1340,
"width": 240,
"height": 96
},
"region": {
"x": 0.42,
"y": 0.18,
"width": 0.2,
"height": 0.08
},
"viewport_size": {
"width": 1280,
"height": 800
}
},
"screenshot_file_uri": "mp/private/6820f3a4e7b91d003c45a1f2/4b1e9c2a7_shot.png",
"mentioned_emails": [
"dana@acme.com"
]
}Response
The new thread with its first comment.
Example response
{
"thread": {
"id": "68e2b7c1d4f0a9001c3e5a17",
"page_path": "/pricing",
"anchor": {
"source_location": "pages/Pricing.jsx:42:8",
"element_tag": "button",
"point": {
"x": 0.5,
"y": 0.5
},
"crop": {
"x": 512,
"y": 1340,
"width": 240,
"height": 96
},
"region": {
"x": 0.42,
"y": 0.18,
"width": 0.2,
"height": 0.08
},
"viewport_size": {
"width": 1280,
"height": 800
}
},
"screenshot_url": "https://static.base44.com/images/private/6820f3a4e7b91d003c45a1f2/4b1e9c2a7_shot.png?token=eyJhbGciOi",
"resolved_at": "2026-10-05T09:14:22.512000Z",
"message_count": 2,
"last_activity_at": "2026-10-05T09:14:22.512000Z",
"created_date": "2026-10-05T09:14:22.512000Z",
"agent_working_since": "2026-10-05T09:14:22.512000Z",
"unread": true
},
"comment": {
"id": "68e2b7c4d4f0a9001c3e5a1c",
"content": "Make this button match the header color.",
"sender_id": "6820f41be7b91d003c45a20a",
"sender_name": "Dana Levi",
"sender_avatar_url": "https://lh3.googleusercontent.com/a/ACg8ocJ2",
"created_date": "2026-10-05T09:14:22.512000Z",
"edited_at": "2026-10-05T09:14:22.512000Z",
"reactions": {
"👍": [
"6820f41be7b91d003c45a20a"
]
}
},
"replies": [
{
"content": "Done, it now uses the header blue.",
"created_date": "2026-10-05T09:14:22.512000Z",
"id": "68e2b80fd4f0a9001c3e5a21",
"reactions": {},
"sender_id": "base44",
"sender_name": "Base44"
}
],
"reactor_names": {
"6820f41be7b91d003c45a20a": "Dana Levi"
}
}Changes
Changed in 1 of the 28 revisions of this API.1
- ○
endpoint added
endpoint-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
Of the 28 revisions, 1 has no diff computed.