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