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

# Update traffic filter

> Route unwanted traffic — wrong country, wrong device, proxies — to a fallback video.

The traffic filter inspects each viewer and, when they don't match your rules,
serves the fallback video instead of the real one. Rules combine: a viewer must
pass every configured list to see the main video.

This is a [merge-patch](/guides/merge-patch): send only the keys you want to
change and everything else keeps its stored value.

## Only Brazil, block proxies

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://api.vturb.com/v1/videos/{id} \
    -H "Authorization: Bearer vt_..." \
    -H "Content-Type: application/json" \
    -d '{ "traffic_filter": { "enabled": true, "countries": ["BR"], "block_proxy": true, "fallback_video_id": "66f2..." } }'
  ```

  ```json Body theme={null}
  {
    "traffic_filter": {
      "enabled": true,
      "countries": ["BR"],
      "block_proxy": true,
      "fallback_video_id": "66f2..."
    }
  }
  ```
</CodeGroup>

## The keys

| Key                 | Type             | Writes                                               |
| ------------------- | ---------------- | ---------------------------------------------------- |
| `enabled`           | boolean          | Master switch for the filter                         |
| `fallback_video_id` | string           | Video served to filtered-out viewers                 |
| `token`             | string           | Shared token a page can present to bypass the filter |
| `languages`         | array of strings | Allowed browser languages                            |
| `countries`         | array of strings | Allowed countries                                    |
| `devices`           | array of strings | Allowed device classes                               |
| `query_params`      | array of strings | Query params the page URL must carry                 |
| `block_proxy`       | boolean          | Filter out proxy/VPN traffic                         |

Arrays replace the stored list instead of merging with it: sending
`"countries": ["BR"]` overwrites whatever was there, so always send the full
list you want.
