Contacts data, ready when you are.

A person's work email and mobile number, by LinkedIn handle.

What you can get.

  • Reveal

    Work email and mobile number for up to ten people, by LinkedIn /in/ handle or profile URL. A reveal is the BUYER'S asset: billed per person and per part, owned by your org, never shared with another org. A part you already own is free; only the missing part is bought.

    Try it →

What the data looks like.

publicIdprofileUrlemailsphonesdetails
ananya-raohttps://www.linkedin.com/in/ananya-rao
  • ananya.rao@paylane.example · work · verified
  • +91 98450 00000 · mobile
  • {}
marcus-leehttps://www.linkedin.com/in/marcus-lee
  • marcus@northfold.example · work · verified
  • +44 7700 900123 · mobile
  • {}
sofia-ortizhttps://www.linkedin.com/in/sofia-ortiz
  • sofia.ortiz@kitebank.example · work
  • []
  • {}
5 fields. Example rows: made-up names, real field names. Live calls return real data.

For developers

API reference.

One endpoint, POST /v1/contacts. Open an operation to see its fields.

Read the docs
Revealreveal

Work email and mobile number for up to ten people, by LinkedIn /in/ handle or profile URL. A reveal is the BUYER'S asset: billed per person and per part, owned by your org, never shared with another org. A part you already own is free; only the missing part is bought.

FieldTypeMeaning
subjects *list of string · 1-10 items/in/<slug> handles or profile URLs.
reveallist of enumWhich parts to reveal. Both by default. A contact is an email AND a number; a phone is five emails' worth, so ask ["email"] when unneeded.email · phone
verifybooleanVerify each email found before it counts: an address a verifier calls invalid is kept as a fact but does not satisfy the ask, and the next source is tried. A verdict costs a fraction of a cent per address.
tryAnotherSourceboolean"What I hold is wrong. Get me another." EVERY part in reveal that your org holds is marked wrong and bought again from a source other than the one that gave it, at that part's price. So list only the part that is wrong. One call is one step: the next source's answer is returned even when it is the same value (flagged); ask again to go one source further. Marking is free and final. A part you do not hold is simply revealed.

Response fields, each row of data

FieldType
publicIdstring
profileUrlstring
namestring
titlestring
companystring
emailslist of object
phoneslist of object
firstNamestring
lastNamestring
headlinestring
locationobject
currentCompanyobject
experiencelist of object
educationlist of object
skillslist of string
languageslist of object
linkedinUrlstring
detailsobject

Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.

example request · reveal
curl -X POST https://apiforagents.dev/v1/contacts \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"reveal","subjects":["satyanadella"],"reveal":["email"]}'

Example response rows

data · made-up names, real field names
[
  {
    "publicId": "ananya-rao",
    "profileUrl": "https://www.linkedin.com/in/ananya-rao",
    "emails": [
      {
        "value": "ananya.rao@paylane.example",
        "type": "work",
        "status": "verified"
      }
    ],
    "phones": [
      {
        "value": "+91 98450 00000",
        "type": "mobile"
      }
    ],
    "details": {}
  },
  {
    "publicId": "marcus-lee",
    "profileUrl": "https://www.linkedin.com/in/marcus-lee",
    "emails": [
      {
        "value": "marcus@northfold.example",
        "type": "work",
        "status": "verified"
      }
    ],
    "phones": [
      {
        "value": "+44 7700 900123",
        "type": "mobile"
      }
    ],
    "details": {}
  }
]

An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.

Try reveal in the playground Examples and pricing for reveal

Guides and ideas.

Use it from your tools.