Extract text from public PDF URLs in bulk, from another Actor's Dataset, an upload or base64. Per-page text, SHA-256 and a status per file for n8n, Make, AI agents and RAG. No OCR. Extract only documents you may read; it does not bypass logins, paywalls, CAPTCHAs or other access controls.
2026-10-16: Read PDF links from another Actor's Dataset
Features
Select a crawler's, scraper's or API run's Dataset in Source Dataset and name the column with the PDF link in PDF URL field in Dataset (default url, dot paths such as document.url work). A run reads up to 200 rows from datasetOffset; RUN_SUMMARY.nextDatasetOffset says where the next run starts.
Every result row from a Dataset keeps source_dataset_id and source_item_index, so the text joins back to its source record.
Actor-to-Actor integrations can start the Actor: set "datasetId": "{{resource.defaultDatasetId}}" in the integration input. The added payload is accepted and not read.
Improvements
Rows without a PDF link are skipped, counted in RUN_SUMMARY.datasetRowsWithoutUrl and not charged. A Dataset range with no link ends as NO_RESULTS with no charge.
Existing inputs work unchanged. Prices are unchanged.
2026-10-06: Runs continue after an Apify restart
Fixes
When Apify moves or restarts a run, it now continues instead of failing with DELIVERY_UNCERTAIN. Documents it already delivered are not published or charged again. A charge that was in progress when the run stopped is never repeated.
2026-09-26: More reliable requests and spending checks
Fixes
Spending checks and billing receipts use the effective event prices supplied for your run, including discounts and zero-priced events.
2026-09-24: More reliable batch completion (0.1)
Improvements
Large batches keep extracted text on temporary disk so later duplicates can reuse it without retaining every document in memory.
When time runs out, remaining document statuses are saved in batches. If their storage cannot be confirmed, the run reports SYSTEM_FAILURE and lists unconfirmed inputs in RUN_SUMMARY. Confirmed results remain available.
A stopped or crashed parser no longer prevents the next document from being processed.
HTTP-compressed downloads are rejected. Serve the PDF without HTTP content compression; compression inside a PDF remains supported.
Uploads and public URLs use separate download authorization. A public URL cannot reuse a privately downloaded upload.
No input migration is required. There is no pdf-extracted fee for failures or duplicates. The start fee and platform usage still apply.
2026-09-23: Extract text from a digital PDF (0.1)
Features
Send public PDF URLs, upload one PDF, or pass base64. Each document gets a Dataset row with its status, text, page count and basic metadata. Scans return NO_TEXT_LAYER; OCR and password removal are not supported.
Runs accept up to 200 documents in total, including at most 32 base64 files and one upload. File, page, text and parser-time limits keep unusually large documents bounded. Duplicates within a run reuse the first result without another extraction fee.
Set maxTotalChargeUsd before an API or agent run. At the default 1 GB memory, allow $0.01 to start plus $0.003 per unique successful PDF, with platform usage billed separately.