VotePipe

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}/hylistio

Example: 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

HeaderDescription
X-Hylist-SignatureHMAC-SHA256 signature in format sha256={hex}
User-AgentHylist.io/1.0
Content-Typeapplication/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:

vote

Sent when a user votes for your server (processed by VotePipe)

test

Sent 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:

json
{ "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

FieldTypeDescription
eventstringEvent type: vote or test
serverobjectServer information (id, name, slug)
usernamestringVoter username (Hylist.io)
votes_totalintegerTotal votes for this event
user_votes_totalintegerTotal votes this user has cast for your server
timestampstringISO 8601 timestamp when the event occurred

Server Object

FieldTypeDescription
idstring (UUID)Your server's unique ID on Hylist.io
namestringYour server's display name
slugstringURL-friendly identifier for your server

Setup Instructions

Step 1: Create Provider in VotePipe

  1. Go to Add Provider and select Hylist.io
  2. Create the provider. VotePipe generates the webhook URL and secret.
  3. Copy the Webhook URL and Auth Key (secret). You will paste both in Hylist.io.

Step 2: Add Webhook in Hylist.io

  1. Go to hylist.io/dashboard/servers
  2. Click Edit on your server
  3. Open the Webhooks section
  4. In Add New Webhook, select HTTP as the type
  5. Paste the VotePipe webhook URL in URL
  6. Paste the secret (Auth Key from VotePipe) in Secret
  7. Save the webhook

Step 3: Verify

  1. Use the Test button in Hylist.io (if available) to send a test webhook
  2. VotePipe responds with 200 OK and {"status":"received","message":"Test webhook acknowledged"}
  3. 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: