Microservice pipelines
Embed screenshot capture in Go microservices that process URLs from queues, APIs, or event streams.
Add web capture to any Go service — HTTP servers, CLI tools, or background workers. Capture screenshots, generate PDFs, record videos, and extract HTML with a single function call. No CGo, no browser binaries.
Embed screenshot capture in Go microservices that process URLs from queues, APIs, or event streams.
Build command-line tools that capture visual evidence of deployments, staging environments, or monitoring dashboards.
Convert any web page to PDF with paper size and margin controls — ideal for invoice and report generation.
Leverage Go concurrency to submit thousands of capture requests in parallel with goroutines.
PNG, JPEG, WebP, full-page PDF, raw HTML, and video screencasts from one endpoint.
Click, type, scroll, navigate, and wait before capture — handle logins, cookie banners, and dynamic content.
Render geo-gated pages from real browsers in any target country.
Deliver results to S3, Google Drive, Dropbox, Slack, and more — no upload code needed.
Capture entire sitemaps or crawl domains with built-in retries and progress tracking.
Run browser clients inside your network for compliance or latency requirements.
go get github.com/juliensobrier/screenshotcenter-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" 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) 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") 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)
} crawl, _ := client.Crawl.Create("https://example.com", "example.com", 100, nil)
result, _ := client.Crawl.WaitFor(crawl.ID, nil)
fmt.Println(result.TotalDiscovered) // pages found No. The SDK is pure Go with no CGo dependencies. It makes HTTP calls to the ScreenshotCenter API — no browser binaries or system libraries needed.
Yes. The client is safe to use from multiple goroutines. Each request is independent and stateless.
Yes. Set the PDF parameter in the request and configure paper size, margins, and orientation.
chromedp requires a local Chrome installation and process management. ScreenshotCenter handles all of that — you get an API call instead of browser lifecycle code.
Get 500 captures on the free trial — no credit card required. Install the SDK and take your first screenshot in minutes.