Text Entity Extractor - Emails, Phones, URLs, Dates, Money
Pricing
from $0.64 / 1,000 scanned texts
Text Entity Extractor - Emails, Phones, URLs, Dates, Money
Regex extraction of 11 structured entity types from up to 100 texts per run: emails, phones, URLs, IPs, dates, times, money, percentages, hashtags, mentions + Luhn-checked ALWAYS-MASKED cards. Not model NER — exact, private, in-process. $0.0008 per text all types, junk entries never charged.
Pricing
from $0.64 / 1,000 scanned texts
Rating
0.0
(0)
Developer
Broke to Built
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Text Entity Extractor — Emails, Phones, URLs, Dates, Money (Regex, Not NER)
Pull every structured entity out of raw text as clean JSON: emails, phone numbers, URLs, IPv4/IPv6, dates, times, money amounts, percentages, hashtags, @mentions — and Luhn-validated payment cards, which are detected but always masked. Up to 100 texts per run, online, by API, or as an agent tool via Apify MCP.
What this is — stated plainly: deterministic regex + rule extraction of structured patterns. It is NOT a machine-learning NER model: it does not find people, organizations, or locations, and it makes no model-accuracy claims. What it does instead is be exact, fast, private (no model API calls, text never leaves the run), and reproducible — the right tool when the entities you want have a shape.
What you get
- entities — per type, deduplicated:
emails,phones,urls,ips,dates,times,money,percentages,hashtags,mentions,cards - cards — Luhn-checked candidates returned as
{masked, last4, length}only. The full number is never stored — it is redacted from the entities AND from the echoed input text (this is asserted by our automated release test). - counts / totalEntities — per-type and total tallies
- types input lets you request a subset (e.g. only
["emails","phones"]) - Fail-soft: a non-string entry never fails the run — it returns
{ok: false, error}and is never charged.
Input
{ "text": "Email ada@example.com or call +1 (555) 123-4567 before 2024-03-15. Budget: $12,500.50.", "types": ["emails", "phones", "dates", "money"] }
Bulk: { "texts": ["...", "..."], "maxTexts": 100 }
Output (real run, trimmed)
{"ok": true,"entities": {"emails": ["ada@example.com"],"phones": ["+1 (555) 123-4567"],"dates": ["2024-03-15"],"money": ["$12,500.50"],"percentages": ["12.5%"],"urls": ["https://example.com/report"],"cards": [{ "masked": "************1111", "last4": "1111", "length": 16 }]},"counts": { "emails": 1, "phones": 1, "dates": 1, "money": 1 },"totalEntities": 10}
Pricing
$0.0008 per text scanned — all 11 entity types included. No start fee. Non-string entries are never charged.
Measured context (2026-08-07): model-based NER actors charge $0.01+ per call (alizarin hugging-face ner $0.01 + $0.1 start) with the direct regex-extractor incumbents unpriced. For pattern entities this does the job at a tenth of model pricing — and for people/org/location entities you genuinely need an NER model, which this is not.
Honest limits
- Regex, not comprehension: "May 2024 report" contains no extractable date in a supported format; "call me at the office" contains no phone. Formats covered: ISO/slash/dot/'Month DD, YYYY' dates, international phone shapes (7-15 digits), major currency symbols/codes.
- Phone detection is the noisiest category by nature (any digit run can look phone-ish); dates and money are stripped first to reduce false positives, but expect to post-filter phones for your locale.
- Card detection is a PII-flagging aid (Luhn + length): it tells you card-like data is present and where — masked — so you can act; it is not a PCI compliance tool.
FAQ
Does it find people or company names? No — that requires a model NER system, and we won't pretend regex does it. If your pipeline needs both, run this for structured entities and a model for names.
Is my text sent to any AI service? No. Extraction is pure in-process pattern matching; the text goes only into your run's private dataset (with card numbers redacted).
What's the card masking for? Compliance sweeps: find out whether card numbers are leaking into tickets, logs, or scraped content — without your scanning tool itself becoming the leak.
Can I extract only some entity types?
Yes — pass types with any subset; extraction and billing stay the same per text.
Why did some rows come back ok: false?
Those entries were not text strings. Recorded, never charged.
Use from code or AI agents
curl -s "https://api.apify.com/v2/acts/EliAI~text-entity-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-X POST -H 'Content-Type: application/json' \-d '{"text": "Reach ada@example.com / +1 555 123 4567, budget $10,000 by 2024-06-30"}'
Agents: connect Apify MCP and call the EliAI/text-entity-extractor tool.
- Capability: regex extraction of structured entities (11 types incl. masked cards) from one or many texts — NOT model NER, no people/org/location entities
- Required input:
text(string) ortexts(array); optionaltypessubset - Returns: one record per text;
entities+countssummarize findings - Bounded: 100 texts per run; failures isolate per text
- Side effects: none (in-process; card numbers redacted from output)