Reports
Technical report PDF API
Structured technical report for research notes, incident reviews, and engineering summaries. Supports code-like tables, figures, numbered sections, and appendices. Send this LaTeX template and JSON data to Texify in one /render request.
JSON schema
Fields this template expects.
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Report title. |
| period | string | Yes | Reporting period. |
| summary | string | Yes | Executive summary paragraph. |
| metrics | array | Yes | Metric rows with labels, values, and deltas. |
| sections | array | Yes | Narrative sections, tables, and chart data. |
API examples
POST LaTeX and JSON. Receive PDF bytes.
cat > technical-report-payload.json <<'JSON'
{
"entrypoint": "main.tex",
"resources": {
"main.tex": "\\documentclass[11pt]{article}\n\\usepackage[margin=0.75in]{geometry}\n\\usepackage{array,booktabs,xcolor}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries [[ .title ]]}\\\\[4pt]\n{\\large [[ .period ]]}\\\\[0.2in]\n\\noindent\\textbf{Executive summary}\\\\\n[[ .summary ]]\n\\vspace{0.25in}\n\\begin{tabular}{>{\\raggedright\\arraybackslash}p{0.45\\textwidth}rr}\n\\toprule\nMetric & Value & Delta\\\\\n\\midrule\n[[ range .metrics ]][[ .label ]] & [[ .value ]] & [[ .delta ]]\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n\\vspace{0.25in}\n[[ range .sections ]]\\section*{[[ .heading ]]}\n[[ .body ]]\n[[ end ]]\\end{document}"
},
"data": {
"title": "Render Pipeline Review",
"period": "Q2 2026",
"summary": "Queue isolation improved throughput under burst traffic.",
"metrics": [
{
"label": "Throughput",
"value": "920/min",
"delta": "+31%"
}
],
"sections": [
{
"heading": "Architecture",
"body": "Workers compile templates in isolated pools."
},
{
"heading": "Findings",
"body": "Cold starts dominate p99 under low traffic."
}
]
}
}
JSON
curl -sS -X POST https://api.texify.dev/render \
-H "Content-Type: application/json" \
--data @technical-report-payload.json \
--output technical-report.pdfimport json
import requests
payload = json.loads(r'''{
"entrypoint": "main.tex",
"resources": {
"main.tex": "\\documentclass[11pt]{article}\n\\usepackage[margin=0.75in]{geometry}\n\\usepackage{array,booktabs,xcolor}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries [[ .title ]]}\\\\[4pt]\n{\\large [[ .period ]]}\\\\[0.2in]\n\\noindent\\textbf{Executive summary}\\\\\n[[ .summary ]]\n\\vspace{0.25in}\n\\begin{tabular}{>{\\raggedright\\arraybackslash}p{0.45\\textwidth}rr}\n\\toprule\nMetric & Value & Delta\\\\\n\\midrule\n[[ range .metrics ]][[ .label ]] & [[ .value ]] & [[ .delta ]]\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n\\vspace{0.25in}\n[[ range .sections ]]\\section*{[[ .heading ]]}\n[[ .body ]]\n[[ end ]]\\end{document}"
},
"data": {
"title": "Render Pipeline Review",
"period": "Q2 2026",
"summary": "Queue isolation improved throughput under burst traffic.",
"metrics": [
{
"label": "Throughput",
"value": "920/min",
"delta": "+31%"
}
],
"sections": [
{
"heading": "Architecture",
"body": "Workers compile templates in isolated pools."
},
{
"heading": "Findings",
"body": "Cold starts dominate p99 under low traffic."
}
]
}
}''')
response = requests.post(
"https://api.texify.dev/render",
json=payload,
timeout=90,
)
response.raise_for_status()
with open("technical-report.pdf", "wb") as pdf:
pdf.write(response.content)import { writeFile } from "node:fs/promises";
const payload = {
"entrypoint": "main.tex",
"resources": {
"main.tex": "\\documentclass[11pt]{article}\n\\usepackage[margin=0.75in]{geometry}\n\\usepackage{array,booktabs,xcolor}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries [[ .title ]]}\\\\[4pt]\n{\\large [[ .period ]]}\\\\[0.2in]\n\\noindent\\textbf{Executive summary}\\\\\n[[ .summary ]]\n\\vspace{0.25in}\n\\begin{tabular}{>{\\raggedright\\arraybackslash}p{0.45\\textwidth}rr}\n\\toprule\nMetric & Value & Delta\\\\\n\\midrule\n[[ range .metrics ]][[ .label ]] & [[ .value ]] & [[ .delta ]]\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n\\vspace{0.25in}\n[[ range .sections ]]\\section*{[[ .heading ]]}\n[[ .body ]]\n[[ end ]]\\end{document}"
},
"data": {
"title": "Render Pipeline Review",
"period": "Q2 2026",
"summary": "Queue isolation improved throughput under burst traffic.",
"metrics": [
{
"label": "Throughput",
"value": "920/min",
"delta": "+31%"
}
],
"sections": [
{
"heading": "Architecture",
"body": "Workers compile templates in isolated pools."
},
{
"heading": "Findings",
"body": "Cold starts dominate p99 under low traffic."
}
]
}
};
const response = await fetch("https://api.texify.dev/render", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
signal: AbortSignal.timeout(90_000),
});
if (!response.ok) throw new Error(await response.text());
const pdf = Buffer.from(await response.arrayBuffer());
await writeFile("technical-report.pdf", pdf);The template
LaTeX source sent as resources["main.tex"].
\documentclass[11pt]{article}
\usepackage[margin=0.75in]{geometry}
\usepackage{array,booktabs,xcolor}
\pagestyle{empty}
\begin{document}
{\Huge\bfseries [[ .title ]]}\\[4pt]
{\large [[ .period ]]}\\[0.2in]
\noindent\textbf{Executive summary}\\
[[ .summary ]]
\vspace{0.25in}
\begin{tabular}{>{\raggedright\arraybackslash}p{0.45\textwidth}rr}
\toprule
Metric & Value & Delta\\
\midrule
[[ range .metrics ]][[ .label ]] & [[ .value ]] & [[ .delta ]]\\
[[ end ]]\bottomrule
\end{tabular}
\vspace{0.25in}
[[ range .sections ]]\section*{[[ .heading ]]}
[[ .body ]]
[[ end ]]\end{document}Live render
Try sample data now.
Posts this LaTeX template and sample JSON to /render, then opens the returned PDF bytes.
{
"title": "Render Pipeline Review",
"period": "Q2 2026",
"summary": "Queue isolation improved throughput under burst traffic.",
"metrics": [
{
"label": "Throughput",
"value": "920/min",
"delta": "+31%"
}
],
"sections": [
{
"heading": "Architecture",
"body": "Workers compile templates in isolated pools."
},
{
"heading": "Findings",
"body": "Cold starts dominate p99 under low traffic."
}
]
}FAQ
FAQ
Can I use Technical report as a technical report PDF API?
Yes. Copy the LaTeX template, send it in resources with your data to /render, and Texify returns PDF bytes.
Can I change colors, copy, or field names?
Yes. Edit the LaTeX source and JSON placeholders to match your data model and brand before posting to /render.
Does this render real PDF text?
Yes. Texify compiles LaTeX to PDF, so text remains selectable, searchable, and stable across environments.
Related templates
More LaTeX PDF templates.
Reports
Monthly report
Executive monthly report with KPI table, narrative sections, and chart-ready data blocks. Built for customer-facing analytics exports.
Resumes
Developer resume
Dedicated JSON to resume PDF template for software engineers, with projects, skills, links, and measurable impact bullets. Designed for LaTeX resume API searches and developer tooling workflows.
Letters
Formal letter
Business letter template with sender block, recipient block, subject, body paragraphs, and signature. Good for notices, approvals, and generated correspondence.