> ## Documentation Index
> Fetch the complete documentation index at: https://api.fanvue.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Creator Messages

> creator.message.received, sent, read, deleted, and reaction events for a creator's direct messages.

These events mirror a creator's direct-message activity in real time. They are
the successor to the legacy `message.received`, `message.sent`, and
`message.read` events, plus new `deleted` and `reaction` events.

| Event (`type`)             | `data.object`      | Fires when                                                                |
| -------------------------- | ------------------ | ------------------------------------------------------------------------- |
| `creator.message.received` | message            | The creator receives an inbound message from a fan                        |
| `creator.message.sent`     | message            | An outbound creator → fan message is sent (UI, agency, automation, or AI) |
| `creator.message.read`     | fan\_message\_read | The creator marks a fan's messages as read                                |
| `creator.message.deleted`  | message            | A message is unsent/deleted                                               |
| `creator.message.reaction` | reaction           | A reaction is added to a message                                          |

All message events require the `read:chat` scope. Delivered in the
[Standard-Webhooks envelope](/creator/overview#event-envelope); the fields below
describe the `data` object.

<Note>
  Message events are **metadata-only** — they carry no message text or media.
  Use the [chat API](/api-reference/get-messages-from-a-chat) to fetch content
  when you need it. The conversation is addressed by the fan (`fan.uuid`); there
  is no separate chat id.
</Note>

## Message resource

Used by `creator.message.received`, `creator.message.sent`, and
`creator.message.deleted`.

| Field        | Type           | Description                                                               |
| ------------ | -------------- | ------------------------------------------------------------------------- |
| `object`     | string         | Always `"message"`                                                        |
| `uuid`       | string         | The message's unique identifier                                           |
| `sender`     | string         | `creator` or `fan`                                                        |
| `created_at` | string \| null | ISO 8601 time the message was created                                     |
| `deleted_at` | string \| null | ISO 8601 unsend time (set on `deleted`, `null` otherwise)                 |
| `creator`    | object         | `{ uuid }` of the creator who owns the conversation                       |
| `fan`        | object         | `{ uuid, email }` of the conversation counterpart (`email` may be `null`) |
| `metadata`   | object         | Your passthrough metadata map                                             |

### Example: `creator.message.received`

```json theme={null}
{
  "id": "f1a2b3c4-4444-4a2b-9c3d-aaaaaaaaaaaa",
  "type": "creator.message.received",
  "timestamp": "2026-06-09T08:39:33.139Z",
  "data": {
    "object": "message",
    "uuid": "2f7c5e8a-6d36-4e3a-98d9-9f1b3b0a1a10",
    "sender": "fan",
    "created_at": "2026-06-09T08:39:33.139Z",
    "deleted_at": null,
    "creator": { "uuid": "creator-uuid" },
    "fan": { "uuid": "fan-uuid", "email": "fan@example.com" },
    "metadata": {}
  }
}
```

`creator.message.sent` uses the same shape with `sender: "creator"`;
`creator.message.deleted` sets `deleted_at` to the unsend time.

## Read-receipt resource

Used by `creator.message.read`. This is a per-conversation read receipt, not a
message entity — it reports counts rather than a message uuid.

| Field                   | Type    | Description                                                |
| ----------------------- | ------- | ---------------------------------------------------------- |
| `object`                | string  | Always `"fan_message_read"`                                |
| `read_messages_count`   | integer | How many of the fan's messages were just marked read       |
| `unread_messages_count` | integer | The creator's remaining unread count for this conversation |
| `fan`                   | object  | `{ uuid, email }` of the conversation counterpart          |
| `creator`               | object  | `{ uuid }` of the creator who read the messages            |
| `metadata`              | object  | Your passthrough metadata map                              |

### Example: `creator.message.read`

```json theme={null}
{
  "id": "f1a2b3c4-5555-4a2b-9c3d-aaaaaaaaaaaa",
  "type": "creator.message.read",
  "timestamp": "2026-06-09T08:39:33.139Z",
  "data": {
    "object": "fan_message_read",
    "read_messages_count": 3,
    "unread_messages_count": 0,
    "fan": { "uuid": "fan-uuid", "email": "fan@example.com" },
    "creator": { "uuid": "creator-uuid" },
    "metadata": {}
  }
}
```

## Reaction resource

Used by `creator.message.reaction`.

| Field          | Type           | Description                                         |
| -------------- | -------------- | --------------------------------------------------- |
| `object`       | string         | Always `"reaction"`                                 |
| `message_uuid` | string         | The message that was reacted to                     |
| `emoji`        | string         | The reaction emoji                                  |
| `actor`        | object         | `{ uuid }` of the user who reacted                  |
| `creator`      | object         | `{ uuid }` of the creator who owns the conversation |
| `created_at`   | string \| null | ISO 8601 time the reaction was added                |
| `metadata`     | object         | Your passthrough metadata map                       |

### Example: `creator.message.reaction`

```json theme={null}
{
  "id": "f1a2b3c4-6666-4a2b-9c3d-aaaaaaaaaaaa",
  "type": "creator.message.reaction",
  "timestamp": "2026-06-09T08:39:33.139Z",
  "data": {
    "object": "reaction",
    "message_uuid": "2f7c5e8a-6d36-4e3a-98d9-9f1b3b0a1a10",
    "emoji": "❤️",
    "actor": { "uuid": "fan-uuid" },
    "creator": { "uuid": "creator-uuid" },
    "created_at": "2026-06-09T08:39:33.139Z",
    "metadata": {}
  }
}
```
