Webhook.site API
webhook.site · Developer Tools
Instantly create unique URLs to inspect incoming HTTP requests — see headers, body, and query params in real time. Perfect for testing webhooks. Free, no signup required.
Authentication
No authentication requiredFree to use with no key needed.
Sample Requests
POST
Create a webhook URL
Create a new unique URL to capture incoming requests.
https://webhook.site/token
Hover any highlighted part to learn what it does
Headers — extra info sent with the request
| Content-Type | application/json |
curl -X POST "https://webhook.site/token" \ -H "Content-Type: application/json"
import requests
headers = {
"Content-Type": "application/json"
}
response = requests.post(
"https://webhook.site/token",
headers=headers,
)
print(response.json())const url = 'https://webhook.site/token';
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://webhook.site/token"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://webhook.site/token")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://webhook.site/token";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET
Get requests
Retrieve all requests received at your webhook URL.
https://webhook.site/token/YOUR_UUID/requests
Hover any highlighted part to learn what it does
curl -X GET "https://webhook.site/token/YOUR_UUID/requests"
import requests
response = requests.get(
"https://webhook.site/token/YOUR_UUID/requests",
)
print(response.json())const url = 'https://webhook.site/token/YOUR_UUID/requests'; const response = await fetch(url); const data = await response.json(); console.log(data);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://webhook.site/token/YOUR_UUID/requests"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://webhook.site/token/YOUR_UUID/requests")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://webhook.site/token/YOUR_UUID/requests";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- Visit webhook.site in browser — you get a unique URL immediately
- No signup needed for testing
- Programmatically create URLs: POST https://webhook.site/token
- View requests: GET https://webhook.site/token/{uuid}/requests
- Use in Postman to inspect outgoing webhook payloads