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

# Webhook Payloads

> Payload shapes for each webhook event type

When your webhook endpoint receives a POST request, the body will contain an `events` array with one or more event objects:

```json theme={null}
{
  "events": [WebhookEvent, ...]
}
```

## Common Fields

Each event object in the `events` array includes these fields:

| Field             | Type      | Description                            |
| ----------------- | --------- | -------------------------------------- |
| `eventId`         | string    | Unique identifier for this event       |
| `eventType`       | string    | The type of event (see sections below) |
| `walletAddresses` | string\[] | The audience for this event            |

***

## new-feed-item

Triggered when an actor trades a token.

```json theme={null}
{
  "eventId": "string",
  "eventType": "new-feed-item",
  "reason": "first-buy",
  "walletAddresses": ["0x..."],
  "feedItem": HydratedPosition
}
```

### Fields

| Field             | Type                                                  | Description                                                   |
| ----------------- | ----------------------------------------------------- | ------------------------------------------------------------- |
| `reason`          | `"first-buy"` \| `"repeat-buy"` \| `"aped-in"`        | Why this buy was considered noteworthy                        |
| `walletAddresses` | string\[]                                             | Addresses that follow the trader                              |
| `feedItem`        | [HydratedPosition](/response-types/hydrated-position) | The position card for this trade                              |
| `externalIds`     | string\[]                                             | External IDs for the audience (optional, only present if set) |

### Reasons

`new-feed-item` webhooks are generated for noteworthy buys. Sells do not generate `new-feed-item` follower webhooks.

| Reason       | Meaning                                                                                                                                      |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `first-buy`  | The trader's first buy of this token within Clicker's notification counter window. The counter is keyed by trader address and token address. |
| `repeat-buy` | This buy caused the trader's cumulative buy amount for this token to cross the notification threshold. The current threshold is \$1,000.     |
| `aped-in`    | This buy was significantly larger than the trader's average buy for this token. The current rule is current buy > 1.4x average buy size.     |

The notification counter window is two weeks and is extended on each evaluated buy. If a trader buys, sells, then buys the same token again within that window, the second buy is not a `first-buy`, but it can still generate a webhook if it qualifies as `repeat-buy` or `aped-in`.

***

## comment-created

Triggered when an actor comments on their trade.

```json theme={null}
{
  "eventId": "string",
  "eventType": "comment-created",
  "walletAddresses": ["0x..."],
  "feedItem": HydratedPosition,
  "comment": SwapCommentResponse
}
```

### Fields

| Field             | Type                                                         | Description                                                   |
| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------- |
| `walletAddresses` | string\[]                                                    | Addresses that follow the commenter                           |
| `feedItem`        | [HydratedPosition](/response-types/hydrated-position)        | The position card for this trade                              |
| `comment`         | [SwapCommentResponse](/response-types/swap-comment-response) | The actor's comment                                           |
| `externalIds`     | string\[]                                                    | External IDs for the audience (optional, only present if set) |

***

## copyswap

Triggered when an actor copies the subscriber's trade.

```json theme={null}
{
  "eventId": "string",
  "eventType": "copyswap",
  "walletAddresses": ["0x..."],
  "feedItem": HydratedPosition,
  "comment": SwapCommentResponse,
  "copyswapActor": FeedActor,
  "copyswapTrade": Trade
}
```

### Fields

| Field             | Type                                                                      | Description                                                       |
| ----------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `walletAddresses` | string\[]                                                                 | The comment author's address (whose trade was copied)             |
| `feedItem`        | [HydratedPosition](/response-types/hydrated-position)                     | The original position that was copied                             |
| `comment`         | [SwapCommentResponse](/response-types/swap-comment-response)              | The comment associated with the copytrade                         |
| `copyswapActor`   | [FeedActor](/response-types/feed-actor)                                   | The profile of the user who copied the trade                      |
| `copyswapTrade`   | [Trade](/response-types/feed-response#schema-items-items-metadata-trades) | The trade details of the copy (same shape as a trade in the feed) |
