Shotlink is a lightweight and efficient REST API service written in Go that allows you to capture high-quality screenshots of websites programmatically. Designed for developers, automation tools, monitoring systems, and visual reporting platforms, Shotlink leverages Chrome Headless via chromedp to render fully interactive web pages—including dynamic JavaScript content and custom styles.
- Make a request: Send a GET request to
https://shotlink.nexvul.com/get?url=<URL>, replacing<URL>with the website you want to capture. - Receive the screenshot: The server will respond with a PNG image of the website screenshot.
curl -X GET "https://shotlink.nexvul.com/get?url=https://example.com" -o screenshot.png- Go 1.18 or later
chromedppackage for browser automationcdprotopackage for Chrome DevTools Protocolemulationpackage for viewport emulationcontextpackage for managing request contexttimepackage for request timeoutnet/httppackage for handling HTTP requestslogpackage for logging errors
- Clone the repository:
git clone https://github.com/Gausix/Shotlink
- Change into the project directory:
cd Shotlink - Install the required Go packages:
go mod tidy
- Run the server:
go run main.go
- Access the service at
http://localhost:8080/get?url=<URL>. Replace<URL>with the website you want to capture.
