Contact Enrichment API
Send an email or LinkedIn URL and get back the person's signals and their employer as structured JSON.
POST/v1/contacts/enrich
Replace $AUTOBOUND_API_KEY with your key from the portal.
What's in each record
Signals about a person: podcast appearances, conference talks and job changes. Person-level coverage is low today, so many contacts return an empty contact_signals list with their employer filled in. About podcast appearance signals →
- signal_subtype
- podcastAppearanceThe event, one of 43 values
- detected_at
- 2026-08-24T10:25:28.000ZWhen Autobound found it (UTC)
- data.podcast_name
- CII PodcastsThe show
- data.episode_title
- India@100: Powering the Future through Digital Acceleration ft Arundhati BhattacharyaThe episode
- data.published_at
- 2026-06-05When the episode came out
- data.episode_url
- https://shows.acast.com/ciipodcasts/episodes/india100-powering-the-future-through-digital-acceleration-ftThe episode page
Also in this record: episode_id, host, occasion, topics, talking_points, is_ad, transcript_source
signal_iddca86039-9c23-54d3-b9c2-00eacdb38baf
Every field in the responseThe response, the contact block, the signal envelope and the data fields of the signal selected above.Show all 43 fieldsHide
Green rows are filled in the record selected above: Salesforce, Podcast guest.
Response
contactobject | null- The person you asked about (fields below)
companyobject | null- Their employer, as a company block
contact_signalsSignalResult[]- Signals about the person, up to limit
signal_summaryobject- Count of returned signals per type
totalinteger- Signals returned
coverage.total_before_filtersinteger- Signals on file before your filters
coverage.total_after_filtersinteger- Signals left after your filters
coverage.signal_types_availablestring[]- Types with at least one signal for this person
coverage.date_rangeobject | null- Earliest and latest signal date
warningsstring[]- Optional notes, such as an unknown subtype
Contact
contact.full_namestring | null- The person
contact.first_namestring | null- First name
contact.last_namestring | null- Last name
contact.job_titlestring | null, filled in the selected example- Current title
contact.emailstring | null- Work email, when known
contact.linkedin_urlstring | null, filled in the selected example- LinkedIn profile
contact.citystring | null- City
contact.statestring | null- State or region
contact.countrystring | null- Country
Signal
signal_idstring, filled in the selected example- Stable id. GET /v1/signals/{id} returns the signal
signal_typestring, filled in the selected example- The type, such as podcast-contact or work-milestones
signal_subtypestring, filled in the selected example- The event within the type
signal_namestring- Display name. Often empty: use data.summary
detected_atdatetime, filled in the selected example- When Autobound found it (UTC)
associationstring, filled in the selected example- "company" or "contact"
Company
company.namestring, filled in the selected example- The company the signal is about
company.domainstring, filled in the selected example- Root domain. The join key
company.linkedin_urlstring- Company LinkedIn page. May be a relative path
company.industriesstring[], filled in the selected example- Industry labels, when known
company.employee_count_*integer- Headcount low and high, when known
company.revenuestring, filled in the selected example- Revenue range, when known
company.descriptionstring | null- Short description. Often null
podcast-contact data
data.podcast_namestring, filled in the selected example- The show
data.episode_titlestring, filled in the selected example- The episode
data.episode_urlstring, filled in the selected example- The episode page
data.episode_idstring, filled in the selected example- Episode id. Joins every signal from one episode
data.hoststring, filled in the selected example- The show's host
data.published_atdate, filled in the selected example- When the episode came out
data.occasionstring, filled in the selected example- Why the guest is on the show
data.topicsstring[], filled in the selected example- Topics of the episode
data.talking_pointsobject[], filled in the selected example- What the guest said: a point and a quote
data.is_adboolean, filled in the selected example- true when the episode is an ad
data.transcript_sourcestring, filled in the selected example- Where the text came from, such as transcript
conference-speaker data
data.summarystring- Who speaks at which event
data.conference_namestring- The event
data.conference_datedate- First day of the event
data.conference_end_datedate- Last day of the event
data.conference_urlstring- The event website
data.conference_locationstring- Where the event is
data.conference_topicsarray- Topics of the event
data.session_titlestring- Title of the talk
data.session_typestring- Kind of session, such as keynote or talk
data.session_trackstring- Track of the session
data.session_descriptionstring- What the talk covers
data.speaker_biostring- The speaker's bio from the event
data.co_speakersobject[]- Other speakers in the session: name, title, company
data.is_future_eventboolean- true when the event is still to come
data.conference_estimated_sizestring- Estimated audience size
data.conference_descriptionstring- What the event is about
data.session_recording_urlstring- Recording of the talk, when published
data.technologies_mentionedstring[]- Technologies named in the session
data.confidencestring- Confidence label, such as high
data.relevancenumber- Score from 0 to 1
data.contact_resolvedboolean- true when the speaker is matched to a contact
data.domain_match_scorenumber- Score for the company domain match
data.domain_match_confidencestring- How sure the company match is
data.extraction_methodstring- How the speaker was found
Pricing and limits
You pay in credits for what a call returns. A call that returns no results is free.
See all plans →- Enrich a contact
- 2creditsper signal returnedPOST /v1/contacts/enrich
- Enrich a company
- 2creditsper signal returnedPOST /v1/companies/enrich
- Free to start
- 1,000free credits at signup
- Self-serve plans
- $19Starter: 1,900 creditsPacks up to $4,999.
- Rate limit
- 300requests per minutePer account, shared by all keys.
Questions
What does contact enrichment return?
The contact's profile, their employer and the signals about that person, such as podcast appearances, conference talks and job changes. Person-level coverage is low today, so many contacts return an empty contact_signals list. The employer still comes back in company.
Can I enrich by email or LinkedIn URL?
Yes, both. Send contact_email or contact_linkedin_url to POST /v1/contacts/enrich. At least one is required. Filter the returned signals with signal_types, signal_subtypes and detected_after.
Does contact enrichment include company signals?
It returns the employer's company block (name, domain, LinkedIn URL). For the employer's signals, such as hiring, news and SEC filings, call POST /v1/companies/enrich with that domain. Contact first, then company, is the pattern we recommend.
How much does it cost?
2 credits per signal returned. A call that returns nothing is free.
How many contacts are in the database?
270M+ professional contacts across 80M+ companies.
Make this call with your own key
One key works for all 35 signal types. 2 credits per signal returned. Calls with no results are free.
1,000 free credits to start.
Or use it from Claude Code, Cursor or any MCP client
Add the server, run /mcp to sign in, then ask: “Has this person spoken at a conference or on a podcast this year?”
claude mcp add --transport http autobound https://mcp.autobound.ai/mcp