---
title: "Claim or change your branded subdomain (Pro)"
method: PUT
path: "/v1/account/subdomain"
---

# Claim or change your branded subdomain (Pro)

`PUT /v1/account/subdomain`

Claims `{subdomain}.oqr.to` so your codes resolve there as well as on the plain short link. Pro only. Your codes keep working on the plain short link either way, so changing this never breaks anything already printed. Every one of your codes is re-synced to the edge, and `codes_updated` reports how many.

## Request body

- object
  - `subdomain` string, required — 3–32 letters, numbers or hyphens; can't start or end with a hyphen, or contain a double hyphen. Lowercased — hostnames are case-insensitive.

## Response `200`

The subdomain is claimed and live.

- object
  - `subdomain` string
  - `host` string
  - `suspended` boolean
  - `codes_updated` integer

## Other responses

- `400` — Invalid or reserved subdomain, or not on the Pro plan.
- `401` — The `Authorization: Bearer oqr_…` header is missing or the API key is invalid or revoked.
- `409` — That subdomain is already taken by another account.
- `500` — An unexpected server-side error.

---

[API](https://skmtc.net/openqr/apis/openqr-api.md) · [All operations](https://skmtc.net/openqr/apis/openqr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openqr/openqr-api/revisions/706b4ff45a32/schema)
