> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aegi.run/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aegi.run/_mcp/server.

# Fun

## Roleplay GIFs

```
GET /v1/fun/roleplay?type={type}&amount={n}
```

```ts
const { results } = await aegis.fun.roleplay({ type: 'hug', amount: 3 })

results[0].url // the GIF
results[0].animeName // or null when unknown
results[0].dimensions // { width, height }, or null
```

`amount` is between 1 and 5 and defaults to 1.

## Types

Sixty categories, each a short action:

|            |            |             |          |             |
| ---------- | ---------- | ----------- | -------- | ----------- |
| `angry`    | `baka`     | `bite`      | `bleh`   | `blowkiss`  |
| `blush`    | `bonk`     | `bored`     | `carry`  | `clap`      |
| `confused` | `cry`      | `cuddle`    | `dance`  | `facepalm`  |
| `feed`     | `handhold` | `handshake` | `happy`  | `highfive`  |
| `hug`      | `kabedon`  | `kick`      | `kiss`   | `lappillow` |
| `laugh`    | `lurk`     | `nod`       | `nom`    | `nope`      |
| `nya`      | `pat`      | `peck`      | `poke`   | `pout`      |
| `punch`    | `run`      | `salute`    | `shake`  | `shocked`   |
| `shoot`    | `shrug`    | `sip`       | `slap`   | `sleep`     |
| `smile`    | `smug`     | `spin`      | `stare`  | `tableflip` |
| `teehee`   | `think`    | `thumbsup`  | `tickle` | `wag`       |
| `wave`     | `wink`     | `yawn`      | `yeet`   |             |

A type with nothing stored for it answers `404` rather than an empty list.

> **Warning**
>
> This is the one endpoint that answers `400` with `bad_request` for a bad
> `type`, where everything else uses `422` and `validation_error`. See
> [errors](/errors).

## Cost

Roleplay is in the `fetch` class. See [rate limits](/rate-limits).