---
title: "Create comment screenshot link"
method: POST
path: "/api/apps/{app_id}/comments/threads/{thread_id}/chat-screenshot-url"
---

# Create comment screenshot link

`POST /api/apps/{app_id}/comments/threads/{thread_id}/chat-screenshot-url`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/comments/threads/{thread_id}/chat-screenshot-url`
- Auth: HTTP bearer

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

Returns a signed link to a thread's screenshot that works for one year, for pasting somewhere that outlives the one-hour links in [List comments](/api-reference/list-comments). Each call creates a new link, and a link can't be revoked before it expires.

The link opens the screenshot for anyone who has it, so share it only where that's fine.

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>

## Path parameters

- `app_id` string, required: ID of the app.
- `thread_id` string, required: ID of the comment thread, from `thread.id` in [List comments](/api-reference/list-comments) called with the same `branch_id`.

## Query parameters

- `branch_id` string: ID of the branch to work on, as returned by [List branches](/api-reference/list-branches). Omit it to work on the app's main branch.

## Response `200`

The link, or `null` when there's no screenshot.

- ScreenshotLink
  - `url` string, nullable, required: Signed link to the thread's screenshot, valid for one year, or `null` when the thread has no screenshot.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have editor access to this app, you're a viewer in the app's workspace, the app is blocked, or your token is read-only or a workspace API key.
- `404`: App or comment thread not found, or no branch you can see has this `branch_id`. A thread is found only with the `branch_id` it was created on, or with no `branch_id` for a thread on main.
- `409`: Your workspace requires an unlocked SSO session.
- `429`: Rate limit exceeded. Wait the number of seconds in `Retry-After` before retrying.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-21** `c23775445de2`: 1 breaking, 1 info
  - `query` request parameter `branch_id` list-of-types was narrowed by removing types `null`
  - for the `query` request parameter `branch_id`, the type was generalized from no type to `string`
- **2026-10-21** `4e0beb03385b`: 1 info
  - added the new optional `query` request parameter `branch_id`
- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-06** `dddf17e0f9f0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/comments/threads/:thread_id/chat-screenshot-url/post.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
