Extracted contact details
Emails, phone numbers, links, and handles that people write into bios, captions, and comments, returned as clean lists.
People put their contact details in plain text. A bio says
📩 hello@mayastudio.com, a caption says ig: @maya.art, a comment says
WhatsApp +31 6 1234 5678. Every profile, post, and comment carries an
extracted object with those details already pulled out.
"extracted": {
"emails": ["hello@mayastudio.com"],
"phones": ["+31612345678"],
"links": ["https://linktr.ee/maya"],
"handles": [
{ "platform": "instagram", "handle": "maya.art" },
{ "platform": "youtube", "handle": "mayamakes" }
]
}It is free. There is no extra request and no extra credit.
Where it comes from
We only read the text the platform returned:
| Resource | Text we read |
|---|---|
| Profile | bio |
| Post | title, text, and on TikTok description |
| Comment | text |
Every value in extracted appears in that text. We never guess an address or
look one up somewhere else.
extracted sits next to the platform's own fields. Instagram's contact.email
comes from the business contact button. extracted.emails comes from the bio
text. They can differ, so check both.
Null or empty
nulllists mean the resource had no text to read.- Empty lists (
[]) mean we read the text and found nothing.
What we find
Emails. Plain addresses, and the hidden forms people use to dodge spam
bots: maya [at] gmail [dot] com, or email: maya at gmail dot com after a
label. Fancy letters such as 𝐡𝐞𝐥𝐥𝐨@𝐦𝐚𝐲𝐚.𝐜𝐨 become normal letters, and
addresses with accents or non-Latin domains stay whole. Emails come back in
lower case.
Phones. Numbers with a country code, like +44 20 7946 0958. We check that
the number is real and return it in one form, such as +442079460958, without
spaces or a (0). A number that is not valid is left out, and a number
never runs into the next line or the next number in the sentence. A number
without a country code only counts when the text labels it, like
WhatsApp: 06 12 34 56 78 or 📞 555 123 4567, or when it has the US
555-123-4567 layout. Those come back as digits only. wa.me links count
too. Dates, order numbers, and follower counts stay out.
Links. Full links, www. links, and short ones such as linktr.ee/maya,
with their path and query. Links without https:// get it added. Endings that
are also words, like .in or .no, need a path, so all.in in a sentence
stays text. An email inside a link stays part of the link. On Twitter we return
the real address, not the t.co short link.
Handles. Accounts on other platforms, found two ways:
- A link to the account, such as
instagram.com/maya.artortiktok.com/@maya. - A label, such as
ig: maya,snap @maya,yt: @mayamakes, or👻 maya.
A plain @maya with no platform label is not in handles. It usually points
to an account on the same platform, and the platform fields already cover it.
Supported platforms: instagram, tiktok, twitter, youtube, twitch,
snapchat, telegram, threads, facebook, linkedin, reddit,
github, pinterest, soundcloud.
Nested resources
A post's author, a comment's replies, and a quoted post each carry their own
extracted object, filled from their own text.
Using contact details
extracted adds no new data. It only sorts what is already in the public text
of the same response. An email or phone number still belongs to a person,
so follow the privacy and anti-spam rules where you use it, such as GDPR.
Try it with a test key
Test keys return fake contact details, so you can see extracted filled in:
- Instagram profile
northstar_forge_test: an email, a phone, and a TikTok handle. - TikTok profile
pixel_orchard_tt_test: an email and an Instagram handle. - Twitter profile
copperfield_lab_x_test: an email and a YouTube handle. - Reddit profile
synthetic_reddit: an email.