CustomerOS Enrichment API
The Enrichment API API from CustomerOS — 3 operation(s) for enrichment api.
The Enrichment API API from CustomerOS — 3 operation(s) for enrichment api.
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/customeros-enrichment-api-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: CustomerOS Enrichment API
description: CustomerOS API for multiple services (Verify, Enrich, Orgs)
contact: {}
version: '1.0'
servers:
- url: https://api.customeros.ai/
tags:
- name: Enrichment API
paths:
/enrich/v1/organization:
get:
tags:
- Enrichment API
summary: Enrich organization information
description: Enriches organization information using either domain or LinkedIn URL
parameters:
- name: linkedinUrl
in: query
description: Organization's LinkedIn URL
schema:
type: string
- name: domain
in: query
description: Organization's domain
schema:
type: string
responses:
'200':
description: 'Organization not found (status: warning)'
content:
application/json:
schema:
$ref: '#/components/schemas/rest.ErrorResponse'
'400':
description: Missing or invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
security:
- ApiKeyAuth: []
/enrich/v1/person:
get:
tags:
- Enrichment API
summary: Enrich person information
description: Enriches person information using LinkedIn URL, email, and other optional details
parameters:
- name: linkedinUrl
in: query
description: LinkedIn profile URL
schema:
type: string
- name: email
in: query
description: Email address
schema:
type: string
format: email
- name: firstName
in: query
description: First name
schema:
minLength: 1
type: string
- name: lastName
in: query
description: Last name
schema:
minLength: 1
type: string
- name: includeMobileNumber
in: query
description: Include mobile number in results
schema:
type: boolean
default: false
responses:
'200':
description: 'Person not found (status: warning)'
content:
application/json:
schema:
$ref: '#/components/schemas/rest.ErrorResponse'
'202':
description: Processing initiated, check ResultURL for final data
content:
application/json:
schema:
$ref: '#/components/schemas/restenrich.EnrichPersonResponse'
'400':
description: Missing linkedinUrl or email
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
security:
- ApiKeyAuth: []
/enrich/v1/person/results/{id}:
get:
tags:
- Enrichment API
summary: Retrieve enrichment results
description: Retrieves the results of an asynchronous person enrichment operation
parameters:
- name: id
in: path
description: Result ID
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successfully retrieved enriched data
content:
application/json:
schema:
$ref: '#/components/schemas/restenrich.EnrichPersonResponse'
'202':
description: Still processing, check again later
content:
application/json:
schema:
$ref: '#/components/schemas/restenrich.EnrichPersonResponse'
'400':
description: Invalid result ID
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'404':
description: Result not found
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/rest.BaseResponse'
security:
- ApiKeyAuth: []
components:
schemas:
restenrich.EnrichPersonGithub:
type: object
properties:
url:
type: string
description: 'Full GitHub profile URL
required: false
format: uri'
example: https://github.com/johndoe
username:
type: string
description: 'GitHub username
required: true'
example: johndoe
description: GitHub profile details
restenrich.EnrichPersonLocation:
type: object
properties:
city:
type: string
description: 'City name
required: false'
example: San Francisco
country:
type: string
description: 'Country name
required: false'
example: United States
region:
type: string
description: 'State or region
required: false'
example: California
timezone:
type: string
description: 'Timezone identifier
required: false
example: America/Los_Angeles'
example: PST
description: Geographic and timezone information about a person
restenrich.EnrichPersonResponse:
type: object
properties:
data:
type: object
description: 'Enriched person data
required: true'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonData'
isComplete:
type: boolean
description: 'Indicates if all enrichment operations are complete
required: true'
example: true
message:
type: string
description: 'Optional message providing additional information
required: false'
example: Enrichment completed
pendingFields:
type: array
description: 'List of fields still being processed
required: false'
example:
- email
- phone number
items:
type: string
resultUrl:
type: string
description: 'URL to check the final result when processing is incomplete
required: false
format: uri'
example: https://api.customeros.ai/enrich/v1/person/results/550e8400-e29b-41d4-a716-446655440000
status:
type: string
description: 'Operation status
required: true
enum: success,error,warning'
example: success
description: Response structure for person enrichment operations
restenrich.EnrichPersonPhoneNumber:
type: object
properties:
number:
type: string
description: 'Phone number in E.164 format
required: true
pattern: ^\+[1-9]\d{1,14}$'
example: '+14155552671'
type:
type: string
description: 'Type of phone number
required: true
enum: mobile,work,home,other'
example: mobile
description: Phone number with type classification
restenrich.EnrichPersonData:
type: object
properties:
emails:
type: array
description: 'List of email addresses associated with the person
required: false'
items:
$ref: '#/components/schemas/restenrich.EnrichPersonEmail'
jobs:
type: array
description: 'Employment history
required: false'
items:
$ref: '#/components/schemas/restenrich.EnrichPersonJob'
location:
type: object
description: 'Geographic location information
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonLocation'
name:
type: object
description: 'Person''s name information
required: true'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonName'
phoneNumbers:
type: array
description: 'List of phone numbers
required: false'
items:
$ref: '#/components/schemas/restenrich.EnrichPersonPhoneNumber'
profilePic:
type: string
description: 'URL to person''s profile picture
required: false
format: uri'
example: https://example.com/profile.jpg
social:
type: object
description: 'Social media presence
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonSocial'
description: Comprehensive enriched information about a person
restenrich.EnrichPersonJob:
type: object
properties:
company:
type: string
description: 'Company name
required: true'
example: Tech Corp
companyLinkedin:
type: string
description: 'Company''s LinkedIn URL
required: false
format: uri'
example: https://linkedin.com/company/techcorp
companyWebsite:
type: string
description: 'Company''s website
required: false
format: uri'
example: https://techcorp.com
duration:
type: object
description: 'Employment duration
required: true'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonJobDuration'
isCurrent:
type: boolean
description: 'Indicates if this is the current position
required: true'
example: true
seniority:
type: string
description: 'Seniority level
required: false
enum: Junior,Mid-Level,Senior,Lead,Manager,Director,VP,C-Level'
example: Senior
title:
type: string
description: 'Job title
required: true'
example: Software Engineer
description: Details about a person's job position
restenrich.EnrichPersonLinkedIn:
type: object
properties:
followerCount:
type: integer
description: 'Number of LinkedIn followers
required: false
minimum: 0'
example: 500
id:
type: string
description: 'LinkedIn internal ID
required: false'
example: '123456789'
publicId:
type: string
description: 'LinkedIn public identifier
required: false'
example: john-doe
url:
type: string
description: 'Full LinkedIn profile URL
required: false
format: uri'
example: https://linkedin.com/in/john-doe
description: LinkedIn specific profile details
rest.ErrorResponse:
type: object
properties:
message:
type: string
requestId:
type: string
example: 1234567890abcdef
status:
type: string
description: Status indicates the result of the operation ("success" or "error")
example: success
rest.BaseResponse:
type: object
properties:
requestId:
type: string
example: 1234567890abcdef
status:
type: string
description: Status indicates the result of the operation ("success" or "error")
example: success
description: Standard response structure for API operations
restenrich.EnrichPersonX:
type: object
properties:
handle:
type: string
description: 'X handle (without @)
required: true'
example: johndoe
url:
type: string
description: 'Full X profile URL
required: false
format: uri'
example: https://x.com/johndoe
description: X (formerly Twitter) profile details
restenrich.EnrichPersonJobDuration:
type: object
properties:
endMonth:
type: integer
description: 'Ending month (1-12)
required: false
minimum: 1
maximum: 12'
example: 12
endYear:
type: integer
description: 'Ending year
required: false
minimum: 1900
maximum: 2100'
example: 2023
startMonth:
type: integer
description: 'Starting month (1-12)
required: false
minimum: 1
maximum: 12'
example: 1
startYear:
type: integer
description: 'Starting year
required: false
minimum: 1900
maximum: 2100'
example: 2020
description: Time period of employment
restenrich.EnrichPersonEmail:
type: object
properties:
address:
type: string
description: 'Email address
required: true
format: email'
example: john.doe@example.com
deliverable:
type: string
description: 'Indicates if the email is deliverable
required: false'
example: 'true'
isRisky:
type: boolean
description: 'Indicates if the email is considered risky
required: false'
example: false
type:
type: string
description: 'Type of email address
required: false
enum: personal,work'
example: work
description: Email address with validation details
restenrich.EnrichPersonDiscord:
type: object
properties:
username:
type: string
description: 'Discord username with discriminator
required: true
pattern: ^.{3,32}#[0-9]{4}$'
example: johndoe#1234
description: Discord profile details
restenrich.EnrichPersonSocial:
type: object
properties:
discord:
type: object
description: 'Discord profile information
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonDiscord'
github:
type: object
description: 'GitHub profile information
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonGithub'
linkedin:
type: object
description: 'LinkedIn profile information
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonLinkedIn'
x:
type: object
description: 'X (Twitter) profile information
required: false'
allOf:
- $ref: '#/components/schemas/restenrich.EnrichPersonX'
description: Collection of social media profile information
restenrich.EnrichPersonName:
type: object
properties:
firstName:
type: string
description: 'First name
required: true
minLength: 1'
example: John
fullName:
type: string
description: 'Full name (typically firstName + lastName)
required: false'
example: John Doe
lastName:
type: string
description: 'Last name
required: true
minLength: 1'
example: Doe
description: Person's name details
securitySchemes:
ApiKeyAuth:
type: apiKey
name: X-CUSTOMER-OS-API-KEY
in: header
x-original-swagger-version: '2.0'