Official Go client for the SnapRender Screenshot API.
go get github.com/User0856/snaprender-gopackage main
import (
"context"
"log"
"os"
snaprender "github.com/User0856/snaprender-go"
)
func main() {
client := snaprender.NewClient("sk_live_YOUR_API_KEY")
// Capture a screenshot
img, err := client.Capture(context.Background(), "https://example.com", nil)
if err != nil {
log.Fatal(err)
}
os.WriteFile("screenshot.png", img, 0644)
}- URL, HTML, and Markdown screenshots
- Signed URLs (shareable, no API key needed)
- Device emulation (iPhone, iPad, Pixel, MacBook)
- Dark mode, ad blocking, cookie banner removal
- Full-page capture, custom viewports
- JSON response mode for AI integrations
- Zero external dependencies (stdlib only)
- Context support for cancellation and timeouts
img, err := client.Capture(ctx, "https://example.com", &snaprender.CaptureOptions{
Format: "jpeg",
Width: 1920,
DarkMode: snaprender.Bool(true),
Device: "iphone_15_pro",
})img, err := client.CaptureHTML(ctx, "<html><body><h1>Hello</h1></body></html>", nil)img, err := client.CaptureMarkdown(ctx, "# Hello World\n\nThis is **bold**.", nil)result, err := client.Sign(ctx, "https://example.com", &snaprender.SignOptions{
ExpiresIn: 86400, // 1 day
Format: "jpeg",
DarkMode: snaprender.Bool(true),
})
fmt.Println(result.SignedURL) // Use in <img> tags, emails, etc.result, err := client.CaptureJSON(ctx, "https://example.com", nil)
fmt.Println(result.Image) // base64 data URIusage, err := client.Usage(ctx)
fmt.Printf("Used: %d / %d\n", usage.Usage.ScreenshotsUsed, usage.Usage.ScreenshotsLimit)img, err := client.Capture(ctx, "https://example.com", nil)
if err != nil {
var apiErr *snaprender.Error
if errors.As(err, &apiErr) {
if apiErr.IsRateLimited() {
// Handle quota exceeded
}
fmt.Printf("API error: %s (%s)\n", apiErr.Message, apiErr.Code)
}
}| Method | Description |
|---|---|
Capture(ctx, url, opts) |
Screenshot a URL (returns bytes) |
CaptureHTML(ctx, html, opts) |
Screenshot raw HTML |
CaptureMarkdown(ctx, md, opts) |
Screenshot Markdown |
CaptureJSON(ctx, url, opts) |
Screenshot with JSON metadata |
Sign(ctx, url, opts) |
Generate a signed URL |
Usage(ctx) |
Get current usage stats |
MIT