XToys webhook

XToys is a cloud relay for many additional toys. Wire ToyControl through XToys to drive devices we do not yet support directly.

XToys is a popular browser-based toy controller with native support for a wide range of devices, and it can also bridge to buttplug.io. It also exposes a webhook that any external app can call to drive an XToys-connected toy.

ToyControl uses this webhook as a fallback for toys we do not yet support directly. If you have a toy that is not in our supported list, XToys may already handle it, and ToyControl can drive it through XToys.

When to use the XToys webhook

If your toy is supported by ToyControl directly, do not use XToys. The direct path is faster and does not require a second tab.

What you need

Step 1: Pair your toy in XToys

  1. Open xtoys.app in another tab.
  2. Sign in.
  3. Use XToys' own connect flow to pair your toy. They have device-specific guides on their site.

Step 2: Get your XToys webhook URL

  1. In XToys, find your toy in the connected devices list.
  2. Look for the webhook URL associated with that toy. XToys provides a unique URL per device.
  3. Copy the URL.

The URL looks like https://xtoys.app/api/... followed by your toy's unique identifier.

Step 3: Add the webhook backend in ToyControl

  1. In ToyControl, click the + in the Devices section of the sidebar.
  2. Pick XToys Webhook from the catalog.
  3. A field appears asking for the webhook URL.
  4. Paste the URL you copied from XToys.
  5. Click Save or Add device.

ToyControl adds a row in the sidebar for the XToys-relayed toy. From now on, any source you run (Script Player, Patterns, Game Link, Connect to VR, Remote Control) drives this toy through XToys.

What this does

ToyControl's engine sends intensity values to the XToys webhook URL. XToys receives them and forwards to your toy via their relay. Latency is typically 100-300 ms (similar to The Handy's cloud path).

The two browser tabs (ToyControl and XToys) do not need to talk to each other directly. ToyControl sends to XToys' cloud; XToys' cloud relays to your toy.

Tuning the feel

Use ToyControl's standard controls:

The webhook path adds a small amount of latency on top of normal Bluetooth, which is unavoidable with cloud relays.

Multi-device sessions

You can mix and match. Pair a Lovense Lush directly in ToyControl, add a Magic Motion Eidolon through XToys Webhook, and run both in the same session. ToyControl handles them in parallel.

Privacy

XToys is a third-party service. Their privacy policy applies to anything you do in their app. Their relay sees the intensity commands that pass through. For maximum privacy, prefer ToyControl-direct supported toys; use the XToys webhook only when you need a toy we cannot reach.

Troubleshooting

Webhook URL does not work

Toy responds late

Toy works in XToys but not through ToyControl

Related