Go
Read genko.me entries from Go using only net/http and encoding/json.
The genko.me delivery API is a REST API: send a GET request with an X-API-KEY header and receive JSON. Go's standard net/http and encoding/json packages are enough.
What to use
There is no official Go module. You do not need go get. Requests use net/http, encoding/json, and net/url; signature verification uses crypto/hmac and crypto/sha256. All are in the standard library.
This guide uses a small Client type that passes responses to the HTTP caller, and structs with field tags. You could decode into map[string]any, but a mistyped field ID would no longer be caught when compiling.
Good fit
- Add announcements, case studies, or documentation managed by non-engineers to a Go web server.
- Write a small generator outside Hugo that fetches entries at build time and produces static HTML.
- Receive entry-change webhooks in a long-running process to clear a cache or trigger a rebuild.
- Fetch lists of entries on a schedule and sync them to another system.
Limitations
- Creating or updating entries. The delivery API is read-only. Create and publish entries in the dashboard.
- Generating types from the schema.
@genko-me/cligenerates TypeScript definitions. Define Go structs to match the schema in the dashboard yourself. - Showing a list of drafts. A
draftKeycan fetch only one entry. - Full-text search.
qperforms a case-insensitive substring match, without relevance ranking or linguistic analysis.
Cache the response
Calling the delivery API in every handler adds an external HTTP round trip to each page view. The limit is 300 requests per minute per API key. Keep results in a process-local cache and invalidate them with a webhook.
Delivery API responses include Cache-Control: private, no-store, so an intermediate HTTP cache will not cache them. Manage the cache in your app.
Reuse your http.Client: making a new one for every call prevents connection reuse. Always set a Timeout. The default http.DefaultClient has none and can wait indefinitely for a response.
Next steps
- Get started: configure an API key and show a list and a single entry
- Tutorial: pagination, previewing drafts, and webhook signature verification
- Delivery API: endpoint and response specifications
Last updated: October 6, 2026