ScreenshotNeo

BlogComparisons

CloudConvert vs PDFCrowd for Converting HTML Pages to PDF

Compare CloudConvert and PDFCrowd for URL and HTML-to-PDF workflows, layout controls, pricing, privacy, and API integration.

By the ScreenshotNeo team4 October 202612 min read

Short answer: Both CloudConvert and PDFCrowd document converting a public website URL to PDF. Choose CloudConvert if its job-and-export workflow fits your existing CloudConvert integration. Choose PDFCrowd when you need documented raw HTML or HTML archive input and a direct PDF-byte response. Neither vendor’s documentation establishes which renders arbitrary pages faster or more faithfully, so test representative pages before deciding.

If your application already has rendered HTML, PDFCrowd has the clearer documented path for sending that HTML directly. If you only have a public URL, both provide a documented route. Their pricing meters differ, so compare the cost of your own documents rather than comparing credit counts as if they were the same unit.

CloudConvert vs PDFCrowd at a glance

Need CloudConvert PDFCrowd
Convert a public URL Documented through the capture-website task with PDF output. Documented through the URL input of its HTML-to-PDF API.
Send raw HTML The reviewed website-capture operation requires a URL. Documented HTML string input; file and archive input are also documented.
Receive the PDF Create a job, run the capture task, then export its output as a URL. Successful HTTP response contains the PDF bytes.
Layout controls Capture documentation demonstrates margins and header/footer templates. Documentation lists page setup, CSS, JavaScript readiness, headers and footers, and PDF options.
Pricing meter Conversion credits are generally based on processing time and a conversion-type base. Credits are based on generated output size: one credit per 0.5 MB.
Retention detail reviewed No comparable retention detail was verified in this research. Vendor says submitted content is deleted from active processing systems within 30 minutes; URL logs default to 14 days and can be configured for no storage.

These are documented product behaviors, not results from hands-on tests. For the current feature set, see CloudConvert’s website capture documentation, PDFCrowd’s product overview, and PDFCrowd’s HTTP API guide.

How the API workflows differ

CloudConvert: create a job, capture, export

CloudConvert documents a capture-website task that takes a URL and produces PDF or image output. Its example uses the CloudConvert v2 jobs endpoint to submit a job, run the capture task, and export the output as a URL. Your application therefore needs to handle job submission and retrieve or download the exported result according to the job response.

The capture example demonstrates margins and header/footer templates, including placeholders for date, title, URL, page number, and total pages. Treat those as demonstrated controls rather than evidence that every print-layout option is supported; check the current operation parameters for your exact requirements.

PDFCrowd: submit input and consume PDF bytes

PDFCrowd documents a POST to https://api.pdfcrowd.com/convert/24.04/, authenticated with HTTP Basic authentication using a PDFCrowd username and API key. The request can provide a URL, raw HTML string, or an uploaded HTML file/archive. A successful response is HTTP 200 with PDF bytes in the response body, so write the response body to a file or stream it to your own storage.

For URL input, the page must be reachable from PDFCrowd’s servers; a local localhost address is not accessible to the service. For raw HTML, use absolute URLs or a <base> element for remote assets. When assets are local, use the supported archive input so the converter receives them with the HTML.

Choose based on your input and document requirements

  • Choose PDFCrowd for application-owned HTML when you want to submit a generated HTML string or a file/archive instead of publishing it at a reachable URL first.
  • Consider CloudConvert for URL capture when a job workflow and exported output URL fit your integration or existing CloudConvert usage.
  • Map required layout controls to current documentation. PDFCrowd lists page size, orientation, margins, page breaks, headers, footers, page numbers, print CSS, custom CSS and JavaScript, readiness controls, responsive viewport behavior, remote fonts and images, and protected content. It also lists watermarks, password protection, PDF/A, and tagged PDF output. Confirm the exact parameter and converter-version behavior before committing to a requirement.
  • Check CloudConvert’s operation parameters for your needs. Its capture page demonstrates header/footer templates and margins, but the reviewed example is not a complete feature-equivalence matrix.
  • Test with pages that represent production. Include long pages, image-heavy pages, dynamic content, custom fonts, print styles, page breaks, and authentication if those occur in your workload. Documentation alone cannot establish visual fidelity or speed for your pages.

Runnable API examples

Keep API credentials on a trusted server, load them from environment variables or a secrets manager, and avoid committing them to source control. The snippets below illustrate the documented request shapes; use the current vendor documentation for required job fields, parameters, and SDK conventions.

CloudConvert cURL job

curl https://api.cloudconvert.com/v2/jobs \
  -H "Authorization: Bearer $CLOUDCONVERT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tasks": {
      "capture": {
        "operation": "capture-website",
        "url": "https://example.com",
        "output_format": "pdf"
      },
      "export": {
        "operation": "export/url",
        "input": "capture"
      }
    }
  }'

