Appearance
@gethook/go — SDK Reference
About 941 wordsAbout 3 min
Installation
go get github.com/gethook/gethook-goSetup
import (
"context"
gethook "github.com/gethook/gethook-go"
)
cfg := gethook.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer hk_your_api_key")
cfg.Servers = []gethook.ServerConfiguration{{URL: "https://api.gethook.to"}}
client := gethook.NewAPIClient(cfg)
ctx := context.Background()Error handling
sources, resp, err := client.SourcesAPI.ListSources(ctx).Execute()
if err != nil {
fmt.Printf("Error %d: %v\n", resp.StatusCode, err)
}Health
client.HealthAPI.Healthz(ctx).Execute()
Liveness check.
Returns: object
result, _, err := client.HealthAPI.Healthz(ctx).Execute()client.HealthAPI.Readyz(ctx).Execute()
Readiness check.
Returns: object
result, _, err := client.HealthAPI.Readyz(ctx).Execute()Accounts
client.AccountsAPI.CreateAccount(ctx).Body(body).Execute()
Create account.
Creates a new account and returns a bootstrap API key. No authentication required.
Parameters:
bodyCreateAccountRequest— Request body
Returns: AccountBootstrapData
body := gethook.CreateAccountRequest{
Name: gethook.PtrString("My Company"),
}
result, _, err := client.AccountsAPI.CreateAccount(ctx).Body(body).Execute()Auth
client.AuthAPI.Login(ctx).Body(body).Execute()
Login with email and password.
Authenticates with email/password and returns a fresh API key on success.
Parameters:
bodyLoginRequest— Request body
Returns: AccountBootstrapData
body := gethook.LoginRequest{
Email: gethook.PtrString("admin@example.com"),
Password: gethook.PtrString("supersecret"),
}
result, _, err := client.AuthAPI.Login(ctx).Body(body).Execute()client.AuthAPI.Register(ctx).Body(body).Execute()
Register with email and password.
Creates a new account with email/password credentials and returns a bootstrap API key.
Parameters:
bodyRegisterRequest— Request body
Returns: AccountBootstrapData
body := gethook.RegisterRequest{
Email: gethook.PtrString("admin@example.com"),
Name: gethook.PtrString("My Company"),
Password: gethook.PtrString("supersecret"),
}
result, _, err := client.AuthAPI.Register(ctx).Body(body).Execute()API Keys
client.ApiKeysAPI.ListApiKeys(ctx).Execute()
List API keys.
Returns: APIKey[]
result, _, err := client.ApiKeysAPI.ListApiKeys(ctx).Execute()client.ApiKeysAPI.CreateApiKey(ctx).Body(body).Execute()
Create API key.
Creates a new API key for the authenticated account. The full key is only returned once.
Parameters:
bodyCreateAPIKeyRequest— Request body
Returns: APIKeyWithSecret
body := gethook.CreateAPIKeyRequest{
Name: gethook.PtrString("production"),
}
result, _, err := client.ApiKeysAPI.CreateApiKey(ctx).Body(body).Execute()client.ApiKeysAPI.DeleteApiKey(ctx, "<id>").Execute()
Revoke API key.
Parameters:
id— API key UUID
Returns: void
_, err := client.ApiKeysAPI.DeleteApiKey(ctx, "<id>").Execute()Sources
client.SourcesAPI.ListSources(ctx).Execute()
List sources.
Returns: Source[]
result, _, err := client.SourcesAPI.ListSources(ctx).Execute()client.SourcesAPI.CreateSource(ctx).Body(body).Execute()
Create source.
Creates a new webhook source endpoint. Returns an ingest_url to share with the event sender.
Parameters:
bodyCreateSourceRequest— Request body
Returns: Source
body := gethook.CreateSourceRequest{
Name: gethook.PtrString("Stripe webhooks"),
}
result, _, err := client.SourcesAPI.CreateSource(ctx).Body(body).Execute()client.SourcesAPI.GetSource(ctx, "<id>").Execute()
Get source.
Parameters:
id— Source UUID
Returns: Source
result, _, err := client.SourcesAPI.GetSource(ctx, "<id>").Execute()Destinations
client.DestinationsAPI.ListDestinations(ctx).Execute()
List destinations.
Returns: Destination[]
result, _, err := client.DestinationsAPI.ListDestinations(ctx).Execute()client.DestinationsAPI.CreateDestination(ctx).Body(body).Execute()
Create destination.
Creates a new webhook delivery destination. The signing_secret is encrypted at rest and never returned.
Parameters:
bodyCreateDestinationRequest— Request body
Returns: Destination
body := gethook.CreateDestinationRequest{
Name: gethook.PtrString("My endpoint"),
Url: gethook.PtrString("https://example.com/webhooks"),
}
result, _, err := client.DestinationsAPI.CreateDestination(ctx).Body(body).Execute()client.DestinationsAPI.GetDestination(ctx, "<id>").Execute()
Get destination.
Parameters:
id— Destination UUID
Returns: Destination
result, _, err := client.DestinationsAPI.GetDestination(ctx, "<id>").Execute()client.DestinationsAPI.UpdateDestination(ctx, "<id>").Body(body).Execute()
Update destination.
Parameters:
id— Destination UUIDbodyUpdateDestinationRequest— Request body
Returns: Destination
body := gethook.UpdateDestinationRequest{
Active: gethook.PtrString(true),
AuthConfig: gethook.PtrString("..."),
CustomHeaders: gethook.PtrString("..."),
}
result, _, err := client.DestinationsAPI.UpdateDestination(ctx, "<id>").Body(body).Execute()Routes
client.RoutesAPI.ListRoutes(ctx).Execute()
List routes.
Returns: Route[]
result, _, err := client.RoutesAPI.ListRoutes(ctx).Execute()client.RoutesAPI.CreateRoute(ctx).Body(body).Execute()
Create route.
Creates a routing rule that forwards matching events from a source to a destination.
Parameters:
bodyCreateRouteRequest— Request body
Returns: Route
body := gethook.CreateRouteRequest{
DestinationId: gethook.PtrString("uuid"),
}
result, _, err := client.RoutesAPI.CreateRoute(ctx).Body(body).Execute()Stats
client.StatsAPI.GetStats(ctx).Execute()
Get dashboard stats.
Returns: StatsData
result, _, err := client.StatsAPI.GetStats(ctx).Execute()Ingest
client.IngestAPI.Ingest(ctx).Execute()
Ingest webhook event.
Accepts an inbound webhook. The path token authenticates the source — no Bearer header required.
Returns: void
_, err := client.IngestAPI.Ingest(ctx).Execute()Events (Inbound)
client.EventsAPI.ListEvents(ctx).Limit(...).Offset(...).Execute()
List inbound events.
Parameters:
limitinteger— Max results (default 25, max 200) (optional)offsetinteger— Pagination offset (optional)
Returns: EventListData
result, _, err := client.EventsAPI.ListEvents(ctx).Limit(...).Offset(...).Execute()client.EventsAPI.GetEvent(ctx, "<id>").Execute()
Get inbound event.
Parameters:
id— Event UUID
Returns: EventDetailData
result, _, err := client.EventsAPI.GetEvent(ctx, "<id>").Execute()client.EventsAPI.ReplayEvent(ctx, "<id>").Execute()
Replay inbound event.
Creates a new queued copy of the event for re-delivery.
Parameters:
id— Event UUID
Returns: void
_, err := client.EventsAPI.ReplayEvent(ctx, "<id>").Execute()Events (Outbound)
client.OutboundEventsAPI.ListOutboundEvents(ctx).Limit(...).Offset(...).Execute()
List outbound events.
Parameters:
limitinteger— Max results (default 25, max 200) (optional)offsetinteger— Pagination offset (optional)
Returns: EventListData
result, _, err := client.OutboundEventsAPI.ListOutboundEvents(ctx).Limit(...).Offset(...).Execute()client.OutboundEventsAPI.PublishOutboundEvent(ctx).Body(body).Execute()
Publish outbound event.
Queues a new outbound event for delivery to all matching route destinations.
Parameters:
bodyPublishOutboundEventRequest— Request body
Returns: PublishOutboundData
body := gethook.PublishOutboundEventRequest{
Payload: gethook.PtrString("{"order_id":"123"}"),
}
result, _, err := client.OutboundEventsAPI.PublishOutboundEvent(ctx).Body(body).Execute()client.OutboundEventsAPI.GetOutboundEvent(ctx, "<id>").Execute()
Get outbound event.
Parameters:
id— Event UUID
Returns: EventDetailData
result, _, err := client.OutboundEventsAPI.GetOutboundEvent(ctx, "<id>").Execute()client.OutboundEventsAPI.ReplayOutboundEvent(ctx, "<id>").Execute()
Replay outbound event.
Parameters:
id— Event UUID
Returns: void
_, err := client.OutboundEventsAPI.ReplayOutboundEvent(ctx, "<id>").Execute()Brand & White-Labeling
client.BrandAPI.GetBrandSettings(ctx).Execute()
Get brand settings.
Returns: BrandSettings
result, _, err := client.BrandAPI.GetBrandSettings(ctx).Execute()client.BrandAPI.UpsertBrandSettings(ctx).Body(body).Execute()
Upsert brand settings.
Creates or replaces white-label brand settings for the account.
Parameters:
bodyUpsertBrandSettingsRequest— Request body
Returns: BrandSettings
body := gethook.UpsertBrandSettingsRequest{
CompanyName: gethook.PtrString("Acme Corp"),
DocsTitle: gethook.PtrString("Acme Webhooks"),
LogoUrl: gethook.PtrString("https://example.com/logo.png"),
}
result, _, err := client.BrandAPI.UpsertBrandSettings(ctx).Body(body).Execute()Custom Domains
client.CustomDomainsAPI.ListCustomDomains(ctx).Execute()
List custom domains.
Returns: CustomDomain[]
result, _, err := client.CustomDomainsAPI.ListCustomDomains(ctx).Execute()client.CustomDomainsAPI.CreateCustomDomain(ctx).Body(body).Execute()
Create custom domain.
Parameters:
bodyCreateCustomDomainRequest— Request body
Returns: CustomDomain
body := gethook.CreateCustomDomainRequest{
Domain: gethook.PtrString("webhooks.example.com"),
}
result, _, err := client.CustomDomainsAPI.CreateCustomDomain(ctx).Body(body).Execute()