I tried https://microlink.io/screenshot , which is great but their screenshot API support is limited to Node.JS and web embed. Their standalone CLI tool is returning malformed json and so couldn't be parsed by invoking it via exec() in code. Still, this is a good solution if you are looking for embedding screenshots into your website.
There's also - https://useflipp.com/features/screenshots , But the pricing is prohibitive.
I end-up building my own solution with https://go-rod.github.io with couple of lines of code, It's well-built and fast. I highly recommend rod for anyone who can code in Go for some browser automation.
Need karma! Please check contributor guidelines.