Hi Tyler,
If you run this code
client = Pdfcrowd::Client.new("*", "*")
pdf = client.convertURI('http://example.com')
print pdf.length
what does it print? It should be a non-zero number.
If you write it to a file, can you open it in a PDF viewer?
f = File.new("example_com.pdf", "wb")
f.write(pdf)
f.close
As for the S3, do you mean that the API would return a URL pointing to the generated PDF instead of the PDF file itself?