Hello Steve,
To avoid the 503 error, it is perfectly ok to sleep() for a few seconds and then resend the unsuccessful API request. Here is a pseudocode example:
tries = 0
success = False
while not success:
tries += 1
try:
call the API
success = True
catch (pdfcrowd.Error why):
if tries == 5:
some serious error, log or re-throw the exception
else:
sleep(1 or 2 seconds)
Hope this helps. You can learn more about the API limitations at
http://pdfcrowd.com/api/html-to-pdf-api/#api-ref-limitations