> For the complete documentation index, see [llms.txt](https://wiki.crosswatch.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.crosswatch.app/crosswatch/scrobble/webhook-or-watcher.md).

# Webhook or Watcher

Use this page if you want the quick answer.

CrossWatch supports two scrobble input paths:

* **Watcher** — recommended
* **Webhooks** — event-driven alternative

### Use Watcher when

Choose **Watcher** if you want the supported path.

It is the right choice for most setups.

Why:

* supports multiple routes and profiles
* sends to Trakt, SIMKL, and MDBList
* handles more playback edge cases
* does not need Plex Pass or Emby Premiere

{% hint style="warning" %}
Watcher has more network impact than Webhooks.

This matters most for **Emby** and **Jellyfin**. Watcher polls their Sessions API about every `15s`.

That creates steady background traffic. Use it on servers you own.
{% endhint %}

Guide: [Watcher](/crosswatch/scrobble/watcher.md).

### Use Webhooks when

Choose **Webhooks** when server-pushed events fit your setup better.

This is most useful for Trakt-focused webhook flows.

Limits:

* Trakt only
* more fragile around HTTPS and reverse proxies
* Plex Pass or Emby Premiere may be required, depending on server

Guide: [Webhooks](/crosswatch/scrobble/webhooks.md).

### Run both only when they own different Plex servers

Most setups should use one path.

Use both only when they handle different Plex servers.

Good pattern:

* **Watcher** for a local Plex server
* **Webhooks** for a remote Plex server

Split them with Plex **Server UUID** filters.

{% hint style="warning" %}
Do not let the same Plex server feed both paths.

One play can create duplicate starts, stops, ratings, or progress updates.
{% endhint %}

### Filter basics for Plex

Plex scrobble filtering has three useful layers:

* **User filters** — allow only specific Plex users
* **Server UUID filters** — allow or block specific Plex servers
* **Library whitelist** — accept only selected Plex libraries

A Plex event must pass every enabled filter.

If a Plex library whitelist is set and an event has no usable library id, CrossWatch skips it.

Blacklist wins over whitelist for Plex server UUIDs.

### Quick decision

* Want the supported setup: use [Watcher](/crosswatch/scrobble/watcher.md)
* Want webhook endpoint setup: use [Webhooks](/crosswatch/scrobble/webhooks.md)
* Want the overview and setup flow: use [Scrobble](/crosswatch/scrobble.md)

### TLS note

{% hint style="warning" %}
If you expose webhook endpoints over `https://...`, use a publicly trusted certificate.

Self-signed certificates commonly break webhook delivery.
{% endhint %}

### Related topics

* [Scrobble](/crosswatch/scrobble.md) — overview and setup flow
* [Watcher](/crosswatch/scrobble/watcher.md) — recommended scrobble path
* [Webhooks](/crosswatch/scrobble/webhooks.md) — event-driven Trakt mode
* [Scrobble filters](/crosswatch/scrobble/scrobble-filters.md) — provider filter differences and Plex dual-source setup
* [Reverse proxies](/related-information/reverse-proxies.md) — webhook and WebSocket proxy rules


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.crosswatch.app/crosswatch/scrobble/webhook-or-watcher.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
