> ## 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.

# Position Volume Milestone

> Fire a webhook when a position's cumulative volume crosses a USD milestone.

<Note>
  **Event:** `position_volume_milestone` \
  **Cost:** 0.2 credits per delivery
</Note>

Fires when a position's cumulative volume crosses one of your USD milestones. The full payload schema is in the auto-generated [Position Volume Milestone callback](/api-reference/webhook-callbacks/position-volume-milestone-callback) reference; this page documents the filters and matching behavior.

## When to use this

* Track when a specific outcome token reaches a notable volume threshold.
* Watch a single side of a market (e.g. `Yes`) cross $100K or $1M in volume.
* Trigger alerts or workflows when a position hits a liquidity milestone within a chosen window.

## Subscription filters

Add these to the `filters` object when you create the subscription. `timeframes` is required.

| Filter              | Type       | Description                                                                         |
| ------------------- | ---------- | ----------------------------------------------------------------------------------- |
| `position_ids`      | string\[]  | Restrict to specific outcome tokens by position ID (max 500).                       |
| `condition_ids`     | string\[]  | Restrict to specific markets by condition ID (max 500).                             |
| `outcomes`          | string\[]  | Restrict by outcome name, e.g. `["Yes", "No"]` (max 500).                           |
| `timeframes`        | string\[]  | One or more windows: `1m`, `5m`, `30m`, `1h`, `6h`, `24h`, `7d`, `30d`, `lifetime`. |
| `milestone_amounts` | integer\[] | USD milestone thresholds to fire on (max 500).                                      |

## Example

```json theme={null}
{
  "url": "https://your-server.com/webhooks",
  "event": "position_volume_milestone",
  "filters": {
    "outcomes": ["Yes"],
    "timeframes": ["24h"],
    "milestone_amounts": [100000, 1000000]
  }
}
```

## Notes

* `milestone_amounts` are USD thresholds. Each amount fires once when the position's cumulative volume crosses it.
