apiverve / pdftotext
PDF to Text extracts the text layer of a PDF, uploaded or fetched from a URL, and returns it as plain text with the page, word and character counts. Paid plans add the text of each page separately and the document metadata, such as title, author and creation date.
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
PDF to Text extracts the text layer of a PDF, uploaded or fetched from a URL, and returns it as plain text with the page, word and character counts. Paid plans add the text of each page separately and the document metadata, such as title, author and creation date.
The PDF to Text API provides a simple, reliable way to integrate pdf to text functionality into your applications. Built for developers who need production-ready pdf to text capabilities without the complexity of building from scratch.
Quick Start
Using JavaScript
async function callPDFtoTextAPI() { try { const requestBody = { "pdf": "https://raw.githubusercontent.com/mozilla/pdf.js/master/test/pdfs/basicapi.pdf" }; const response = await fetch('https://api.apiverve.com/v1/pdftotext', { method: 'POST', headers: { 'x-api-key': 'YOUR_API_KEY_HERE', 'Content-Type': 'application/json' }, body: JSON.stringify(requestBody) }); const data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } } callPDFtoTextAPI();
Using cURL
curl -X POST "https://api.apiverve.com/v1/pdftotext" \ -H "x-api-key: YOUR_API_KEY_HERE" \ -F "pdf=@/path/to/your-file" # Accepted formats: .pdf (max 10MB)
Get your API key: https://apiverve.com
📁 For more examples, see the examples folder
Installation
Choose your preferred programming language:
📦 NPM (JavaScript/Node.js)
npm install @apiverve/pdftotext
View NPM Package → | Package Code →
🔷 NuGet (.NET/C#)
dotnet add package APIVerve.API.PDFtoText
View NuGet Package → | Package Code →
🐍 Python (PyPI)
pip install apiverve-pdftotext
View PyPI Package → | Package Code →
💎 Ruby (RubyGems)
gem install apiverve_pdftotext
View RubyGems Package → | Package Code →
🐘 PHP (Packagist)
composer require apiverve/pdftotext
View Packagist Package → | Package Code →
🎯 Dart (pub.dev)
dart pub add apiverve_pdftotext
View pub.dev Package → | Package Code →
🤖 Android (JitPack)
implementation 'com.github.apiverve:pdftotext-api:1.0.0'
🐹 Go
go get github.com/apiverve/pdftotext-api/go
Why Use This API?
| Feature | Benefit |
|---|---|
| Multi-language SDKs | Native packages for JavaScript, Python, C#, Go, and Android |
| Simple Integration | Single API key authentication, consistent response format |
| Production Ready | 99.9% uptime SLA, served from 24 global regions |
| Comprehensive Docs | Full examples, OpenAPI spec, and dedicated support |
Documentation
- 🏠 API Home: PDF to Text API
- 📚 API Reference: docs.apiverve.com/ref/pdftotext
- 📖 OpenAPI Spec: openapi.yaml
- 💡 Examples: examples/
What Can You Build?
The PDF to Text API is commonly used for:
- Web Applications - Add pdf to text features to your frontend or backend
- Mobile Apps - Native SDKs for Android development
- Automation - Integrate with n8n, Zapier, or custom workflows
- SaaS Products - Enhance your product with pdf to text capabilities
- Data Pipelines - Process and analyze data at scale
API Reference
Authentication
All requests require an API key in the header:
x-api-key: YOUR_API_KEY_HERE
Get your API key: https://apiverve.com
Response Format
Every APIVerve endpoint returns the same envelope — check status, then read data:
{
"status": "ok",
"error": null,
"data": { ... }
}
Example Response
A real response from the PDF to Text API:
{
"status": "ok",
"error": null,
"data": {
"text": "Table Of Content\nChapter 1 .......................................................... 2\nParagraph 1.1 ...................................................... 3\npage 1 / 3\n\nChapter 1\npage 2 / 3\n\nParagraph 1.1\nPowered by TCPDF (www.tcpdf.org)\npage 3 / 3",
"pageCount": 3,
"pagesExtracted": 3,
"truncated": false,
"hasText": true,
"wordCount": 31,
"characterCount": 250,
"pages": [
{
"page": 1,
"text": "Table Of Content\nChapter 1 .......................................................... 2\nParagraph 1.1 ...................................................... 3\npage 1 / 3",
"wordCount": 15
},
{
"page": 2,
"text": "Chapter 1\npage 2 / 3",
"wordCount": 6
},
{
"page": 3,
"text": "Paragraph 1.1\nPowered by TCPDF (www.tcpdf.org)\npage 3 / 3",
"wordCount": 10
}
],
"metadata": {
"title": "Basic API Test",
"author": "Brendan Dahl",
"subject": null,
"creator": "pdf.js",
"producer": "TCPDF 5.9.133 (http://www.tcpdf.org)",
"creationDate": "2012-04-10T21:30:26.000Z",
"modificationDate": "2012-04-10T21:30:26.000Z",
"pdfVersion": "1.7"
}
}
}
Support & Community
- 🏠 API Home: PDF to Text API
- 💬 Support: https://apiverve.com/contact
- 🐛 Issues: GitHub Issues
- 📖 Documentation: https://docs.apiverve.com
- 🌐 Website: https://apiverve.com
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Security
For security concerns, please review our Security Policy.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with ❤️ by APIVerve
Copyright © 2026 APIVerve. All rights reserved.