canonical: https://jentic.com/apis/api.doppio.sh/doppio

# Doppio Sh Doppio Render API

Jentic publishes the only available OpenAPI specification for Doppio Render API, keeping it validated and agent-ready. Doppio renders pixel-accurate PDFs and screenshots from a URL or raw HTML using a managed headless Chromium pool. The API exposes three modes - direct (synchronous binary response), sync (returns a hosted URL), and async (webhook-driven) - for both PDF and screenshot output. Authentication is a single Bearer-style API key passed in the Authorization header.

## For AI agents

Render PDFs and screenshots from URLs or raw HTML using Doppio's managed headless Chromium, with synchronous, hosted-URL, or async-webhook delivery modes.

## Scope

Does not handle template merging, e-signature, or document storage - use for converting URLs or HTML into PDFs and screenshots only.

## Capabilities

- Render a URL or HTML string to a PDF and stream the binary back in one request
- Render a synchronous PDF and receive a hosted URL for download instead of raw bytes
- Queue an asynchronous PDF render that posts the result to a webhook on completion
- Capture a full-page or viewport screenshot of any URL with custom width and viewport settings
- Receive screenshot output as binary, hosted URL, or async webhook delivery
- Configure waitFor selectors, timeouts, and emulated devices to render JavaScript-heavy pages reliably

## Use cases

### On-the-fly invoice PDF rendering

Finance and billing systems can render invoice PDFs by posting customer-specific HTML to `/render/pdf/direct` and streaming the binary response straight to S3 or to the customer email. Direct mode keeps latency under a second for simple HTML and avoids the round trip of polling. The same template HTML works for receipts, statements, and quotes.

Example prompt: POST to `/render/pdf/direct` with HTML content and viewport options, then stream the binary PDF response into object storage and return the storage key

### Marketing screenshot automation

Marketing and SEO teams can capture daily screenshots of competitor or campaign pages by calling `/render/screenshot/sync` with the target URL, receiving a hosted URL that can be embedded in dashboards or alerts. Sync mode hosts the result on Doppio's CDN so the caller does not have to manage object storage. The waitFor parameter ensures dynamic content has loaded before capture.

Example prompt: POST to `/render/screenshot/sync` with the target URL, fullPage true, and waitFor a selector, then store the returned hosted URL in a daily snapshot table

### Async batch report generation

Reporting platforms that build hundreds of PDF reports per day can queue work via `/render/pdf/async` and let Doppio call back to a webhook when each render completes. Async mode decouples request lifetime from render time, which is useful for reports built from large data tables. Each job is identified by a request ID returned in the initial response.

Example prompt: POST to `/render/pdf/async` with the report HTML and a webhook URL, store the returned job ID, and resolve the resulting PDF when the webhook fires

### Agent-driven page capture via Jentic

An AI agent can capture a screenshot or PDF of any URL by searching Jentic for the Doppio render operation, loading the input schema, and executing with the URL plus desired output mode. Jentic stores the API key in the vault so the agent can render without ever seeing the raw token. This is useful for agents producing visual proofs, audit trails, or content briefs.

Example prompt: Search Jentic for 'render a web page to PDF', load the Doppio `/render/pdf/sync` schema, execute with a target URL, and return the hosted PDF link

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/render/pdf/direct` | Render a PDF and stream the binary response |
| POST | `/render/pdf/sync` | Render a PDF and return a hosted URL |
| POST | `/render/pdf/async` | Queue an async PDF render with webhook callback |
| POST | `/render/screenshot/direct` | Capture a screenshot and stream the binary response |
| POST | `/render/screenshot/sync` | Capture a screenshot and return a hosted URL |
| POST | `/render/screenshot/async` | Queue an async screenshot render with webhook callback |

## Key resources

- **PDF rendering** — Convert URLs or HTML to PDFs in direct, sync, or async modes
- **Screenshot rendering** — Capture URL or HTML screenshots in direct, sync, or async modes

## Why Jentic

- **Setup:** Wiring Doppio by hand means setting up its API key auth and deciding per call between the direct, sync, and async render modes yourself. Through Jentic you install once, import the Doppio Render API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Doppio render targets travel in the request body, not as resource ids in the URL path, so limit the agent to the operations it needs, such as render/pdf/sync or render/screenshot/sync, and leave the others out of the allowed set. Every operation you grant is your explicit choice.
- **Credential handling:** Your Doppio API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'convert this HTML to a PDF' or 'take a screenshot of a URL', and Jentic returns the matching Doppio operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Browserless** — Browserless exposes a fuller headless-Chrome API including scripted automation, while Doppio focuses on PDF and screenshot rendering
- **PDF.co** — PDF.co covers HTML-to-PDF plus PDF parsing and form-filling; Doppio focuses on rendering URLs and HTML to PDF or screenshot
- **HTML2PDF** — HTML2PDF is another HTML-to-PDF conversion service with simpler options than Doppio's three render modes
- **Docupilot API** — Docupilot merges JSON into Word/Google Docs templates; Doppio captures arbitrary HTML or URLs as PDF

## FAQ

### Why is there no official OpenAPI spec for Doppio Render API?

Doppio does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Doppio Render API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Doppio Render API use?

Doppio uses an API key passed in the Authorization header. Through Jentic, the key is stored encrypted in your Jentic One instance and injected at execution time, so an agent never holds the raw token in its context.

### What is the difference between direct, sync, and async render modes?

Direct mode (`/render/pdf/direct`, `/render/screenshot/direct`) streams the binary file back in the same response. Sync mode (`/render/pdf/sync`, `/render/screenshot/sync`) returns a hosted URL pointing to the rendered file. Async mode (`/render/pdf/async`, `/render/screenshot/async`) queues the job and POSTs the result to a webhook on completion - best for large or slow renders.

### Can I render a JavaScript-heavy SPA with the Doppio Render API?

Yes. All render endpoints accept a waitFor selector and a timeout so the headless Chromium pool waits for client-side rendering to finish before capturing the page. Pair this with a viewport configuration to match desktop or mobile breakpoints.

### What are the rate limits for the Doppio Render API?

The OpenAPI spec does not declare explicit rate limits. Throughput is governed by your Doppio plan's concurrent-render allowance; bursting beyond that returns 429. For batch workloads, prefer the async endpoints to smooth concurrency over time.

### How do I render a PDF with the Doppio Render API through Jentic?

Install the SDK with `pip install jentic`, then search Jentic for `render a web page to PDF`. Load the schema for `/render/pdf/sync`, populate the URL or HTML and any viewport options, and execute. Jentic returns the hosted PDF URL with no need to handle the API key directly.

### Can I limit what my agent is allowed to do with the Doppio Render API?

Yes. Because you self-host Jentic One, your own rules decide which Doppio operations and credentials the agent may use, and you grant only the render endpoints it needs. For example, you can allow `/render/pdf/sync` or `/render/screenshot/sync` and leave `/render/pdf/async` and the direct-binary operations out of the allowed set. Doppio takes render targets in the request body rather than as resource ids in the URL path, so scoping is done per operation, and every operation the agent can call is your explicit choice.
