PDF Invoice Extractor avatar

PDF Invoice Extractor

Pricing

from $1.00 / 1,000 result items

Go to Apify Store
PDF Invoice Extractor

PDF Invoice Extractor

Turn PDF invoices into structured data from URLs. Extract vendor, invoice number, dates, line items, tax/VAT, subtotal, total, and currency. Uses pdfplumber for reliable text extraction — no upload, no API key, no manual entry. Built for accountants, bookkeepers, and expense managers.

Pricing

from $1.00 / 1,000 result items

Rating

0.0

(0)

Developer

soot

soot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn PDF invoices into structured data — paste a URL, get clean JSON. No upload, no API key, no manual entry.

Built for accountants, bookkeepers, and expense managers who need reliable invoice data extraction at scale. Drop in one or a hundred PDF URLs and get back vendor, invoice number, dates, line items, tax, totals, and currency — all in a clean, analysis-ready JSON dataset.

Why this Actor?

FeaturePDF Invoice ExtractorCompetitors
Input methodDirect URL (no upload needed)Often requires file upload or base64
Processing enginepdfplumber (reliable, fast text extraction)pdfjs, OCR-only, or external AI APIs
Batch support✅ Multiple URLs per runOften single-document only
Line items✅ Structured table extractionOften raw text only
Tax/VAT✅ Separate tax field extractionMixed with total
Confidence score✅ Per-document extraction confidenceRarely provided
Pricing$0.05 start + $0.001/result$0.01–$0.10 per document

The URL input advantage: No need to download, store, or upload PDFs. If you can link to an invoice, this Actor can parse it. Works with public URLs from supplier portals, email attachments, cloud storage — anywhere a PDF is accessible via HTTP(S).

What it does

  1. Downloads PDF from the URL(s) you provide
  2. Extracts text using pdfplumber (handles native PDFs, not just scanned images)
  3. Parses structured fields: vendor, invoice number, date, subtotal, total, tax/VAT, currency
  4. Extracts line items from PDF tables with description and amount
  5. Scores confidence so you know which results need manual review
  6. Outputs a clean JSON dataset ready for CSV export, accounting software, or further processing

Features

  • 🔗 URL input only — no file upload, no storage needed
  • 📊 Structured line items — table rows with description + amount
  • 🧾 Tax/VAT extraction — separate tax field, not buried in total
  • 🌍 Multi-currency — detects USD, EUR, GBP and explicit currency codes
  • 📈 Confidence scoring — per-document extraction quality indicator
  • Batch processing — hundreds of URLs in a single run
  • 🔒 No external APIs — runs entirely within Apify infrastructure
  • 💰 Pay-per-event — $0.05 start fee + $0.001 per result item

Input

FieldTypeRequiredDefaultDescription
pdfUrlsarray[string]Yes*Direct URLs to PDF invoices or receipts.
pdfUrlstringYes*Single PDF URL (convenience alternative to pdfUrls).
includeRawTextbooleanNofalseInclude the full extracted text in the output (useful for debugging).

*Provide either pdfUrls (array) or pdfUrl (single string).

Input example

{
"pdfUrls": [
"https://example.com/inv-2024-001.pdf",
"https://example.com/inv-2024-002.pdf",
"https://example.com/receipt-march.pdf"
],
"includeRawText": false
}

Output

Each result contains:

FieldTypeDescription
vendorstringVendor/supplier name (first line or detected from "From"/"Seller" patterns)
invoiceNumberstringInvoice or bill number
datestringInvoice date (ISO or common formats)
subtotalstringNet amount before tax
totalstringTotal amount due
taxstringTax/VAT/GST amount
currencystringDetected currency (USD, EUR, GBP, or explicit code)
lineItemsarrayStructured line items with description, raw cells, and amount
confidencenumberExtraction confidence 0.0–1.0 (based on key fields found)
pagesintegerNumber of PDF pages
sourceUrlstringOriginal PDF URL
characterCountintegerTotal extracted characters
rawTextstringFull extracted text (only if includeRawText: true)

Output example

{
"vendor": "Acme Supplies Inc.",
"invoiceNumber": "INV-2024-001",
"date": "2024-03-15",
"subtotal": "1,250.00",
"total": "1,375.00",
"tax": "125.00",
"currency": "USD",
"lineItems": [
{
"description": "Widget A — 10 units",
"raw": ["Widget A", "10", "50.00", "500.00"],
"amount": "$500.00"
},
{
"description": "Widget B — 5 units",
"raw": ["Widget B", "5", "150.00", "750.00"],
"amount": "$750.00"
}
],
"confidence": 1.0,
"pages": 1,
"sourceUrl": "https://example.com/inv-2024-001.pdf",
"characterCount": 842
}

Usage

Via Apify CLI

apify call sootesting/pdf-invoice-extractor --input '{
"pdfUrls": ["https://example.com/invoice.pdf"]
}'

Via cURL

curl -X POST "https://api.apify.com/v2/acts/sootesting~pdf-invoice-extractor/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"pdfUrls": ["https://example.com/invoice.pdf"]}'

Via Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("sootesting/pdf-invoice-extractor").call(run_input={
"pdfUrls": ["https://example.com/invoice.pdf"]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Pricing

EventPriceDescription
Actor start$0.05Charged once per run (1 GB memory)
Per result$0.001Charged per successfully extracted document

Example: Processing 100 invoices costs $0.05 + $0.10 = $0.15 total.

Limitations

  • Requires publicly accessible PDF URLs (no authentication-protected links)
  • Works best with text-based PDFs (not scanned images — for scanned documents, use an OCR-based extractor)
  • Very complex multi-page tables may have incomplete line item extraction
  • Confidence score < 0.5 suggests manual review recommended

Built with pdfplumber for reliable text extraction. No external AI APIs, no per-token costs.