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
chromedp
package for browser automationcdproto
package for Chrome DevTools Protocolemulation
package for viewport emulationcontext
package for managing request contexttime
package for request timeoutnet/http
package for handling HTTP requestslog
package 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.