Go
Learn how to install and use the Firmreader Go SDK, which requires Go 1.21 or later, to create posts, list posts, and handle API errors.
The Go SDK requires Go 1.21+. Every method takes a context.Context so you can apply timeouts and cancellation.
Install
go get github.com/firmreader/firmreader-go
Initialize the client
package main
import (
"os"
"github.com/firmreader/firmreader-go"
)
func main() {
client := firmreader.NewClient(os.Getenv("FIRMREADER_API_KEY")) // fr_live_...
_ = client
}
Create a post
post, err := client.Posts.Create(ctx, &firmreader.PostParams{
ChannelID: "ch_company_news",
Title: "Welcome to Firmreader",
Body: "We're excited to announce our new internal communications platform.",
Priority: "normal",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Published post %s\n", post.ID)
List posts
posts, err := client.Posts.List(ctx, &firmreader.ListParams{
ChannelID: "ch_company_news",
Limit: 20,
})
if err != nil {
log.Fatal(err)
}
for _, post := range posts.Data {
fmt.Println(post.Title)
}
Handle errors
The client returns a *firmreader.Error for non-2xx responses. Use errors.As to read the status and code.
var apiErr *firmreader.Error
if errors.As(err, &apiErr) {
fmt.Printf("%d: %s\n", apiErr.Status, apiErr.Code)
}
Set firmreader.WithIdempotencyKey("...") on any write call so retries don't create duplicate posts.
Last updated on
