TenTags API turns declarative Style/Data CSV templates into HTML, PDF, XLSX, or DOCX files through one authenticated endpoint. Build and preview templates in the web playground, then generate documents remotely from any backend or CLI.
No reviews yetBe the first to leave a review for TenTags API & AI generate
Maker
📌
Hi Product Hunt!
I’m Zhandos, a Python developer from Kazakhstan, and today I’m launching the
TenTags API.
TenTags started as a Python library because I was tired of maintaining
different code for HTML tables, PDF reports, Excel spreadsheets, and Word
documents. The original idea was simple: define one declarative template and
render it anywhere.
The new hosted API makes that engine available to any backend through one
authenticated HTTP request. Your application does not need to be written in
Python.
The workflow:
1. Generate an API key in your TenTags profile
2. POST Style/Data CSV or an existing template ID to /api/generate
3. Receive HTML, PDF, XLSX, or DOCX directly in the response
What’s available today:
✅ Remote document generation through one REST endpoint
✅ HTML, PDF, XLSX, and DOCX responses
✅ Bearer token and X-TenTags-Api-Key authentication
✅ Inline templates or reusable template IDs
✅ cURL, Python, Node.js, PHP, and Go examples
✅ A free API plan for getting started
✅ AI-assisted playground and live preview
✅ Community template gallery
✅ TenTags 2.3.2 Python package for local generation
The API is now the heart of TenTags.org. The playground, AI generator, and
gallery help you build the template; the API lets you put it into a real
product or automated workflow.
I’d love your feedback: what document workflow, framework integration, or
output format should I support next?
— Zhandos
Report
The playground actually makes it click for me. I dropped in a quick CSV template and got a clean PDF back in under a minute without touching a config file.
Report
Maker
@bradley_hou Yes, I added a sandbox for clarity and example. But I created the TenTags DSL for ease of use in the backend. We divided the syntax into three blocks: preamble, style(), and data(), so they could be used individually as templates. The language is simple: initially, there were only ten tags (now there are fourteen), which are used to write a universal representation that can then be converted into various file formats.
Report
The playground made it painless to wire up a CSV template and watch it spit out a clean PDF without writing a single line of conversion code. Surprisingly smooth for a single API call.
Report
Maker
@deploypro Really appreciate it! TenTags started with just 10 core tags (now 14) because I believe document generation shouldn't feel like rocket science. Hearing that it felt surprisingly smooth means the world to me. Thanks for testing it out
Report
Maker
@deploypro 'Without writing a single line of conversion code' is exactly why I built TenTags. The playground on tentags.org is just the tip of the iceberg. While the core engine is fully open-source on PyPI (Apache 2.0), we also built a SaaS layer where you can generate templates with AI, store them cloud-side, and automate the whole flow via a single API call using a personal tt_live_key.
Report
A CLI example that streams progress to stdout would be really useful for long-running PDF batches, so I can pipe it into logs or chain it with other shell tools without losing feedback on which template is rendering.
Report
Maker
@alva_silas Thank you very much for your comment and very helpful advice! We'll definitely take it into account. In the next version of the tentags library on PyPI, we'll try to implement logging and process execution display to simplify integration and monitoring of long-running tasks.
Report
Maker
@alva_silas The Tentags library on PYPI has been updated, adding an optional progress_callback parameter for file-based renderers, as well as the "streamlog": True (default: False) parameter in requests.
The playground actually makes it click for me. I dropped in a quick CSV template and got a clean PDF back in under a minute without touching a config file.
@bradley_hou Yes, I added a sandbox for clarity and example. But I created the TenTags DSL for ease of use in the backend. We divided the syntax into three blocks: preamble, style(), and data(), so they could be used individually as templates. The language is simple: initially, there were only ten tags (now there are fourteen), which are used to write a universal representation that can then be converted into various file formats.
The playground made it painless to wire up a CSV template and watch it spit out a clean PDF without writing a single line of conversion code. Surprisingly smooth for a single API call.
@deploypro Really appreciate it! TenTags started with just 10 core tags (now 14) because I believe document generation shouldn't feel like rocket science. Hearing that it felt surprisingly smooth means the world to me. Thanks for testing it out
@deploypro 'Without writing a single line of conversion code' is exactly why I built TenTags. The playground on tentags.org is just the tip of the iceberg. While the core engine is fully open-source on PyPI (Apache 2.0), we also built a SaaS layer where you can generate templates with AI, store them cloud-side, and automate the whole flow via a single API call using a personal tt_live_key.
A CLI example that streams progress to stdout would be really useful for long-running PDF batches, so I can pipe it into logs or chain it with other shell tools without losing feedback on which template is rendering.
@alva_silas Thank you very much for your comment and very helpful advice! We'll definitely take it into account. In the next version of the tentags library on PyPI, we'll try to implement logging and process execution display to simplify integration and monitoring of long-running tasks.
@alva_silas The Tentags library on PYPI has been updated, adding an optional progress_callback parameter for file-based renderers, as well as the "streamlog": True (default: False) parameter in requests.
Learn more at tentags.org