---
title: "Like Essay"
method: POST
path: "/essay-engagement/{slug}/likes"
tags: ["essay engagement"]
---

# Like Essay

`POST /essay-engagement/{slug}/likes`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/essay-engagement/{slug}/likes`
- Auth: none declared

Idempotent per (slug, visitor_id).

## Path parameters

- `slug` string, required: Essay slug.

## Request body

- LikeRequest
  - `visitor_id` string, uuid4, required: Browser-generated random uuid4; only prevents double counting.

## Response `200`

Successful Response

- EssayLikeResponse
  - `likes` integer, required: Total likes for the essay after the change.
  - `liked` boolean, required: Whether this visitor now likes the essay.

## Other responses

- `404`: Malformed slug.
- `413`: Request body exceeds the 8 KiB limit.
- `422`: Validation Error
- `429`: Too many like changes from this IP.

---

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