---
title: "A presigned URL to upload an image for the card (PNG, JPEG, GIF or WebP, ≤ 10 MB)"
method: POST
path: "/revise/cards/{cardId}/images/upload-url"
tags: ["revise"]
---

# A presigned URL to upload an image for the card (PNG, JPEG, GIF or WebP, ≤ 10 MB)

`POST /revise/cards/{cardId}/images/upload-url`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/revise/cards/{cardId}/images/upload-url`
- Auth: HTTP bearer

## Path parameters

- `cardId` string, required

## Request body

- CreateReviseCardImageUploadDto
  - `content_type` 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp', required
  - `file_size` number, required: Bytes

## Response `200`

- ReviseCardImageUploadResponseDto
  - `image_id` string, required
  - `reference` string, required: `fb-revise-image://<image_id>`, for the card text
  - `upload_url` string, required
  - `upload_headers` object, required
  - `upload_url_expires_at` string, required

## Other responses

- `400`: REVISE_IMAGE_UNSUPPORTED_TYPE or REVISE_IMAGE_TOO_LARGE
- `409`: REVISE_IMAGE_LIMIT_REACHED

---

[API](https://skmtc.dev/focusbear/apis/focusbear-api.md) - [All operations](https://skmtc.dev/focusbear/apis/focusbear-api/llms.txt) - [OpenAPI document](https://skmtc.dev/focusbear/apis/focusbear-api/revisions/3a83a3b9a811?raw)