This submits the job shape: inspect the returned job and task status, wait for completion, then use the export task’s result URL to download the PDF. CloudConvert’s documented capture workflow is job-based; do not assume this initial POST itself returns the finished PDF.

PDFCrowd cURL: convert a URL

curl -fS \
  -u "$PDFCROWD_USERNAME:$PDFCROWD_API_KEY" \
  -F "url=https://example.com" \
  https://api.pdfcrowd.com/convert/24.04/ \
  -o page.pdf

PDFCrowd cURL: convert raw HTML

curl -fS \
  -u "$PDFCROWD_USERNAME:$PDFCROWD_API_KEY" \
  -F 'text=<!doctype html><html><head><base href="https://example.com/"></head><body><h1>Report</h1></body></html>' \
  https://api.pdfcrowd.com/convert/24.04/ \
  -o report.pdf

For nontrivial HTML, construct the form safely in your HTTP client rather than hand-escaping shell text. A base URL helps relative asset references resolve; use absolute URLs where practical.

Python with PDFCrowd’s HTTP API

import os
import requests

username = os.environ["PDFCROWD_USERNAME"]
api_key = os.environ["PDFCROWD_API_KEY"]
response = requests.post(
    "https://api.pdfcrowd.com/convert/24.04/",
    auth=(username, api_key),
    data={"url": "https://example.com"},
    timeout=120,
)
response.raise_for_status()
with open("page.pdf", "wb") as pdf_file:
    pdf_file.write(response.content)

To send HTML instead, replace the data argument with data={"text": html_string}. For larger outputs, consider streaming the response to disk using the client’s streaming option rather than retaining all bytes in memory. The timeout is an application choice, not a vendor guarantee.

Node.js with PDFCrowd’s HTTP API

const username = process.env.PDFCROWD_USERNAME;
const apiKey = process.env.PDFCROWD_API_KEY;
const form = new FormData();
form.set('url', 'https://example.com');
const auth = Buffer.from(`${username}:${apiKey}`).toString('base64');

const response = await fetch('https://api.pdfcrowd.com/convert/24.04/', {
  method: 'POST',
  headers: { Authorization: `Basic ${auth}` },
  body: form,
  signal: AbortSignal.timeout(120_000),
});
if (!response.ok) {
  throw new Error(`PDFCrowd returned HTTP ${response.status}: ${await response.text()}`);
}
const pdf = Buffer.from(await response.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('page.pdf', pdf));

This uses the built-in fetch, FormData, and AbortSignal.timeout available in current Node.js releases. For an HTML input, set text in the form instead of url. Match the Node.js version and request options to your runtime.

Layout and rendering checklist

  1. Page geometry: specify paper size, orientation, and margins where available; verify CSS @page interaction and whether API settings override it.
  2. Page breaks: test long tables, headings near page bottoms, and CSS break rules. A page break that looks right in a browser may differ in a PDF renderer.
  3. Headers and footers: decide whether these are supplied as templates or part of the HTML. Verify page numbers and total-page placeholders with a multi-page document.
  4. Screen versus print styles: determine whether the converter uses print media and whether you need to enable or disable it. PDFCrowd documents settings related to print media and CSS @page; confirm current parameter names in its reference.
  5. Dynamic content: wait for the content your page needs before capture. A fixed delay can be wasteful or too short; where supported, use a readiness condition that reflects the finished document.
  6. Assets and fonts: verify that images, web fonts, stylesheets, and scripts are reachable from the conversion service. Use absolute asset URLs or package local resources as supported.
  7. Protected pages: check documented authentication or protected-content options, and avoid exposing credentials in URLs or logs.
  8. PDF requirements: if you need archival conformance, tagging/accessibility, watermarks, or password protection, validate the exact output against your acceptance criteria and current product parameters.

Pricing: compare actual documents, not credit counts

CloudConvert’s pricing page describes a free tier with 10 credits per day, a 1 GB maximum file size, a 5-minute maximum processing time, and 5 concurrent tasks. Its general pricing explanation says packages and subscriptions typically use one credit per minute plus a base amount by conversion type; it lists a one-credit base for general conversions and two credits for Office-to-PDF and iWork-to-PDF. Package credits do not expire, while subscription credits reset monthly. The reviewed page did not expose paid plan amounts, so this comparison does not state a CloudConvert price.

PDFCrowd says its trial includes 100 test API credits valid for one month. Its API credit meter charges one credit per 0.5 MB of generated output, with credits refreshing at the start of each billing period. Its plan selection distinguishes online usage, API credits, or both; the reviewed page capture did not expose monetary amounts.

These meters measure different things: CloudConvert’s explanation is oriented around processing time and a conversion-type base, while PDFCrowd’s is tied to output size. To estimate cost, run the same representative pages through each service, record the actual credit consumption and resulting file size, include retries and peak concurrency in your estimate, and check current plan prices before purchase. A credit from one service is not directly comparable to a credit from the other.

Privacy and data handling

