I have just read through lots of articles about how to create thumbnail screenshots and haven't found anything reliable.
Is there an api I can simply enter the url of the website I want to take a screenshot of and have it returned as an image using PHP?
Check out http://www.thumbalizr.com/apitools.php
Here's an example: http://api.thumbalizr.com/?url=http://www.google.com.au&width=250
It's very easy to use, and has a free plan for small use cases with other plans that should meet more advanced or demanding needs. Of course, there are hundreds of other services. But Thumbalizer is the most popular (according to Google) and is very easy to use.