Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: FullEnrich API Documentation Company API
version: 2.0.0
description: 'FullEnrich API enables you to enrich B2B contacts with emails and phone numbers using data from 20+ providers.
We are GDPR and CCPA compliant.'
servers:
- url: https://app.fullenrich.com/api/v2
tags:
- name: Company
paths:
/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:
- Company
/company/lookup:
post:
summary: Look up company
description: Look up a single company using its identifiers (domain, or professional network URL/ID). Returns the best matching company.
operationId: postCompanyLookup
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LookUpCompanyRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/LookUpCompanyResponse'
- $ref: '#/components/schemas/LookUpMetadata'
'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:
- Company
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
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
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
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
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 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: San Francisco
exact_match: false
exclude: false
founded_years:
type: array
description: Filter by founding years. Useful for targeting startups (recent years) or established companies.
items:
type: object
properties:
min:
type: integer
description: Minimum founding year (inclusive)
example: 2010
max:
type: integer
description: Maximum founding year (inclusive)
example: 2024
exclude:
type: boolean
description: If true, excludes companies founded in this range
example: false
example:
- min: 2015
max: 2024
exclude: false
headcounts:
type: array
description: 'Filter by company headcounts (number of employees). Use ranges to target specific company sizes (e.g., startups: 1-50, mid-size: 50-500, enterprise: 1000+).'
items:
type: object
properties:
min:
type: integer
description: Minimum number of employees (inclusive)
example: 100
max:
type: integer
description: Maximum number of employees (inclusive)
example: 1000
exclude:
type: boolean
description: If true, excludes companies in this range
example: false
example:
- min: 100
max: 500
exclude: false
company_ids:
type: array
description: Filter by specific company IDs
items:
type: object
properties:
value:
type: string
description: The string value to filter by
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
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
LookUpCompanyResponse:
type: object
properties:
companies:
type: array
description: Array containing the matching company. Returns an empty array if no match is found.
items:
$ref: '#/components/schemas/Company'
LookUpMetadata:
type: object
properties:
metadata:
type: object
properties:
credits:
type: number
format: double
description: Total number of credits consumed
example: 0.25
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
LookUpCompanyRequest:
type: object
description: Provide at least one identifier to match a single company. The domain or professional network URL/ID give the most reliable match.
properties:
domain:
type: string
description: Company domain to look up.
example: anthropic.com
professional_network_url:
type: string
description: Professional network URL of the company.
example: https://www.linkedin.com/company/anthropic
professional_network_id:
type: integer
description: Professional network ID of the company.
example: 1883877
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=
SearchCompanyResponse:
type: object
properties:
companies:
type: array
description: Array of companies matching the search criteria. Returns empty array if no results found.
items:
$ref: '#/components/schemas/Company'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: string