---
title: "Paid: Unlock a premium avatar cosmetic"
method: GET
path: "/api/x402/cosmetic-purchase"
---

# Paid: Unlock a premium avatar cosmetic

`GET /api/x402/cosmetic-purchase`

## Request

- Base URL: `https://three.ws`
- URL: `https://three.ws/api/x402/cosmetic-purchase`
- Auth: none required

Pay once in USDC to unlock a premium avatar cosmetic (skin or emote) for an account, wearable across /play and /walk. Price varies by rarity ($0.25–$3.00). Wallets that already purchased re-confirm for free via SIWX (CAIP-122).

## Query parameters

- `id` string, required
- `account` string, required

## Response `200`

Ownership grant JSON

- object
  - `ok` boolean, required
  - `id` string, required
  - `name` string, required
  - `slot` string, required
  - `rarity` string, required
  - `account` string, required
  - `owned` boolean, required
  - `newlyOwned` boolean
  - `payer` string, nullable
  - `network` string, nullable
  - `amountAtomics` string, nullable
  - `asset` string, nullable

## Other responses

- `400`: Missing or invalid id/account
- `402`: Payment Required (x402)
- `404`: Cosmetic not found

---

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