Krakt Blackt
Pricing
$10.00 / 1,000 file redacteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
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: truemeans 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
imageOnlyPagesso 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"}
| Field | Default | What it does |
|---|---|---|
pdfUrls | – | Direct links to PDFs |
pdfUpload | – | Upload one PDF from the Console |
kvStoreRecords | – | storeId/key (or key for this run's store) |
presets | all five | emails, phones, ssns, creditCards, ibans |
searchTerms | – | Exact words or phrases |
customRegexes | – | Python regexes |
caseSensitive | false | Case-sensitive term matching |
pageRanges | all | e.g. 1-3,5,10- |
boxColor | black | black, white, navy |
replacementLabel | – | Text inside each box, e.g. [REDACTED] |
redactImageAreas | true | Blank image pixels under boxes |
scrubMetadata | true | Wipe document metadata |
maxFiles / maxFileSizeMb | 100 / 50 | Safety 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.
