---
title: "Update a badge's icon"
method: POST
path: "/legacy-game-internationalization/v1/badges/{badgeId}/icons/language-codes/{languageCode}"
tags: ["Badges", "Localization"]
---

# Update a badge's icon

`POST /legacy-game-internationalization/v1/badges/{badgeId}/icons/language-codes/{languageCode}`

## Request

- Base URL: `https://apis.roblox.com`
- URL: `https://apis.roblox.com/legacy-game-internationalization/v1/badges/{badgeId}/icons/language-codes/{languageCode}`
- Auth: one of:
  - API key in header `x-api-key`
  - OAuth 2
    - Authorization code: `https://apis.roblox.com/oauth/v1/authorize`
    - Token URL: `https://apis.roblox.com/oauth/v1/token` scopes: `legacy-badge:manage`

## Path parameters

- `badgeId` integer, required
- `languageCode` string, required

## Request body `multipart/form-data`

- object
  - `Files` string, binary

## Response `200`

OK

- RobloxWebWebAPIApiEmptyResponseModel

## Other responses

- `400`: 22: Invalid language code 26: You can't update translations for source language 45: File uploaded does not match known image format 46: File not present in request 53: Language is not supported for the game. 62: Invalid game badge id
- `401`: 0: Authorization has been denied for this request.
- `403`: 0: Token Validation Failed 18: You do not have permission to manage this game
- `429`: 24: Too many attempts.Please try again later.
- `500`: 0: An unknown error occurred.
- `503`: 17: Feature is disabled

## Changes

- **2026-10-14** `5dcfa33df56a`: 1 info
  - the security scope `legacy-badge:manage` was added to the endpoint's security scheme `roblox-oauth2`

[Operation history](https://skmtc.dev/roblox/apis/roblox-api/changes/legacy-game-internationalization/v1/badges/:badgeId/icons/language-codes/:languageCode/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)