PDFCrowd says uploaded files, submitted HTML, and generated PDF or image output are kept only as long as needed for processing and availability, then deleted from active processing systems within 30 minutes, with no backup copies of those content files. It separately says converted URLs can remain in conversion logs according to account retention settings, defaulting to 14 days, with an option for no URL storage. PDFCrowd identifies its operator as Pdfcrowd s.r.o. in the Czech Republic, publishes subprocessors, and offers a DPA for business customers. These are vendor disclosures; review current terms and legal documents for procurement.

This research did not verify equivalent detailed CloudConvert retention terms. Do not infer that the policies match. For personal, confidential, regulated, or customer data, review both vendors’ current privacy terms, DPA, subprocessors, transfer terms, deletion behavior, and access controls before sending content.

Reliability, performance, and operational design

  • Do not select by unverified speed claims. The reviewed documentation provides no independent benchmark of conversion speed or fidelity. Measure your own pages and compare output against expected PDFs.
  • Budget timeouts for rendering. Remote assets and dynamic scripts can delay completion. Set a client timeout suitable for your workload, then handle timeouts explicitly; a timed-out client request does not by itself establish whether server-side work finished.
  • Bound concurrency. CloudConvert’s stated free-tier limit is 5 concurrent tasks. Check your account’s current limits and avoid flooding either API with unbounded jobs.
  • Retry selectively. Retry transient network failures and retryable server errors with backoff and a cap. Do not repeatedly submit invalid input, inaccessible URLs, or documents that deterministically exceed limits.
  • Validate output. Check HTTP/job completion, PDF signature or parseability, expected page count, and essential visual elements before publishing or emailing a document.
  • Track cost per useful document. Record input type, output size, elapsed time, credit consumption, failure rate, and retry count for a representative sample. Use current plan terms when projecting monthly spend.

Troubleshooting

Symptom Likely cause What to check or fix
PDFCrowd cannot convert the URL The target is private, local, blocked, or otherwise unreachable from the converter. Use a publicly reachable URL or submit HTML and its assets through a supported input. A service cannot fetch your local localhost.
Images or styles are missing Relative URLs resolve against the wrong location, assets are local-only, or remote resources are inaccessible. Use absolute asset URLs or a <base> element; package local files in a supported archive and confirm the service can access remote resources.
Dynamic sections are empty Conversion began before client-side content was ready, or scripts/resources did not load. Use the product’s documented readiness or wait options; check console/network dependencies where possible, and avoid relying on an arbitrary short delay.
CloudConvert job has no PDF download yet The capture or export task is still running, failed, or the export result has not been read. Inspect job and task statuses, handle errors, wait for completion, then fetch the URL from the export task result.
HTTP 401 or 403 Credentials are missing, invalid, malformed, or lack the required access. Check the correct username/key or bearer token, authorization header formatting, and account permissions. Keep secrets out of client-side code.
HTTP 400 or rejected settings Input fields or option names do not match the selected API/version. Validate the request against current operation and parameter references; reduce to a minimal request, then add options back incrementally.
Truncated PDF or client memory pressure The response is large and the integration buffers all bytes or interrupts transfer. Stream output to disk or object storage where possible, increase suitable client limits, and verify the complete PDF before use.
Unexpected page breaks or layout changes Print CSS, page geometry, fonts, or rendering defaults differ from the browser preview. Specify page size and margins, test print styles and break rules, wait for fonts/assets, and compare a multi-page sample.
Conversion cost exceeds estimate Processing time, output size, retries, or input mix differed from the sample. Measure representative documents, separate large/complex cases, reduce unnecessary output or retries, and recheck current credit and plan rules.

Or skip the browser setup

If your goal is a clean website screenshot rather than a paginated PDF, ScreenshotNeo is the alternative to try first: it returns a screenshot or PDF from one GET request. Its options include PDF page size, margins, orientation, and page ranges; consult the ScreenshotNeo API documentation for request parameters.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo accepts cookie and consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing, and responses identify the page verdict and billing state. Its MCP server lets AI agents use screenshot, page-info, and PDF-capture tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Use it when that capture workflow fits your output needs.

Sign up free for 1,000 screenshots a month, no card required.

FAQ

Can either service convert a page on my laptop?

A URL must be reachable from the vendor’s infrastructure. PDFCrowd explicitly documents raw HTML and archive inputs, which can work when your application supplies the content and assets rather than exposing a local URL.

Do their credit systems make one service cheaper?

Not by themselves. One meter is based generally on processing time and conversion type; the other is based on generated output size. Compare your actual documents and current plan prices.

Does the reviewed research prove which creates a more accurate PDF?

No. It reviewed vendor documentation, not side-by-side conversion tests. Use a visual acceptance set based on your own pages and document requirements.

Does PDFCrowd’s retention disclosure describe CloudConvert too?

No. The reviewed material did not verify comparable CloudConvert retention details. Read each vendor’s current privacy and security terms separately.

Sources