---
title: "Publish or update your public passport"
method: PUT
path: "/api/passport"
tags: ["Passport"]
---

# Publish or update your public passport

`PUT /api/passport`

## Request

- Base URL: `https://trvlrr.app`
- URL: `https://trvlrr.app/api/passport`
- Auth: HTTP bearer

Publishes the account's passport at trvlrr.app/p/<handle>, or changes the handle, name or indexing. A handle given up is held for 30 days.

## Request body

- PassportInput
  - `handle` string, required: 3–30 lowercase letters, numbers and hyphens; unique across Trvlrr.
  - `holder` string, nullable: The name on the card. Empty shows Traveller.
  - `indexable` boolean: Let search engines list the page. Default true.

## Response `200`

Published.

- PassportSettings
  - `published` boolean, required
  - `handle` string, nullable, required
  - `url` string, nullable, required
  - `holder` string, nullable, required
  - `indexable` boolean, required
  - `image_updated_at` string, nullable, required
  - `suggestion` string, nullable, required: A free handle made from the account's name, for the first publish.

## Other responses

- `400`: The request is malformed or fails validation.
- `401`: No usable credential: a Clerk session token, a device token or an OAuth access token is required.
- `403`: The caller may not do this to this account or trip.
- `409`: The request conflicts with the current state.

---

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