---
title: "Upload an RCS logo or banner"
method: POST
path: "/v1/rcs/assets"
tags: ["RCS"]
---

# Upload an RCS logo or banner

`POST /v1/rcs/assets`

Uploads an image and returns a public URL for `profile.logoUrl` or `profile.heroUrl`.
The image is cropped and compressed to the carriers' exact rules (logo 224x224 under
50 KB, banner 1440x448 under 200 KB).

## Response `200`

Hosted URL.

- object
  - `url` string, uri

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403` — Your plan does not include the inbox, which RCS requires.
- `422` — The image is unreadable, too small, or could not be compressed under the limit

## Changes

- **2026-10-02** `d556591af3f6` — 8 info
  - added the optional property `code` to the response with the `401` status
  - added the optional property `details` to the response with the `401` status
  - added the optional property `docUrl` to the response with the `400` status
  - added the optional property `docUrl` to the response with the `401` status
  - …4 more
- **2026-09-30** `16a7b9d5373e` — 1 info
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `400`
- **2026-09-29** `698a0d89ab62` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/rcs/assets/post.md)

---

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