Connecting fermentation sensors (Tilt, iSpindel, RAPT)
Floating hydrometers can push gravity and temperature straight into MakeWine over HTTP. Each fermentation batch gets its own webhook URLs and a private ingest token, so readings land on the right batch automatically.
Find your setup details
- Open the wine, then open the 📡 Hardware tab. If the wine has more than one batch, pick it from the Batch selector.
- Note the Fermentation ID shown in the callout — your device must include it in every payload. Active batches show an Active — accepting readings badge.
- For copy-paste URLs that already include your ingest token, go to Fermentations in the main navigation and press 📡 Sensor setup on the batch. You get one URL per device type (Tilt, iSpindel, RAPT) with a Copy button beside each.
The ingest token
Webhooks are public endpoints, so every push must carry the batch's ingest token — either appended to the URL as ?token=... (most sensor firmwares let you set the full POST URL) or sent as an X-Ingest-Token header. Requests without a valid token are rejected with a 401. If a token leaks, press Rotate token in the sensor setup panel; existing devices will then need the new URL.
Configure your device
All three endpoints accept an HTTP POST with JSON:
| Device | Endpoint | Notes |
|---|---|---|
| Tilt Hydrometer | /api/webhooks/tilt | Via Tilt Pi or a cloud bridge. Send fermentationId, color, gravity, temp, tempUnit — Fahrenheit is converted for you. |
| iSpindel | /api/webhooks/ispindel | Standard iSpindel HTTP push; the angle is stored as tilt. Add fermentationId as a custom parameter in the config portal. |
| RAPT Pill / generic | /api/webhooks/rapt | Send fermentationId, gravity, temperature (Celsius) and tilt. |
The 📡 Hardware tab shows a ready-made example payload and, for iSpindel, the exact server, port and path values to enter in its configuration portal.
Watch the data arrive
Back on the 📡 Hardware tab, the Live Readings chart plots gravity and temperature over time. Once readings flow you also get summary figures for Current gravity, Temperature and Attenuation — a quick read on how far fermentation has progressed. Data typically appears within minutes of the first successful push.
Troubleshooting
- 401 response — the token is missing or wrong. Re-copy the URL from Sensor setup, or check the
X-Ingest-Tokenheader. - 400 "fermentation not found" — the
fermentationIdin the payload doesn't match an existing batch. - Nothing on the chart — confirm the device is POSTing JSON and that you're viewing the same batch in the Batch selector.
Sensor webhooks work on every plan, including the free Cellar Hand tier.