← BACK TO GUIDES

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)
}