HTTP Request
Created 16 Jan 2026·Updated 31 Jul 2026
Send custom HTTP requests to any API or webhook endpoint. Make GET, POST, PUT, PATCH, or DELETE requests with custom headers, body content, and configuration options.
What You Need
- The URL of the service or webhook you want to reach
- The HTTP method the service expects (usually GET or POST)
- Any access tokens or credentials the service requires
- What data format the service expects, if you're sending data
Quick Start
- Create or edit an alert
- Add the HTTP Request action
- Select HTTP method (GET, POST, etc.)
- Enter the URL
- Add headers if needed (JSON format)
- Add request body if needed
- Configure timeout and options
- Save and test
Configuration Options
Request Method
HTTP Method
- The type of HTTP request to send
- Options:
- GET: Retrieve data (most common for reading)
- POST: Send data to create resources
- PUT: Update existing resources (full replacement)
- PATCH: Partially update resources
- DELETE: Remove resources
- Required field
- Use GET for triggering endpoints that don't need data
- Use POST for sending alert data to webhooks
- Use PUT/PATCH for updating external systems
- Use DELETE for cleanup or removal operations
URL Configuration
URL
- The complete endpoint URL
- Must start with
http://orhttps:// - Can include query parameters:
?param1=value1¶m2=value2 - Supports placeholders:
{{ username }},{{ value }} - Required field
Example URLs:
https://api.example.com/webhook
https://hooks.slack.com/services/YOUR/WEBHOOK/URL
http://localhost:3000/alert?user={{ username }}&amount={{ value }}
Headers
Headers (JSON)
- Custom HTTP headers as JSON object
- Format:
{"Header-Name": "value", "Another-Header": "value"} - Common headers:
Content-Type: Specify body formatAuthorization: API authenticationUser-Agent: Identify your application
- Optional (default headers sent automatically)
Example Headers:
{
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN",
"X-Custom-Header": "value"
}
Headers must be valid JSON. Use double quotes around both keys and values. Invalid JSON will cause the request to fail.
Request Body
Request Body
- Data to send with POST/PUT/PATCH requests
- Can be JSON, form data, or plain text
- Supports dynamic placeholders
- Optional (not used for GET/DELETE typically)
Example Bodies:
JSON:
{
"username": "{{ username }}",
"amount": "{{ value }}",
"message": "{{ message }}",
"platform": "{{ platform }}"
}
Form Data:
username={{ username }}&amount={{ value }}&message={{ message }}
Plain Text:
User {{ username }} triggered alert with amount {{ value }}
Body Content Type
- Determines how body is formatted and sent
- Options:
- Auto-detect: Attempts to determine from body content
- JSON (application/json): For JSON APIs
- Form URL Encoded (application/x-www-form-urlencoded): For form submissions
- Plain Text (text/plain): For simple text data
- XML (application/xml): For XML APIs
- Optional (auto-detect if not specified)
Auto-detect examines your body content:
- Starts with
{or[→ JSON - Contains
key=value&→ Form - Starts with
<→ XML - Otherwise → Plain Text
Advanced Options
Timeout (seconds)
- Maximum time to wait for response
- In seconds
- Default: 30 seconds
- Prevents hanging on slow/unresponsive endpoints
- Optional
Follow Redirects
- Automatically follow HTTP redirects (301, 302, etc.)
- Checkbox (on/off)
- Enabled by default
- Disable if you need to handle redirects manually
Validate SSL Certificate
- Verify SSL/TLS certificates are valid
- Checkbox (on/off)
- Enabled by default
- Disable for self-signed certificates or local testing
Only disable SSL validation if you trust the endpoint and understand the security implications. This makes you vulnerable to man-in-the-middle attacks.
Setup Guide
Basic GET Request
-
Configure Request
- Method: GET
- URL:
https://api.example.com/trigger - Leave headers/body empty
-
Add Authentication (if needed)
- Headers:
{"Authorization": "Bearer YOUR_TOKEN"}
- Headers:
-
Test
- Save and trigger alert
- Check API receives request
POST JSON Data
-
Set Method
- Method: POST
- URL: Your webhook URL
-
Configure Headers
{
"Content-Type": "application/json"
} -
Add Body
{
"event_type": "tip",
"user": "{{ username }}",
"amount": {{ value }},
"message": "{{ message }}"
} -
Set Body Type
- Body Content Type: JSON
-
Test
- Trigger alert
- Verify endpoint receives JSON
Home Assistant Webhook
To trigger Home Assistant automation:
-
Create Webhook in Home Assistant
- Configuration → Automations → Create
- Trigger type: Webhook
- Note the webhook ID
-
Configure TipLink
- Method: POST
- URL:
http://homeassistant.local:8123/api/webhook/YOUR_WEBHOOK_ID - Body Type: JSON
- Body:
{
"username": "{{ username }}",
"amount": "{{ value }}"
}
Slack Webhook
To post messages to Slack:
-
Create Slack Webhook
- Slack → Apps → Incoming Webhooks
- Copy webhook URL
-
Configure TipLink
- Method: POST
- URL: Your Slack webhook URL
- Headers:
{
"Content-Type": "application/json"
}- Body:
{
"text": "{{ username }} tipped ${{ value }}!"
}
Discord Webhook (Alternative)
Alternative to built-in Discord action:
-
Get Discord Webhook URL
- Discord → Channel Settings → Integrations → Webhooks
-
Configure TipLink
- Method: POST
- URL: Your Discord webhook URL
- Body:
{
"content": "**{{ username }}** just tipped **${{ value }}**!"
}
API with Authentication
For APIs requiring authentication:
-
Bearer Token Auth
- Headers:
{
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
} -
API Key Auth
- Headers:
{
"X-API-Key": "YOUR_API_KEY"
} -
Basic Auth
- Headers:
{
"Authorization": "Basic BASE64_ENCODED_CREDENTIALS"
}
Self-Signed Certificate
For local HTTPS endpoints with self-signed certs:
-
Disable SSL Validation
- Uncheck "Validate SSL Certificate"
-
Use HTTPS URL
- URL:
https://localhost:8443/webhook
- URL:
-
Test
- Verify connection works
- Re-enable SSL validation when not needed
Common Use Cases
Webhook Notification
- Method: POST
- URL: Your webhook service
- Body: JSON with alert data
- Notify external systems
Update Dashboard
- Method: PUT
- URL: Dashboard API endpoint
- Body: Stats/metrics to update
- Real-time dashboard updates
Log to Database
- Method: POST
- URL: Logging service endpoint
- Body: Event data
- Persistent event storage
Trigger IFTTT
- Method: POST
- URL:
https://maker.ifttt.com/trigger/{event}/with/key/{key} - Body: IFTTT value1/value2/value3 JSON
- Connect to hundreds of services
Control Smart Home
- Method: POST
- URL: Smart home hub endpoint
- Body: Device commands
- Turn on lights, change colors, etc.
Send to Analytics
- Method: POST
- URL: Analytics API
- Body: Event tracking data
- Track viewer engagement
Custom Bot Integration
- Method: POST
- URL: Bot webhook endpoint
- Body: Command/action data
- Trigger custom bot actions
Troubleshooting
Request fails / no response
- Verify URL is correct and reachable
- Check firewall isn't blocking outbound requests
- Test URL in browser or Postman first
- Check TipLink logs for error details
401 Unauthorized / 403 Forbidden
- Verify authentication headers
- Check API key/token is valid
- Ensure proper header format
- Check API permissions
400 Bad Request
- Verify body format matches API expectation
- Check Content-Type header
- Validate JSON syntax
- Ensure required fields present
Timeout errors
- Increase timeout value
- Check endpoint responsiveness
- Verify network connectivity
- Endpoint may be overloaded
SSL certificate errors
- Verify endpoint has valid SSL cert
- Use http:// for local/dev endpoints
- Or disable SSL validation (not recommended for production)
Placeholders not replaced
- Check placeholder syntax:
{{ username }}notusername - Verify placeholder is valid for trigger type
- Placeholders work in URL, headers, and body
JSON parsing errors
- Validate JSON syntax (use JSON validator)
- Ensure double quotes (not single)
- Check for trailing commas (not allowed in JSON)
- Use JSON linter before saving
Body not sent
- Body only sent with POST/PUT/PATCH
- GET and DELETE typically don't use body
- Check method is correct