Create uptime webhook
Create an uptime webhook. Requires an agency key (ak_). The webhook URL receives a POST request when a subscribed event fires.
curl -X POST "https://mythic-analytics.gulp.workers.dev/client/v1/links/webhooks?location_id=example_string" \
-H "Content-Type: application/json" \
-H "X-Location-Id: example_string" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"url": "https://api.acme-retail.com/webhooks/uptime",
"events": [
"link_down",
"link_up"
],
"name": "Ops on-call uptime alerts",
"method": "POST",
"headers": {},
"enabled": true
}'
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/links/webhooks?location_id=example_string"
headers = {
"Content-Type": "application/json",
"X-Location-Id": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"url": "https://api.acme-retail.com/webhooks/uptime",
"events": [
"link_down",
"link_up"
],
"name": "Ops on-call uptime alerts",
"method": "POST",
"headers": {},
"enabled": true
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/links/webhooks?location_id=example_string", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Location-Id": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"url": "https://api.acme-retail.com/webhooks/uptime",
"events": [
"link_down",
"link_up"
],
"name": "Ops on-call uptime alerts",
"method": "POST",
"headers": {},
"enabled": true
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"url": "https://api.acme-retail.com/webhooks/uptime",
"events": [
"link_down",
"link_up"
],
"name": "Ops on-call uptime alerts",
"method": "POST",
"headers": {},
"enabled": true
}`)
req, err := http.NewRequest("POST", "https://mythic-analytics.gulp.workers.dev/client/v1/links/webhooks?location_id=example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Location-Id", "example_string")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/links/webhooks?location_id=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-Location-Id'] = 'example_string'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"url": "https://api.acme-retail.com/webhooks/uptime",
"events": [
"link_down",
"link_up"
],
"name": "Ops on-call uptime alerts",
"method": "POST",
"headers": {},
"enabled": true
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "7c1e4a2b-9d3f-4a8e-b1c2-3d4e5f6a7b8c",
"name": "Uptime webhook: link_down, link_up",
"enabled": true,
"url": "https://api.acme-retail.com/webhooks/uptime",
"method": "POST",
"headers": {},
"events": [
"link_down",
"link_up"
],
"created_at": "2024-05-20T10:00:00.000Z",
"updated_at": "2024-05-20T10:00:00.000Z"
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
/links/webhooks
Target server for requests. Edit to use your own host.
Client API key as a bearer token. Use an agency key (ak_..., read-write) or a location secret key (sk_..., read-only). Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need links:read or links:write. See Using an mcp_ key over HTTP.
ak_..., read-write) or a location secret key (sk_..., read-only). Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need links:read or links:write. See Using an mcp_ key over HTTP.Target location (client) id. Required when authenticating with an agency key (ak_); alternative to the X-Location-Id header. Ignored for secret keys.
The media type of the request body
Target location (client) id. Required when authenticating with an agency key (ak_); alternative to the location_id query parameter.
Endpoint that receives the webhook POST. Must be http or https.
Events to subscribe to. Defaults to both if omitted. Only link_down and link_up are accepted.
Display name. Defaults to Uptime webhook: <events> if omitted.
HTTP method used when calling the webhook. Defaults to POST.
Custom headers sent with the webhook request.
Whether the webhook is active. Defaults to true.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Client API key as a bearer token. Use an agency key (ak_..., read-write) or a location secret key (sk_..., read-only). Format: Bearer ak_... or Bearer sk_.... Scoped keys (mcp_) are accepted too and need links:read or links:write. See Using an mcp_ key over HTTP.
Query Parameters
Target location (client) id. Required when authenticating with an agency key (ak_); alternative to the X-Location-Id header. Ignored for secret keys.
Headers
Target location (client) id. Required when authenticating with an agency key (ak_); alternative to the location_id query parameter.
Body
Endpoint that receives the webhook POST. Must be http or https.
https://api.acme-retail.com/webhooks/uptimeEvents to subscribe to. Defaults to both if omitted. Only link_down and link_up are accepted.
["link_down","link_up"]Display name. Defaults to Uptime webhook: \\<events\\> if omitted.
Ops on-call uptime alertsCustom headers sent with the webhook request.
Whether the webhook is active. Defaults to true.