AbuseGraph + Go
net/http client with secret key and site license header.
Env
ABUSEGRAPH_SITE=acme.com
ABUSEGRAPH_CHECK_URL=https://your-app.vercel.app/api/v1/check
ABUSEGRAPH_SECRET_KEY=sk_live_…
Client
package main
import (
"bytes"
"encoding/json"
"net/http"
"os"
)
func AbusegraphCheck(email, event string) (map[string]any, error) {
site := os.Getenv("ABUSEGRAPH_SITE")
body, _ := json.Marshal(map[string]string{
"email": email,
"event": event,
"site": site,
})
req, err := http.NewRequest("POST", os.Getenv("ABUSEGRAPH_CHECK_URL"), bytes.NewReader(body))
if err != nil {
return nil, err
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", os.Getenv("ABUSEGRAPH_SECRET_KEY"))
req.Header.Set("x-abusegraph-site", site)
res, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer res.Body.Close()
var out map[string]any
return out, json.NewDecoder(res.Body).Decode(&out)
}