FullEnrich Search API
Synchronously search 800M people and 50M companies with structured filters across role, seniority, function, industry, location, company size and more. Values within a field are OR'd; fields are AND'd.
Synchronously search 800M people and 50M companies with structured filters across role, seniority, function, industry, location, company size and more. Values within a field are OR'd; fields are AND'd.
openapi: 3.1.0
info:
title: FullEnrich Search API
description: Synchronous search for people and companies across 800M people and 50M companies using
structured filters. FullEnrich API enables you to enrich B2B contacts with emails and phone numbers
using data from 20+ providers. We are GDPR and CCPA compliant.
version: 2.0.0
contact:
name: FullEnrich Support
url: https://docs.fullenrich.com
termsOfService: https://fullenrich.com/tos
servers:
- url: https://app.fullenrich.com/api/v2
security:
- BearerAuth: []
tags:
- name: Search
description: Synchronous search for people and companies across 800M people and 50M companies using
structured filters.
paths:
/people/search:
post:
summary: Search people
description: Search for people based on various filters. Multiple filters within the same field
are combined with AND logic.
operationId: postPeopleSearch
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchPeopleRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SearchPeopleResponse'
- $ref: '#/components/schemas/Metadata'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
AuthorizationHeaderNotSet:
value:
code: error.authorization.not_set
message: Authorization headers not set
AuthorizationHeaderNotAnBearer:
value:
code: error.authorization.not_bearer
message: Authorization headers do not have prefix 'bearer'
UnknownApiKey:
value:
code: error.api.key
message: Unknown api key
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
RateLimitExceeded:
value:
code: error.rate.limit
message: Too many requests. Try again in 1m
security:
- BearerAuth: []
tags:
- Search
/company/search:
post:
summary: Search company
description: Search for companies based on various filters. Multiple filters within the same field
are combined with AND logic.
operationId: postCompanySearch
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchCompanyRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SearchCompanyResponse'
- $ref: '#/components/schemas/Metadata'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
AuthorizationHeaderNotSet:
value:
code: error.authorization.not_set
message: Authorization headers not set
AuthorizationHeaderNotAnBearer:
value:
code: error.authorization.not_bearer
message: Authorization headers do not have prefix 'bearer'
UnknownApiKey:
value:
code: error.api.key
message: Unknown api key
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
RateLimitExceeded:
value:
code: error.rate.limit
message: Too many requests. Try again in 1m
security:
- BearerAuth: []
tags:
- Search
components:
schemas:
Company:
type: object
properties:
id:
type: string
description: Unique company identifier
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
name:
type: string
description: Company name
example: Anthropic
domain:
type: string
description: Company domain
example: anthropic.com
website:
type: string
description: Company website URL as declared by the company. May differ from `domain` (can include
a subdomain, a path or tracking parameters). Omitted when not available.
example: https://www.anthropic.com
description:
type: string
description: Company description
example: AI safety and research company building reliable, interpretable, and steerable AI systems.
year_founded:
type: integer
description: Year the company was founded. Returns 0 when unknown.
example: 2021
headcount:
type: integer
description: Exact number of employees. May return 0 even when headcount_range is available.
example: 2610
headcount_range:
type: string
description: Employee count range (e.g., '1-10', '11-50', '51-200', '201-500', '501-1000', '1001-5000',
'5001-10000', '10001+')
example: 1001-5000
company_type:
type: string
description: Type of company (e.g., 'Public Company', 'Privately Held', 'Nonprofit', 'Self-Employed',
'Partnership', 'Educational', 'Government Agency')
example: Privately Held
locations:
type: object
description: Company location information
properties:
headquarters:
type: object
description: Main headquarters address with structured location fields. Can be an empty
object when no headquarters data is available.
allOf:
- $ref: '#/components/schemas/CompanyAddress'
offices:
type: array
description: Additional office locations. Only contains raw address lines (line1, line2)
without structured city/region/country fields. Can be null or an empty array.
nullable: true
items:
$ref: '#/components/schemas/OfficeAddress'
social_profiles:
type: object
description: Company's social media profiles
allOf:
- $ref: '#/components/schemas/CompanySocialProfile'
specialties:
type: array
description: Specialties associated with the company
items:
type: string
example:
- artificial intelligence
- machine learning
- AI safety
industry:
type: object
description: Company industry information
properties:
main_industry:
type: string
description: Primary industry category (e.g., 'Software Development', 'Computer Hardware
Manufacturing', 'Financial Services', 'Healthcare', 'Retail')
example: Software Development
logo_url:
type: string
description: URL of the company logo hosted by FullEnrich, built from the company's professional
network handle. Empty when the handle is unknown.
example: https://app.fullenrich.com/logo/company/handle/anthropic
CompanyAddress:
type: object
description: Structured headquarters address with parsed location fields
properties:
line1:
type: string
description: Address line 1 (street address)
example: 548 Market St
line2:
type: string
description: Address line 2 (full location string including city, region, postal code, and country
code)
example: San Francisco, CA 94105, US
city:
type: string
description: City name
example: San Francisco
region:
type: string
description: State or region
example: California
country:
type: string
description: Country name
example: United States
country_code:
type: string
description: ISO country code
example: US
CompanySocialProfile:
type: object
properties:
professional_network:
type: object
description: Professional network profile information
properties:
id:
type: integer
description: Professional network profile ID
example: 1234
url:
type: string
description: Full professional network profile URL
example: https://www.linkedin.com/company/anthropic
handle:
type: string
description: Professional network profile handle/username
example: anthropic
connection_count:
type: integer
description: Number of professional network followers
example: 125000
Employment:
type: object
properties:
title:
type: string
description: Job title or position
example: Senior Software Engineer
seniority:
type: string
description: Seniority level of the person in the company
example: Senior
job_functions:
type: array
description: Job functions of the person in the company
items:
type: object
properties:
function:
type: string
description: Job function
example: Not Employed
sub_function:
type: string
description: Sub function of the job function
example: Freelancer
description:
type: string
description: Description of the role and responsibilities. Not always present.
example: Leading the backend team and designing microservices architecture.
company:
type: object
description: Company information
allOf:
- $ref: '#/components/schemas/EmploymentCompany'
is_current:
type: boolean
description: Whether this is the current employment
example: true
start_at:
type: string
format: date-time
description: Employment start date in ISO 8601 format with T separator (YYYY-MM-DDTHH:MM:SSZ)
example: '2022-03-15T00:00:00Z'
end_at:
type: string
format: date-time
description: Employment end date in ISO 8601 format with T separator (YYYY-MM-DDTHH:MM:SSZ).
This field is not returned for current employment (when is_current is true).
example: '2024-06-30T00:00:00Z'
EmploymentCompany:
type: object
properties:
id:
type: string
description: Unique company identifier
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
name:
type: string
description: Company name
example: Anthropic
domain:
type: string
description: Company domain
example: anthropic.com
website:
type: string
description: Company website URL as declared by the company. May differ from `domain` (can include
a subdomain, a path or tracking parameters). Omitted when not available.
example: https://www.anthropic.com
description:
type: string
description: Company description
example: AI safety and research company
year_founded:
type: integer
description: Year the company was founded. Returns 0 when unknown.
example: 2021
headcount:
type: integer
description: Exact number of employees. May return 0 even when headcount_range is available.
example: 2610
headcount_range:
type: string
description: Employee count range (e.g., '1-10', '11-50', '51-200', '201-500', '501-1000', '1001-5000',
'5001-10000', '10001+')
example: 1001-5000
company_type:
type: string
description: Type of company (e.g., 'Public Company', 'Privately Held', 'Nonprofit', 'Self-Employed',
'Partnership', 'Educational', 'Government Agency')
example: Privately Held
specialties:
type: array
description: Specialties associated with the company
items:
type: string
example:
- Data Enrichment
- B2B Data
locations:
type: object
description: Company location information
properties:
headquarters:
type: object
description: Main headquarters address with structured location fields. Can be an empty
object when no headquarters data is available.
allOf:
- $ref: '#/components/schemas/CompanyAddress'
offices:
type: array
description: Additional office locations. Only contains raw address lines (line1, line2)
without structured city/region/country fields. Can be null or an empty array.
nullable: true
items:
$ref: '#/components/schemas/OfficeAddress'
industry:
type: object
description: Company industry information
properties:
main_industry:
type: string
description: Primary industry category (e.g., 'Software Development', 'Computer Hardware
Manufacturing', 'Financial Services', 'Healthcare')
example: Software Development
social_profiles:
type: object
description: Company's social media profiles
allOf:
- $ref: '#/components/schemas/CompanySocialProfile'
logo_url:
type: string
description: URL of the company logo hosted by FullEnrich, built from the company's professional
network handle. Empty when the handle is unknown.
example: https://app.fullenrich.com/logo/company/handle/anthropic
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
Metadata:
type: object
properties:
metadata:
type: object
properties:
total:
type: integer
description: Total number of results matching the search criteria
example: 20523
credits:
type: number
format: double
description: Total number of credits consumed
example: 22.5
offset:
type: integer
description: Number of results skipped (for pagination)
example: 0
search_after:
type: string
description: The cursor value returned by the previous page. Use this to paginate through
the results.
example: WzE1LjUzNDU2MywiYjQ5MDBiYmQtOTg5MS01Mzk1LWIyODUtOWEyOGNiZThjOTM3Il0=
OfficeAddress:
type: object
description: Office address. Unlike headquarters, office addresses only contain raw address lines
without parsed location fields.
properties:
line1:
type: string
description: Street address
example: 111 8th Ave
line2:
type: string
description: Full location string (city, region, postal code, country code)
example: New York, NY 10011, US
Person:
type: object
properties:
id:
type: string
description: Unique person identifier
example: 746e4816-19c8-54d8-b558-65a5a52cc85c
full_name:
type: string
description: Person's full name
example: Enzo Romera
first_name:
type: string
description: Person's first name
example: Enzo
last_name:
type: string
description: Person's last name
example: Romera
headline:
type: string
description: Short professional tagline written by the person on their professional network
profile
example: Marketing Strategist | 10+ Years in Strategy, Account Management & Activation | Consulting
Expert
description:
type: string
description: Free-text summary written by the person in the about section of their professional
network profile. Omitted when not available.
example: Marketing strategist with 10+ years helping B2B companies build demand generation engines.
I work with go-to-market teams on positioning, account-based campaigns and channel activation.
location:
type: object
description: Person's location information
properties:
country:
type: string
description: Country name
example: United States
country_code:
type: string
description: ISO country code
example: US
city:
type: string
description: City name
example: San Francisco
region:
type: string
description: Region or state
example: California
social_profiles:
type: object
description: Person's social media profiles
allOf:
- $ref: '#/components/schemas/PersonSocialProfile'
educations:
type: array
description: Person's education history
items:
$ref: '#/components/schemas/PersonEducation'
languages:
type: array
description: Languages spoken by the person
items:
$ref: '#/components/schemas/PersonLanguage'
skills:
type: array
description: Person's professional skills
items:
type: string
example:
- JavaScript
- Project Management
- Python
employment:
type: object
description: Person's employment history
properties:
current:
type: object
description: Current employment information. If the person is in their current position,
the end_at field will not be returned.
allOf:
- $ref: '#/components/schemas/Employment'
all:
type: array
description: All employment history (current and past)
items:
$ref: '#/components/schemas/Employment'
PersonEducation:
type: object
properties:
school_name:
type: string
description: Name of the educational institution
example: Stanford University
degree:
type: string
description: Degree or qualification obtained
example: Bachelor of Science in Computer Science
start_at:
type: string
format: date-time
description: Start date in ISO 8601 format with T separator (YYYY-MM-DDTHH:MM:SSZ)
example: '2015-09-01T00:00:00Z'
end_at:
type: string
format: date-time
description: End date in ISO 8601 format with T separator (YYYY-MM-DDTHH:MM:SSZ)
example: '2019-06-01T00:00:00Z'
PersonLanguage:
type: object
properties:
language:
type: string
description: Language name
example: French
proficiency:
type: string
description: Proficiency level in the language (e.g., 'NATIVE_OR_BILINGUAL', 'FULL_PROFESSIONAL',
'PROFESSIONAL_WORKING', 'LIMITED_WORKING', 'ELEMENTARY')
example: NATIVE_OR_BILINGUAL
PersonSocialProfile:
type: object
properties:
professional_network:
type: object
description: Professional network profile information
properties:
id:
type: integer
description: Professional network profile ID
example: 1234
url:
type: string
description: Full professional network profile URL
example: https://www.linkedin.com/in/john-doe
handle:
type: string
description: Professional network profile handle/username
example: john-doe
connection_count:
type: integer
description: Number of professional network connections
example: 500
SearchCompanyRequest:
type: object
properties:
offset:
type: integer
description: Number of companies to skip (use this for pagination). Maximum value is 10,000.
To paginate beyond 10,000 results, use search_after instead.
example: 20
limit:
type: integer
description: 'Number of companies to return (default: 10, max: 100)'
example: 20
search_after:
type: string
description: Cursor-based pagination. Pass the search_after value from the previous response
to get the next page. Works at any point in the result set, but is required to access results
beyond the 10,000 offset limit. The search_after token does not have any expiration date.
However, when the database is updated (every month), if the position of a company changes,
the same search_after token might display different results.
example: WzE1LjUzNDU2MywiYjQ5MDBiYmQtOTg5MS01Mzk1LWIyODUtOWEyOGNiZThjOTM3Il0=
names:
type: array
description: Filter by company names. Use exact_match for precise company name matching.
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: Microsoft
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: true
example:
- value: Microsoft
exact_match: true
exclude: false
domains:
type: array
description: Filter by company domains (e.g., 'google.com', 'microsoft.com'). Exact match recommended.
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: microsoft.com
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: true
example:
- value: microsoft.com
exact_match: true
exclude: false
professional_network_ids:
type: array
description: Filter by professional network IDs.
items:
type: object
properties:
value:
type: integer
description: The integer value to filter by
example: 1234
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the exact term must appear within the value, but can still be
part of a longer string. When false (default), matching is flexible and tolerates slight
variations such as missing or extra words. Matching is never case-sensitive.
example: true
example:
- value: 1234
exact_match: true
exclude: false
professional_network_urls:
type: array
description: Filter by professional network URLs.
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: https://www.linkedin.com/company/fullenrich
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: true
example:
- value: https://www.linkedin.com/company/fullenrich
exact_match: true
exclude: false
keywords:
type: array
description: Filter by description of company
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: innovative and practical products
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: false
example:
- value: innovative and practical products
exact_match: false
exclude: false
specialties:
type: array
description: Filter by specialties of company
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: AI safety
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: false
example:
- value: AI safety
exact_match: false
exclude: false
industries:
type: array
description: Filter by company industries (e.g., 'Software Development', 'Computer Hardware
Manufacturing', 'Housing and Community Development', 'Warehousing', 'Financial Services').
See [Industries](/api/v2/general/enums#company-industry) for the full list.
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: Software Development
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: false
example:
- value: Software Development
exact_match: false
exclude: false
- value: Computer Hardware Manufacturing
exact_match: false
exclude: false
types:
type: array
description: Filter by company types (e.g., 'Public Company', 'Privately Held', 'Nonprofit',
'Self-Employed', 'Partnership', 'Educational', 'Government Agency'). See [Company Types](/api/v2/general/enums#company-type)
for the full list.
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: Public Company
exclude:
type: boolean
description: If true, excludes results matching this value. If false or omitted (default),
includes only matching results.
example: false
exact_match:
type: boolean
description: When true, the value must match exactly as stored (case-insensitive), with
no tolerance for variations. When false (default), the API tolerates minor differences
such as missing words, extra words, or slight reordering. Matching is never case-sensitive.
example: true
example:
- value: Public Company
exact_match: true
exclude: false
headquarters_locations:
type: array
description: Filter by headquarters locations (city names, regions, or countries)
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: San Francisco
exclude:
type: boolean
description: If true, excludes results matching this value. If false
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fullenrich/refs/heads/main/openapi/fullenrich-search-api-openapi.yml