Hylist.io Integration
Learn how to receive and verify webhooks from Hylist.io for vote notifications.
Webhook URL
Configure your webhook URL in the Hylist.io dashboard (Servers → Edit → Webhooks):
https://hooks.votepipe.com/{org_slug}/hylistioExample: https://hooks.votepipe.com/your-org/hylistio
Webhook Verification
Hylist.io uses HMAC-SHA256 signatures to verify webhook authenticity. Every webhook request includes the X-Hylist-Signature header.
Request Headers
| Header | Description |
|---|---|
X-Hylist-Signature | HMAC-SHA256 signature in format sha256={hex} |
User-Agent | Hylist.io/1.0 |
Content-Type | application/json |
Signature Format
sha256={hmac_hex}The signature is computed over the raw JSON body: HMAC-SHA256(body, secret), then sha256= + hex.
Webhook Events
Hylist.io sends webhooks for vote and test events:
voteSent when a user votes for your server (processed by VotePipe)
testSent when you trigger a test webhook in Hylist.io (acknowledged with 200, no vote created)
Vote Payload Format
Hylist.io sends vote data in the following format:
{
"event": "vote",
"server": {
"id": "80df6fb3-3fa2-4193-9fa7-1e46d49bd169",
"name": "Mythlane",
"slug": "mythlane"
},
"username": "TestPlayer",
"votes_total": 1,
"user_votes_total": 42,
"timestamp": "2026-01-25T11:07:49.572957856Z"
}The voter name is extracted from username.
Payload Fields
Root Fields
| Field | Type | Description |
|---|---|---|
event | string | Event type: vote or test |
server | object | Server information (id, name, slug) |
username | string | Voter username (Hylist.io) |
votes_total | integer | Total votes for this event |
user_votes_total | integer | Total votes this user has cast for your server |
timestamp | string | ISO 8601 timestamp when the event occurred |
Server Object
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Your server's unique ID on Hylist.io |
name | string | Your server's display name |
slug | string | URL-friendly identifier for your server |
Setup Instructions
Step 1: Create Provider in VotePipe
- Go to Add Provider and select Hylist.io
- Create the provider. VotePipe generates the webhook URL and secret.
- Copy the Webhook URL and Auth Key (secret). You will paste both in Hylist.io.
Step 2: Add Webhook in Hylist.io
- Go to hylist.io/dashboard/servers
- Click Edit on your server
- Open the Webhooks section
- In Add New Webhook, select HTTP as the type
- Paste the VotePipe webhook URL in URL
- Paste the secret (Auth Key from VotePipe) in Secret
- Save the webhook
Step 3: Verify
- Use the Test button in Hylist.io (if available) to send a test webhook
- VotePipe responds with
200 OKand{"status":"received","message":"Test webhook acknowledged"} - Votes will now flow from Hylist.io → VotePipe → your callbacks and Discord
Important
VotePipe generates the webhook URL and secret when you create the provider. Copy both to Hylist.io. The secret is only shown once in VotePipe—if you lose it, regenerate it in your provider settings and update it in Hylist.io.
Troubleshooting
Webhook not receiving votes
- Verify the webhook URL in Hylist.io matches exactly:
https://hooks.votepipe.com/your-org/hylistio - Ensure you selected HTTP webhook type (not another type)
- Check that the provider is enabled in VotePipe
Authentication errors (401)
- Ensure the Secret in Hylist.io matches the Auth Key from VotePipe exactly
- No extra spaces before or after the secret
- If you lost the secret, regenerate it in VotePipe (Providers → your Hylist.io provider → Regenerate) and update it in Hylist.io
Signature mismatch
- The signature is computed as:
sha256=HMAC-SHA256(raw_body, secret) - Ensure you're using the raw JSON body, not re-stringified JSON
- Verify the Secret in Hylist.io matches the Auth Key from VotePipe exactly
Still having issues? Check our general troubleshooting guide.
API Management
You can manage providers programmatically using the API: