Krakt Blackt avatar

Krakt Blackt

Pricing

$10.00 / 1,000 file redacteds

Go to Apify Store
Krakt Blackt

Krakt Blackt

Batch PDF redaction that actually deletes the text, not just a black box on top. Emails, phones, SSNs, cards, IBANs, your own terms and regex. Verified removal report per file. About $0.01 per file.

Pricing

$10.00 / 1,000 file redacteds

Rating

0.0

(0)

Developer

Kurt Holes

Kurt Holes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Krakt Blackt: PDF redaction that actually deletes the text

A black box drawn over a PDF hides nothing: select, copy, paste, and the "redacted" SSN is right there. Blackt deletes the text underneath, then re-opens the result and checks. About $0.01 per file.

  • Real removal: PyMuPDF redaction annotations + apply_redactions. Glyphs are deleted from the content stream, the file is fully rewritten (no incremental-save leftovers).
  • Batch it: 1 PDF or 1,000. URLs, an upload, or key-value store records.
  • Built-in PII presets: emails, phone numbers, US SSNs, credit cards (Luhn-checked), IBANs (mod-97 checked).
  • Your own rules: exact terms/phrases and Python regexes. Optional page ranges like 1-3,5,10-.
  • Proof, not promises: every file gets a removal report: counts by type, pages hit, and a verification pass that re-extracts the text and re-runs every search. verified: true means zero hits.
  • Metadata scrubbed by default (title, author, keywords, XMP).
  • Pay for results: failed downloads and broken PDFs are free.

What it won't do (read this)

  • No OCR. Scanned or image-only pages have no text to find, so nothing is redacted there. We flag them in imageOnlyPages so you know to check by hand.
  • Detection is pattern-based. Presets catch common formats, not every format on earth. Names, addresses and free text need search terms or a regex.
  • Text must be extractable. Weird font encodings or text drawn as vector paths can hide matches. Those show up as misses, not as errors, so spot-check sensitive files.
  • Phrases wrapped across lines are found, but each word in the phrase is then removed wherever it appears on that page (we over-redact rather than leak).
  • Password-protected PDFs are skipped. Annotations, form field values and attachments outside the matched areas are not touched.
  • Verification proves the matched text no longer extracts. It is not a legal certification. Have a human review anything that goes to court.

Quick start

{
"pdfUrls": ["https://example.com/contracts/acme.pdf"],
"presets": ["emails", "phones", "ssns", "creditCards", "ibans"],
"searchTerms": ["Project Nightingale", "Jane Doe"],
"customRegexes": ["\\bEMP-\\d{6}\\b"],
"pageRanges": "1-5"
}
FieldDefaultWhat it does
pdfUrls–Direct links to PDFs
pdfUpload–Upload one PDF from the Console
kvStoreRecords–storeId/key (or key for this run's store)
presetsall fiveemails, phones, ssns, creditCards, ibans
searchTerms–Exact words or phrases
customRegexes–Python regexes
caseSensitivefalseCase-sensitive term matching
pageRangesalle.g. 1-3,5,10-
boxColorblackblack, white, navy
replacementLabel–Text inside each box, e.g. [REDACTED]
redactImageAreastrueBlank image pixels under boxes
scrubMetadatatrueWipe document metadata
maxFiles / maxFileSizeMb100 / 50Safety caps

Output

Key-value store: 001-name-redacted.pdf and 001-name-report.json per file. Dataset: one row per file:

{
"fileName": "hr-record.pdf", "status": "redacted", "verified": true,
"totalRedactions": 36,
"redactionsByType": { "emails": 6, "phones": 6, "ssns": 3, "creditCards": 6, "ibans": 6, "terms": 9 },
"pagesRedacted": [{ "page": 1, "redactions": 12 }],
"verification": { "passed": true, "removedStringsStillExtractable": 0, "residualMatchesByType": {} },
"imageOnlyPages": [], "redactedPdfUrl": "https://api.apify.com/v2/key-value-stores/.../records/001-hr-record-redacted.pdf"
}

status is redacted, no-matches (still a clean, metadata-scrubbed copy) or failed.

Pricing

$0.01 per processed file (pay per event). Failed files cost nothing. A run with no PDFs given redacts one public sample form (IRS W-9) for free (demo: true) so you can see the output. The report itself never contains the removed values.

Built by Krakt.