---
title: "Overwrites a badge icon with a new one."
method: POST
path: "/v1/badges/{badgeId}/icon"
tags: ["Assets", "Thumbnails"]
---

# Overwrites a badge icon with a new one.

`POST /v1/badges/{badgeId}/icon`

## Request

- Base URL: `https://badges.roblox.com`
- URL: `https://badges.roblox.com/v1/badges/{badgeId}/icon`
- Auth: API key in cookie `.ROBLOSECURITY`

Accepts a moderated image upload and updates the badge's icon asset.

## Path parameters

- `badgeId` integer, required

## Request body `multipart/form-data`

- object
  - `Files` string, binary

## Response `200`

OK

- RobloxBadgesApiIconUploadResponse: Badge icon upload response.
  - `targetId` integer: The asset id of the uploaded icon.

## Other responses

- `400`: 6: Text moderated. 22: Icon file is not present in the request.
- `401`: 0: Authorization has been denied for this request.
- `403`: 0: Token Validation Failed 2: You do not have permission to manage this badge.
- `404`: 1: Badge is invalid or does not exist.
- `429`: 13: Too many requests, try again later.

## Changes

- **2026-10-14** `5dcfa33df56a`: 1 info
  - endpoint added
- **2026-08-12** `80880b69892d`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/roblox/apis/roblox-api/changes/v1/badges/:badgeId/icon/post.md)

---

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