---
title: "Update your public profile"
method: PUT
path: "/api/profile"
---

# Update your public profile

`PUT /api/profile`

## Request

- Base URL: `https://api.peelaway.io`
- URL: `https://api.peelaway.io/api/profile`
- Auth: API key in cookie `better-auth.session_token`

Browser session only. Five attempts per hour, enforced per account. Usernames can be changed once every seven days after the first edit. Old handles remain reserved and redirect to the current profile. Automatic identities do not expose email addresses.

## Request body

- object
  - `displayName` string, required
  - `username` string, required
  - `bio` string, required

## Response `200`

Updated profile

## Other responses

- `400`: Invalid or reserved username or profile
- `401`: Sign in required
- `403`: Browser session required
- `409`: Username taken
- `429`: Rate limit or username cooldown; Retry-After header supplied

---

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