pdfoven-com Render API
Render PDFs, images, screenshots and social cards.
Render PDFs, images, screenshots and social cards.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/pdfoven-com:pdfoven-com-render-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: PDFOven Render API
version: 0.1.0
description: PDF and image generation API. Send HTML, Markdown, a public URL, or JSON into a Handlebars template and get a Chromium-rendered PDF, PNG or JPEG back.
contact:
name: PDFOven support
email: support@pdfoven.com
termsOfService: https://pdfoven.com/terms
x-logo:
url: https://pdfoven.com/logo.png
servers:
- url: https://pdfoven.com
security:
- bearerAuth: []
- apiKeyHeader: []
tags:
- name: Render
description: Render PDFs, images, screenshots and social cards.
paths:
/v1/pdf:
post:
operationId: renderPdf
summary: Render a PDF
description: Renders a PDF from html, markdown, url, an inline Handlebars template, or a saved or built-in template.
tags:
- Render
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RenderRequest'
responses:
'200':
description: The rendered file, or a JSON envelope when response is "base64".
headers:
X-Render-Ms:
description: Render time in milliseconds.
schema:
type: integer
X-Usage-Remaining:
description: Renders left within your plan's monthly limit this calendar month (0 once you pass it).
schema:
type: integer
X-Usage-Grace-Remaining:
description: Renders left before HTTP 429, counting the 10% grace buffer every plan gets past its monthly limit.
schema:
type: integer
X-Usage-Notice:
description: Present only when the account is past its plan limit and in the 10% grace buffer; says how many renders are left and suggests upgrading.
schema:
type: string
Content-Disposition:
description: Inline disposition with the requested filename.
schema:
type: string
content:
application/pdf:
schema:
type: string
format: binary
application/json:
schema:
$ref: '#/components/schemas/Base64Response'
'400':
description: 'invalid_request: the body is not valid JSON or failed validation.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'unauthorized: missing or invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: 'template_not_found: template_id does not match a saved or built-in template.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: template_error or render_failed (blocked URL, timeout, HTTP error).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: 'quota_exceeded: the monthly render limit plus the 10% grace buffer is used up. Failed renders do not count.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: 'internal_error: the render failed unexpectedly.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/image:
post:
operationId: renderImage
summary: Render an image
description: Takes the same sources as /v1/pdf and returns a PNG, or a JPEG with type=jpeg.
tags:
- Render
parameters:
- name: type
in: query
required: false
description: Set to jpeg for a JPEG. Any other value returns a PNG.
schema:
type: string
enum:
- png
- jpeg
default: png
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RenderRequest'
responses:
'200':
description: The rendered file, or a JSON envelope when response is "base64".
headers:
X-Render-Ms:
description: Render time in milliseconds.
schema:
type: integer
X-Usage-Remaining:
description: Renders left within your plan's monthly limit this calendar month (0 once you pass it).
schema:
type: integer
X-Usage-Grace-Remaining:
description: Renders left before HTTP 429, counting the 10% grace buffer every plan gets past its monthly limit.
schema:
type: integer
X-Usage-Notice:
description: Present only when the account is past its plan limit and in the 10% grace buffer; says how many renders are left and suggests upgrading.
schema:
type: string
Content-Disposition:
description: Inline disposition with the requested filename.
schema:
type: string
content:
image/png:
schema:
type: string
format: binary
image/jpeg:
schema:
type: string
format: binary
application/json:
schema:
$ref: '#/components/schemas/Base64Response'
'400':
description: 'invalid_request: the body is not valid JSON or failed validation.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'unauthorized: missing or invalid API key.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: 'template_not_found: template_id does not match a saved or built-in template.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: template_error or render_failed (blocked URL, timeout, HTTP error).
content:
application/json:
$ref: '#/components/schemas/Error'
'429':
description: 'quota_exceeded: the monthly render limit plus the 10% grace buffer is used up.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: 'internal_error: ...'
components:
schemas:
RenderRequest:
type: object
description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
x-ae-placeholder: true
Error:
type: object
description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
x-ae-placeholder: true
Base64Response:
type: object
description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
x-ae-placeholder: true
externalDocs:
description: PDFOven API documentation
url: https://pdfoven.com/docs