Go SDK
Official SDK for the ScreenshotCenter API. Capture screenshots, PDFs, HTML, and video — without writing raw HTTP calls.
Installation
terminal
go get github.com/juliensobrier/screenshotcenter-go
Package coming soon to pkg.go.dev — pkg.go.dev/github.com/juliensobrier/screenshotcenter-go
Quick start
main.go
import sc "github.com/juliensobrier/screenshotcenter-go"
client := sc.New("your_api_key")
shot, err := client.Screenshot.Create("https://example.com", nil)
if err != nil { log.Fatal(err) }
result, err := client.WaitFor(shot.ID, nil)
if err != nil { log.Fatal(err) }
fmt.Println(result.URL) // final URL
fmt.Println(result.Status) // "finished" More examples
Geo-targeting
shot, err := client.Screenshot.Create("https://example.com", &sc.CreateParams{
Country: "fr",
Lang: "fr-FR",
})
if err != nil { log.Fatal(err) }
result, _ := client.WaitFor(shot.ID, nil)
client.Screenshot.SaveImage(result.ID, "/tmp/fr.png", nil) PDF generation
t := true
shot, _ := client.Screenshot.Create("https://example.com", &sc.CreateParams{PDF: &t})
done, _ := client.WaitFor(shot.ID, nil)
client.Screenshot.SavePDF(done.ID, "/tmp/page.pdf") Error handling
result, err := client.WaitFor(shot.ID, &sc.WaitForOptions{Timeout: 60000})
switch e := err.(type) {
case *sc.ScreenshotFailedError:
fmt.Printf("screenshot failed: %s\n", e.Reason)
case *sc.TimeoutError:
fmt.Printf("timed out after %dms\n", e.TimeoutMs)
case *sc.ApiError:
fmt.Printf("API error %d: %s\n", e.Status, e.Message)
}