# A journal's own settings, and deleting one

> Change what a journal says about itself, and delete one.

## Reading and correcting a journal

```http
GET /api/v2/{user}
```

Answers the journal document with an `ETag`. `PATCH` merges — send only what changes — and a concurrent edit is caught with `If-Match: <etag you read>`; without it the write still lands, since nothing else is likely to be editing a journal's own settings at once.

```http
PATCH /api/v2/{user}
Content-Type: application/json
Authorization: Bearer fs_agent_…

| Field | | Type |
| --- | --- | --- |
| `title` | optional | string — what the journal is called |
| `owner` | optional | an object — see /api/v2/openapi.json for its shape — `{name, nickname, email}` — `email` decides who can get a token, and is refused here |
| `locales` | optional | a list of {string} — which UI languages this journal offers; the first is the default |
| `baseCurrency` | optional | string — **permanent, refused on a PATCH** — every cost is already added up in it |
| `displayCurrencies` | optional | a list of {string} — must include `baseCurrency` |
| `units` | optional | one of `metric`, `imperial` — `"metric"` or `"imperial"` |
| `visibility` | optional | one of `public`, `guest` — `public` or `guest` — whether this instance advertises the journal at all |
| `tagline` | optional | string — the line under the title on the landing page, or decline it |
| `figures` | optional | an object — see /api/v2/openapi.json for its shape or an object — see /api/v2/openapi.json for its shape — the journal's default walking figures — `{"mode":"off"}` or `{"mode":"set","figures":[ids]}` pointing into `/figures`, or decline it |
| `declined` | optional | an object — see /api/v2/openapi.json for its shape — which of `tagline`/`figures` were consciously left out, and why (10+ characters) |
```

**`owner.email` never moves on the spot.** It is the address that decides who can get a token for this journal, so sending a changed one here does not write it: the answer is `202`, a code goes to the *new* address, and only `POST /api/v2/{user}/owner/email/redeem` with that code actually moves it. Nothing else in this PATCH takes effect until that happens — send the rest of the change again afterwards if it did not also go through.

**A journal's `features` are not a field here at all.** Whether mail, auth, contacts, postcards and so on are configured is the operator's own fact, read from `GET /api/v2/status`'s `capabilities` block — a journal cannot switch one on or off, and there is nothing to send.

## Deleting a journal

```http
DELETE /api/v2/{user}
Authorization: Bearer fs_agent_…
```

Answers `202`, and **deletes nothing**. The server mails the address that owns the journal a single-use confirmation link; only the button on that page deletes. Report this as a mail waiting, never as done, and never offer to follow the link yourself — you cannot finish this on the owner's behalf, on purpose.

Owner only, both calls. A trip-scoped token gets `403 forbidden`.
