add_screenshot
Append a screenshot (with an optional note) to a review created by create_review. The image is stored durably in Cobalt — this is the way to persist screenshots that would otherwise be lost when they only pass through a browser tool. Call once per screen as you go. Input is image_url: POST the image to https://cobaltcapture.com/api/upload (multipart field file, no auth, returns {url, key}) and pass back the url. If a browser-automation script took the screenshot, do that POST inside the same script (Python requests.post(...), or Playwright's request context) rather than shelling out to curl afterwards — same result, one less permission prompt. The image base64 parameter exists for small images only: tool-call arguments are model-generated text, so a real screenshot means emitting tens of thousands of base64 tokens perfectly, and an image you received as an image cannot be transcribed at all.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| image | No | For SMALL images only (< ~100 KB) that you already hold as base64 text: a base64-encoded PNG/JPEG/WebP (data: URL prefix accepted). Not the path for screenshots — emitting one as tool-call text is slow and error-prone, and an image you received as an image cannot be transcribed. Upload it and pass image_url instead. | |
| title | No | Optional short caption for the screenshot. | |
| review | Yes | The review slug or URL from create_review. | |
| comment | No | Optional note describing what this screen shows or what's wrong with it. | |
| image_url | No | The image URL returned by Cobalt's own upload: POST the file as multipart field `file` to https://cobaltcapture.com/api/upload (returns {url, key}) — ideally from inside the script that captured it — or use the browser hook window.cobaltGrab(). Must be on Cobalt's own image host; external URLs are refused. | |
| source_url | No | Optional URL of the page the screenshot was taken on. | |
| claim_token | Yes | The claim_token from create_review (authorizes the write). |