Concepts

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:

ResourceText we read
Profilebio
Posttitle, text, and on TikTok description
Commenttext

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

  • null lists 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.art or tiktok.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.

On this page