---
title: "Create or update a brand's link-in-bio page"
method: PUT
path: "/api/bio"
---

# Create or update a brand's link-in-bio page

`PUT /api/bio`

## Request

- Base URL: `https://postwire.io`
- URL: `https://postwire.io/api/bio`
- Auth: HTTP bearer

Free on every plan. The address is 3-30 lowercase letters, digits and hyphens, unique, and not a reserved word. Up to 10 links, http or https only; each is published as a tracked postwire.io/r/ link so its clicks are counted. "Made with PostWire" can be switched off on paid plans only (on Free the request is saved with it on, and the answer says so in note). Changes show within about a minute.

## Request body

- object
  - `brand_id` string, uuid
  - `slug` string, required: postwire.io/@<slug>
  - `title` string: The name shown; the brand's name when empty
  - `bio` string
  - `links` object[]
    - `label` string, required
    - `url` string, uri, required
  - `show_socials` boolean: The brand's connected profiles as icons
  - `hide_badge` boolean: Paid plans only

## Response `200`

{ ok: true, note?, ...the same body as GET }

## Other responses

- `400`: code slug_required, slug_length, slug_chars, slug_reserved, bad_url, label_required or too_many_links, with field (e.g. links.2.url) and every problem in errors[]
- `409`: code slug_taken
- `503`: code bio_unavailable: bio pages are not switched on on this server yet

---

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