Deeplead Persons API
The Persons API from Deeplead — 5 operation(s) for persons.
The Persons API from Deeplead — 5 operation(s) for persons.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/deeplead:deeplead-persons-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Deeplead Persons API
version: 1.0.0
description: Search local businesses, companies and people, and find decision makers with verified work emails and phone numbers. Authenticate with an API key as a Bearer token; up to 120 requests per minute per account, answered with 429 beyond that.
contact:
email: support@deeplead.io
url: https://www.deeplead.io/developers
termsOfService: https://www.deeplead.io/terms
servers:
- url: https://www.deeplead.io/api/v1
security:
- apiKey: []
tags:
- name: Persons
paths:
/persons/search:
post:
operationId: persons.search
summary: Search persons with their emails and phones
description: 'Covers professional contacts only: people in their role at a company, not private individuals. Returns only people with an email or phone, with full contact data, and charges 1 credit per returned person. Page with nextOffset. limit 0 returns only totalCount, free. saveToContacts also stores them in your contacts, where people you already had are refunded. Send an Idempotency-Key header to make retries safe.'
tags:
- Persons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
minLength: 1
description: Free text matched against company name, description and keywords
semantic:
type: string
minLength: 1
description: What the company is and sells, matched by meaning, e.g. "outsourced medical billing for clinics"
domains:
type: array
maxItems: 100
items:
type: string
description: Look companies up by domain, e.g. ["stripe.com"]
hqCountry:
type: array
items:
type: string
description: ISO alpha-2 country codes of the headquarters, e.g. ["US", "DE"]
hqState:
type: array
items:
type: string
description: US state names or codes of the headquarters
employeeBands:
type: array
items:
enum:
- 1-10
- 11-50
- 51-200
- 201-500
- 501-1,000
- 1,001-5,000
- 5,001-10,000
- 10,001+
type: string
description: Headcount bands
revenueRange:
type: array
items:
enum:
- <$1M
- $1M to <$10M
- $10M to <$50M
- $50M to <$100M
- $100M to <$1B
- $1B+
type: string
description: Annual company revenue bands
industryNaicsDirect:
type: array
items:
type: string
description: NAICS codes
technologies:
type: array
items:
type: string
description: Technologies used by the company
foundedAfter:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Earliest founding year to include
foundedBefore:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Latest founding year to include
monthlyVisitsMin:
type: integer
minimum: 0
maximum: 9007199254740991
description: Minimum monthly website visits; known for about 1 in 8 US companies, the rest are excluded
employeeGrowthMin:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Minimum employee growth on LinkedIn in percent, e.g. 10; known for about 1 in 13 US companies
fundedAfter:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Year of the last funding round, at least; known for about 1 in 100 US companies
jobTitle:
type: array
items:
type: string
description: Matched as partial text, so "CEO" also finds "Assistant to the CEO"; combine with jobLevel to narrow
jobTitleExclude:
type: array
items:
type: string
description: Job title phrases to exclude
jobLevel:
type: array
items:
enum:
- C-Team
- VP
- Director
- Manager
- Staff
- Other
type: string
description: Allowed job seniority levels
decisionMakersOnly:
type: boolean
description: C-level, VP or director seniority, or a founder, owner, CEO, managing director or president title
inCountry:
type: array
items:
type: string
description: ISO alpha-2 country codes where the person is based
personState:
type: array
items:
type: string
description: States where the person is based
personCity:
type: array
items:
type: string
description: Cities where the person is based
organizationIds:
type: array
items:
type: string
description: Limit to organizations from /organizations/search
limit:
type: integer
minimum: 0
maximum: 100
default: 25
description: Maximum people to return; 0 returns only a free count
offset:
type: integer
minimum: 0
maximum: 10000
default: 0
description: Pagination offset; use nextOffset from the previous response
onePerOrganization:
type: boolean
default: false
description: Return at most one person per company
saveToContacts:
type: boolean
default: false
description: Save returned people to your Deeplead contacts
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
totalCount:
type: number
description: 'With limit 0: all matching people, including those without an email or phone'
nextOffset:
anyOf:
- type: number
- type: 'null'
chargedCredits:
type: number
persons:
type: array
items:
type: object
properties:
personId:
anyOf:
- type: string
- type: 'null'
name:
anyOf:
- type: string
- type: 'null'
email:
anyOf:
- type: string
- type: 'null'
alternateEmails:
type: array
items:
type: string
phone:
anyOf:
- type: string
- type: 'null'
phones:
type: array
items:
type: string
linkedin:
anyOf:
- type: string
- type: 'null'
jobTitle:
anyOf:
- type: string
- type: 'null'
jobLevel:
anyOf:
- type: string
- type: 'null'
jobFunction:
anyOf:
- type: string
- type: 'null'
city:
anyOf:
- type: string
- type: 'null'
state:
anyOf:
- type: string
- type: 'null'
country:
anyOf:
- type: string
- type: 'null'
organizationId:
anyOf:
- type: string
- type: 'null'
companyName:
anyOf:
- type: string
- type: 'null'
companyWebsite:
anyOf:
- type: string
- type: 'null'
revenueRange:
anyOf:
- type: string
- type: 'null'
naicsCodes:
type: array
items:
type: string
foundedYear:
anyOf:
- type: number
- type: 'null'
companyMonthlyVisits:
anyOf:
- type: number
- type: 'null'
companyEmployeeGrowthRate:
anyOf:
- type: number
- type: 'null'
description: Percent
companyLastFundingType:
anyOf:
- type: string
- type: 'null'
companyLastFundingDate:
anyOf:
- type: string
- type: 'null'
required:
- personId
- name
- email
- alternateEmails
- phone
- phones
- linkedin
- jobTitle
- jobLevel
- jobFunction
- city
- state
- country
- organizationId
- companyName
- companyWebsite
- revenueRange
- naicsCodes
- foundedYear
- companyMonthlyVisits
- companyEmployeeGrowthRate
- companyLastFundingType
- companyLastFundingDate
required:
- totalCount
- nextOffset
- chargedCredits
- persons
/persons/lookup:
post:
operationId: persons.lookup
summary: Look up one person by LinkedIn URL, email, or name and company domain
description: 'Returns the person with their emails, phones, role and company. Covers professional contacts only: people in their role at a company, not private individuals. Charges 1 credit only when the person is found with an email or phone. saveToContacts also stores them in your contacts. Send an Idempotency-Key header to make retries safe.'
tags:
- Persons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linkedin:
type: string
minLength: 1
description: e.g. "https://www.linkedin.com/in/jane-doe"
email:
type: string
format: email
description: Known email address identifying the person
name:
type: string
minLength: 3
description: Full name, e.g. "Jane Doe"; needs domain
domain:
type: string
minLength: 3
description: Company domain, e.g. "acme.com"
saveToContacts:
type: boolean
default: false
description: Save the returned person to your Deeplead contacts
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
found:
type: boolean
chargedCredits:
type: number
person:
anyOf:
- type: object
properties:
personId:
anyOf:
- type: string
- type: 'null'
name:
anyOf:
- type: string
- type: 'null'
email:
anyOf:
- type: string
- type: 'null'
alternateEmails:
type: array
items:
type: string
phone:
anyOf:
- type: string
- type: 'null'
phones:
type: array
items:
type: string
linkedin:
anyOf:
- type: string
- type: 'null'
jobTitle:
anyOf:
- type: string
- type: 'null'
jobLevel:
anyOf:
- type: string
- type: 'null'
jobFunction:
anyOf:
- type: string
- type: 'null'
city:
anyOf:
- type: string
- type: 'null'
state:
anyOf:
- type: string
- type: 'null'
country:
anyOf:
- type: string
- type: 'null'
organizationId:
anyOf:
- type: string
- type: 'null'
companyName:
anyOf:
- type: string
- type: 'null'
companyWebsite:
anyOf:
- type: string
- type: 'null'
revenueRange:
anyOf:
- type: string
- type: 'null'
naicsCodes:
type: array
items:
type: string
foundedYear:
anyOf:
- type: number
- type: 'null'
companyMonthlyVisits:
anyOf:
- type: number
- type: 'null'
companyEmployeeGrowthRate:
anyOf:
- type: number
- type: 'null'
description: Percent
companyLastFundingType:
anyOf:
- type: string
- type: 'null'
companyLastFundingDate:
anyOf:
- type: string
- type: 'null'
required:
- personId
- name
- email
- alternateEmails
- phone
- phones
- linkedin
- jobTitle
- jobLevel
- jobFunction
- city
- state
- country
- organizationId
- companyName
- companyWebsite
- revenueRange
- naicsCodes
- foundedYear
- companyMonthlyVisits
- companyEmployeeGrowthRate
- companyLastFundingType
- companyLastFundingDate
- type: 'null'
required:
- found
- chargedCredits
- person
/persons/email/find:
post:
operationId: persons.findEmail
summary: Find a person's work email by LinkedIn URL, or full name and company domain
description: Charges 1 credit only when an email is found. Send an Idempotency-Key header to make retries safe.
tags:
- Persons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linkedin:
type: string
minLength: 1
description: e.g. "https://www.linkedin.com/in/jane-doe"
name:
type: string
minLength: 3
description: Full name, e.g. "Jane Doe"; needs domain
domain:
type: string
minLength: 3
description: Company domain, e.g. "acme.com"
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
found:
type: boolean
chargedCredits:
type: number
email:
anyOf:
- type: string
- type: 'null'
alternateEmails:
type: array
items:
type: string
name:
anyOf:
- type: string
- type: 'null'
jobTitle:
anyOf:
- type: string
- type: 'null'
companyName:
anyOf:
- type: string
- type: 'null'
companyWebsite:
anyOf:
- type: string
- type: 'null'
linkedin:
anyOf:
- type: string
- type: 'null'
required:
- found
- chargedCredits
- email
- alternateEmails
- name
- jobTitle
- companyName
- companyWebsite
- linkedin
/persons/phone/find:
post:
operationId: persons.findPhone
summary: Find a person's phone number by LinkedIn URL, email, or full name and company…
description: 'Covers professional contacts only: people in their role at a company, not private individuals. Charges 2 credits only when a phone number is found. Send an Idempotency-Key header to make retries safe.'
tags:
- Persons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linkedin:
type: string
minLength: 1
description: e.g. "https://www.linkedin.com/in/jane-doe"
email:
type: string
format: email
description: Known email address identifying the person
name:
type: string
minLength: 3
description: Full name, e.g. "Jane Doe"; needs domain
domain:
type: string
minLength: 3
description: Company domain, e.g. "acme.com"
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
found:
type: boolean
chargedCredits:
type: number
phone:
anyOf:
- type: string
- type: 'null'
phones:
type: array
items:
type: string
name:
anyOf:
- type: string
- type: 'null'
jobTitle:
anyOf:
- type: string
- type: 'null'
companyName:
anyOf:
- type: string
- type: 'null'
companyWebsite:
anyOf:
- type: string
- type: 'null'
linkedin:
anyOf:
- type: string
- type: 'null'
required:
- found
- chargedCredits
- phone
- phones
- name
- jobTitle
- companyName
- companyWebsite
- linkedin
/persons/save:
post:
operationId: persons.save
summary: 'Save matching persons to contacts (deprecated: use /persons/search with…'
description: Returns only people with an email or phone, so it can return fewer than count. Charges 1 credit per person newly saved; people already in your contacts are refunded. Send an Idempotency-Key header to make retries safe.
deprecated: true
tags:
- Persons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
minLength: 1
description: Free text matched against company name, description and keywords
semantic:
type: string
minLength: 1
description: What the company is and sells, matched by meaning, e.g. "outsourced medical billing for clinics"
domains:
type: array
maxItems: 100
items:
type: string
description: Look companies up by domain, e.g. ["stripe.com"]
hqCountry:
type: array
items:
type: string
description: ISO alpha-2 country codes of the headquarters, e.g. ["US", "DE"]
hqState:
type: array
items:
type: string
description: US state names or codes of the headquarters
employeeBands:
type: array
items:
enum:
- 1-10
- 11-50
- 51-200
- 201-500
- 501-1,000
- 1,001-5,000
- 5,001-10,000
- 10,001+
type: string
description: Headcount bands
revenueRange:
type: array
items:
enum:
- <$1M
- $1M to <$10M
- $10M to <$50M
- $50M to <$100M
- $100M to <$1B
- $1B+
type: string
description: Annual company revenue bands
industryNaicsDirect:
type: array
items:
type: string
description: NAICS codes
technologies:
type: array
items:
type: string
description: Technologies used by the company
foundedAfter:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Earliest founding year to include
foundedBefore:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Latest founding year to include
monthlyVisitsMin:
type: integer
minimum: 0
maximum: 9007199254740991
description: Minimum monthly website visits; known for about 1 in 8 US companies, the rest are excluded
employeeGrowthMin:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Minimum employee growth on LinkedIn in percent, e.g. 10; known for about 1 in 13 US companies
fundedAfter:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Year of the last funding round, at least; known for about 1 in 100 US companies
jobTitle:
type: array
items:
type: string
description: Matched as partial text, so "CEO" also finds "Assistant to the CEO"; combine with jobLevel to narrow
jobTitleExclude:
type: array
items:
type: string
description: Job title phrases to exclude
jobLevel:
type: array
items:
enum:
- C-Team
- VP
- Director
- Manager
- Staff
- Other
type: string
description: Allowed job seniority levels
decisionMakersOnly:
type: boolean
description: C-level, VP or director seniority, or a founder, owner, CEO, managing director or president title
inCountry:
type: array
items:
type: string
description: ISO alpha-2 country codes where the person is based
personState:
type: array
items:
type: string
description: States where the person is based
personCity:
type: array
items:
type: string
description: Cities where the person is based
organizationIds:
type: array
items:
type: string
description: Limit to organizations from /organizations/search
count:
type: integer
minimum: 1
maximum: 1000
onePerOrganization:
type: boolean
default: true
required:
- count
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
chargedCredits:
type: number
contacts:
type: array
items:
type: object
properties:
name:
anyOf:
- type: string
- type: 'null'
email:
anyOf:
- type: string
- type: 'null'
phone:
anyOf:
- type: string
- type: 'null'
jobTitle:
anyOf:
- type: string
- type: 'null'
jobLevel:
anyOf:
- type: string
- type: 'null'
city:
anyOf:
- type: string
- type: 'null'
state:
anyOf:
- type: string
- type: 'null'
companyName:
anyOf:
- type: string
- type: 'null'
website:
anyOf:
- type: string
- type: 'null'
linkedin:
anyOf:
- type: string
- type: 'null'
organizationId:
anyOf:
- type: string
- type: 'null'
required:
- name
- email
- phone
- jobTitle
- jobLevel
- city
- state
- companyName
- website
- linkedin
- organizationId
required:
- chargedCredits
- contacts
components:
securitySchemes:
apiKey:
type: http
scheme: bearer