---
title: "Follow, unfollow or change delivery consent for an area, competition or market"
method: PUT
path: "/arena/follows"
tags: ["Arena"]
---

# Follow, unfollow or change delivery consent for an area, competition or market

`PUT /arena/follows`

## Request

- Base URL: `https://kellian.app/api/v1`
- URL: `https://kellian.app/api/v1/arena/follows`
- Auth: one of:
  - API key in cookie `developer_auth`
  - API key in header `x-developer-auth`

## Request body

- object: Requires an authenticated wallet session. Following does not enter a round or grant notification or email consent, and a saved or bookmarked market is not a follow. All delivery choices are explicit; expectedVersion prevents lost updates. A market target must name a market you can currently see.
  - `target` union, required
    - object
      - `kind` 'area', required
      - `id` 'crypto' | 'sports' | 'politics' | 'elections' | 'tech' | 'world' | 'ai' | 'gaming' | 'business' | 'fashion' | 'movies-tv' | 'music' | 'shopping' | 'beauty' | 'travel' | 'climate', required: The market's arena as a URL slug (one per `category` value except OTHER). Open enum: tolerate unseen values.
    - object
      - `kind` 'competition', required
      - `id` string, required
    - object: One canonical market, named by the same numeric market id as /arena/markets/{marketId}/placement. It covers that market’s canonical conversation and published result only, never every conversation in a program.
      - `kind` 'market', required
      - `id` integer, required
  - `expectedVersion` integer, required
  - `following` boolean, required
  - `notifyResults` boolean, required
  - `notifyReminders` boolean, required
  - `emailDigest` boolean, required
  - `muted` boolean, required
  - `notifyReplies` boolean: Bounded new-contribution notices for a followed market conversation: at most one per market per digest window, never one per contribution. Omitted means withdrawn. Ignored on area and competition targets, which have no single conversation.

## Response `200`

Success

- object
  - `target` union, required
    - object
      - `kind` 'area', required
      - `id` 'crypto' | 'sports' | 'politics' | 'elections' | 'tech' | 'world' | 'ai' | 'gaming' | 'business' | 'fashion' | 'movies-tv' | 'music' | 'shopping' | 'beauty' | 'travel' | 'climate', required: The market's arena as a URL slug (one per `category` value except OTHER). Open enum: tolerate unseen values.
    - object
      - `kind` 'competition', required
      - `id` string, required
    - object: One canonical market, named by the same numeric market id as /arena/markets/{marketId}/placement. It covers that market’s canonical conversation and published result only, never every conversation in a program.
      - `kind` 'market', required
      - `id` integer, required
  - `following` boolean, required
  - `notifyResults` boolean, required
  - `notifyReminders` boolean, required
  - `emailDigest` boolean, required
  - `muted` boolean, required
  - `notifyReplies` boolean: Bounded new-contribution notices for a followed market conversation: at most one per market per digest window, never one per contribution. Omitted means withdrawn. Ignored on area and competition targets, which have no single conversation.
  - `id` string, uuid, required
  - `version` integer, required
  - `updatedAt` string, date-time, required

## Other responses

- `default`: Error response (RFC 9457 Problem Details for HTTP APIs)

---

[API](https://skmtc.dev/problee/apis/kellian-consumer-api.md) · [All operations](https://skmtc.dev/problee/apis/kellian-consumer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/problee/apis/kellian-consumer-api/revisions/2b8254b0ec57?raw)
