This library is currently actively developed so the API might change a little bit.
Currently available features:
- Buckets
- Inputs
- Outputs
- Output rules
- Domain reservations
- Tokens
- Functions
- Function config variables
- Invoke function
- Function execution logs
- Tunnels
- Regions
- Webhook Logs
You need a working Go environment.
go get github.com/webhookrelay/webhookrelay-go
To authenticate, you will need to first get an API token key & secret pair here.
package main import ( "fmt" "log" "os" "github.com/webhookrelay/webhookrelay-go" ) func main() { // Construct a new Webhook Relay API object to perform requests api, err := webhookrelay.New(os.Getenv("RELAY_KEY"), os.Getenv("RELAY_SECRET")) if err != nil { log.Fatal(err) } bucket, err := api.CreateBucket(&webhookrelay.BucketCreateOptions{ Name: "sendgrid-to-segment", }) if err != nil { log.Fatal(err) } // all buckets get a default input that you can use to receive webhooks, // it can either be used with custom domain + path prefix (https://xxx.hooks.webhookrelay.com) // or input ID such as https://my.webhookrelay.com/v1/webhooks/xxx fmt.Println(bucket.Inputs[0].EndpointURL()) // Create a webhook forwarding destination for this webhook _, err = api.CreateOutput(&webhookrelay.Output{ BucketID: bucket.ID, Name: "segment", Destination: "https://webhooks.segment.com?b=yyyy", }) if err != nil { log.Fatal(err) } // list all buckets buckets, err := api.ListBuckets(&webhookrelay.BucketListOptions{}) if err != nil { log.Fatal(err) } fmt.Println(buckets) // print buckets }