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

# Pricing

> How webhook usage is billed in credits.

Webhooks are billed **per delivered event**. You're only charged when an event matching your subscription is successfully delivered to your endpoint.

## Per-Event Rates

Each event type has its own rate per delivery:

| Event                       | Rate per delivery |
| --------------------------- | ----------------- |
| `trader_first_trade`        | 0.1 credits       |
| `trader_new_market`         | 0.1 credits       |
| `trader_whale_trade`        | 0.2 credits       |
| `trader_new_trade`          | 0.2 credits       |
| `trader_trade_event`        | 0.2 credits       |
| `trader_global_pnl`         | 0.1 credits       |
| `trader_market_pnl`         | 0.1 credits       |
| `trader_category_pnl`       | 0.1 credits       |
| `trader_position_resolved`  | 0.1 credits       |
| `trader_pnl_exits`          | 0.025 credits     |
| `position_holder_metrics`   | 0.025 credits     |
| `condition_holder_metrics`  | 0.025 credits     |
| `event_holder_metrics`      | 0.025 credits     |
| `condition_metrics`         | 0.1 credits       |
| `event_metrics`             | 0.1 credits       |
| `position_metrics`          | 0.1 credits       |
| `tag_metrics`               | 0.1 credits       |
| `market_volume_milestone`   | 0.2 credits       |
| `event_volume_milestone`    | 0.2 credits       |
| `position_volume_milestone` | 0.2 credits       |
| `price_spike`               | 0.2 credits       |
| `market_volume_spike`       | 0.2 credits       |
| `event_volume_spike`        | 0.2 credits       |
| `position_volume_spike`     | 0.2 credits       |
| `close_to_bond`             | 0.2 credits       |
| `market_created`            | 0.1 credits       |
| `oracle_events`             | 0.1 credits       |
| `asset_price_tick`          | 0.1 credits       |
| `asset_price_window_update` | 0.1 credits       |

<Note>Spike, milestone, and whale events cost 0.2 credits because they require heavier computation upstream. Exit markers and holder metrics cost 0.025 credits. All other events cost 0.1 credits.</Note>

## Integer Rounding

Credits are an integer-based unit, so every charge is **rounded up** to the nearest whole credit. For example, if a billing period accumulates 4.3 credits of webhook usage, you'll be charged **5 credits**.

This means very small amounts of usage still cost at least 1 credit. For accurate cost modelling, aggregate deliveries over longer windows rather than single events.

## Subscription Caps

Each plan has a cap on how many webhook subscriptions you can create across your organisation:

| Plan       | Max webhooks |
| ---------- | ------------ |
| Free       | 10           |
| Hobby      | 5,000        |
| Startup    | 25,000       |
| Scale      | 100,000      |
| Enterprise | Unlimited    |

If you need higher limits, reach out to us at [support@struct.to](mailto:support@struct.to).

## Example Calculations

<Accordion title="Monitoring 50 traders for whale trades over a day">
  A webhook subscribed to `trader_whale_trade` filtered to 50 wallets, receiving an average of 200 deliveries/day:

  ```
  200 × 0.2 = 40 credits/day
  ```
</Accordion>

<Accordion title="Tracking price spikes across 10 markets">
  A webhook subscribed to `price_spike` filtered to 10 condition IDs, averaging 80 deliveries/day:

  ```
  80 × 0.2 = 16 credits/day
  ```
</Accordion>

<Accordion title="Listening for new market creations">
  A webhook subscribed to `market_created` with no filters, averaging 15 new markets/day:

  ```
  15 × 0.1 = 1.5 → rounded up = 2 credits/day
  ```
</Accordion>

## Reducing Costs

* **Use filters.** Every event type supports filters that narrow which deliveries reach your endpoint. A `trader_whale_trade` webhook filtered to specific wallets is far cheaper than one with no filters.
* **Pick cheaper event types where possible.** If you only need to know that a trader entered a market, `trader_new_market` at 0.1 credits is half the cost of `trader_whale_trade` at 0.2.
* **Scope each subscription tightly.** Each webhook targets a single event with its own filters. Point each subscription at the narrowest event and filter set that meets your need rather than a broad event you then discard deliveries from.
* **Pause inactive webhooks.** If you temporarily don't need a subscription, pause it via the API rather than letting unused deliveries accumulate.
