Themes
List available themes for PDF generation.
Themes
List all available themes for Markdown to PDF conversion. Themes control the visual styling of your generated PDFs.
GET
/v1/themes
Code Examples
curl https://api.pdfapi.dev/v1/themes \
-H "Authorization: Bearer sk_live_xxx"
const response = await fetch('https://api.pdfapi.dev/v1/themes', {
headers: {
'Authorization': `Bearer ${process.env.PDFAPI_KEY}`,
},
});
const { data } = await response.json();
console.log('Available themes:', data.map(t => t.id));
import requests
import os
response = requests.get(
'https://api.pdfapi.dev/v1/themes',
headers={
'Authorization': f'Bearer {os.environ["PDFAPI_KEY"]}',
}
)
themes = response.json()['data']
for theme in themes:
print(f"{theme['id']}: {theme['name']} ({theme['plan']})")
req, _ := http.NewRequest("GET", "https://api.pdfapi.dev/v1/themes", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("PDFAPI_KEY"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
Response
{
"data": [
{
"id": "default",
"name": "Default",
"description": "Clean, modern styling with good readability",
"plan": "free",
"preview_url": "https://pdfapi.dev/themes/default-preview.png"
},
{
"id": "minimal",
"name": "Minimal",
"description": "Simple, minimal design with maximum content focus",
"plan": "free",
"preview_url": "https://pdfapi.dev/themes/minimal-preview.png"
},
{
"id": "corporate",
"name": "Corporate",
"description": "Professional business style with branded headers",
"plan": "free",
"preview_url": "https://pdfapi.dev/themes/corporate-preview.png"
},
{
"id": "invoice",
"name": "Invoice",
"description": "Optimized for financial documents and invoices",
"plan": "pro",
"preview_url": "https://pdfapi.dev/themes/invoice-preview.png"
},
{
"id": "academic",
"name": "Academic",
"description": "Academic paper formatting with proper citations",
"plan": "pro",
"preview_url": "https://pdfapi.dev/themes/academic-preview.png"
},
{
"id": "resume",
"name": "Resume",
"description": "Professional resume/CV formatting",
"plan": "pro",
"preview_url": "https://pdfapi.dev/themes/resume-preview.png"
},
{
"id": "newsletter",
"name": "Newsletter",
"description": "Multi-column newsletter layout",
"plan": "business",
"preview_url": "https://pdfapi.dev/themes/newsletter-preview.png"
},
{
"id": "presentation",
"name": "Presentation",
"description": "Slide-style presentation format",
"plan": "business",
"preview_url": "https://pdfapi.dev/themes/presentation-preview.png"
}
]
}
Theme Fields
| Field | Type | Description |
|---|---|---|
id | string | Theme identifier (use this in API requests) |
name | string | Human-readable theme name |
description | string | Theme description |
plan | string | Minimum plan required (free, pro, business) |
preview_url | string | URL to theme preview image |
Available Themes
Free Plan
| Theme | Description | Best For |
|---|---|---|
default | Clean, modern styling | General documents |
minimal | Simple, minimal design | Content-focused docs |
corporate | Professional business style | Business reports |
Pro Plan
| Theme | Description | Best For |
|---|---|---|
invoice | Financial document styling | Invoices, receipts |
academic | Academic paper format | Research papers |
resume | Resume/CV formatting | Resumes, CVs |
Business Plan
| Theme | Description | Best For |
|---|---|---|
newsletter | Multi-column layout | Newsletters |
presentation | Slide-style format | Presentations |
Usage
Use a theme with the Markdown to PDF endpoint:
{
"markdown": "# My Document\n\nContent here...",
"theme": "corporate"
}
Attempting to use a theme not available on your plan will return a THEME_NOT_AVAILABLE error.