Seamless.AI Contacts API
The Contacts API from Seamless.AI — 4 operation(s) for contacts.
The Contacts API from Seamless.AI — 4 operation(s) for contacts.
openapi: 3.0.3
info:
title: Seamless.AI Companies Contacts API
description: The Seamless.AI Companies API enables programmatic search and research of company data including firmographics, revenue, employee count, technology stack, and company intelligence for sales and marketing use cases.
version: 1.0.0
contact:
url: https://docs.seamless.ai/
servers:
- url: https://api.seamless.ai
description: Seamless.AI API
security:
- apiKey: []
tags:
- name: Contacts
paths:
/v1/contacts/search:
post:
operationId: searchContacts
summary: Search Contacts
description: Search for B2B contacts using criteria such as name, company, title, location, industry, and other filters. Returns paginated search results with contact identifiers that can be used for enrichment.
tags:
- Contacts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContactSearchRequest'
responses:
'200':
description: Successful contact search results
content:
application/json:
schema:
$ref: '#/components/schemas/ContactSearchResponse'
'401':
description: Unauthorized - invalid or missing API key
'429':
description: Rate limit exceeded - 60 requests per minute per endpoint
/v1/contacts/research:
post:
operationId: researchContact
summary: Research Contact
description: Research a specific contact using a search result ID from /contacts/search or a direct contact identifier. Returns full contact data including verified email addresses, phone numbers, job history, and social profiles.
tags:
- Contacts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContactResearchRequest'
responses:
'200':
description: Full contact research data
content:
application/json:
schema:
$ref: '#/components/schemas/ContactRecord'
'401':
description: Unauthorized
'429':
description: Rate limit exceeded
/v1/contacts/enrich:
post:
operationId: enrichContact
summary: Enrich Contact
description: Enrich an existing contact record with updated or missing fields. Provide known contact identifiers and receive back verified emails, direct dials, mobile numbers, job titles, and company information.
tags:
- Contacts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContactEnrichRequest'
responses:
'200':
description: Enriched contact data
content:
application/json:
schema:
$ref: '#/components/schemas/ContactRecord'
'401':
description: Unauthorized
'429':
description: Rate limit exceeded
/v1/contacts/job-changes:
get:
operationId: listContactJobChanges
summary: List Contact Job Changes
description: Retrieve contacts that have recently changed jobs within your contact database. Returns job-change intelligence including previous and current roles to help identify warm outreach opportunities.
tags:
- Contacts
parameters:
- name: page
in: query
description: Page number for paginated results
schema:
type: integer
default: 1
- name: per_page
in: query
description: Number of results per page (max 100)
schema:
type: integer
default: 25
maximum: 100
- name: days
in: query
description: Number of days to look back for job changes
schema:
type: integer
default: 30
responses:
'200':
description: List of contacts with recent job changes
content:
application/json:
schema:
$ref: '#/components/schemas/JobChangesResponse'
'401':
description: Unauthorized
'429':
description: Rate limit exceeded
components:
schemas:
ContactRecord:
type: object
properties:
id:
type: string
description: Unique contact identifier
name:
type: string
description: Full name
firstName:
type: string
lastName:
type: string
title:
type: string
description: Current job title
company:
type: string
description: Current employer name
emails:
type: array
items:
type: object
properties:
email:
type: string
type:
type: string
enum:
- work
- personal
verified:
type: boolean
phones:
type: array
items:
type: object
properties:
number:
type: string
type:
type: string
enum:
- direct
- mobile
- office
location:
type: string
linkedinUrl:
type: string
jobHistory:
type: array
items:
type: object
properties:
company:
type: string
title:
type: string
startDate:
type: string
endDate:
type: string
ContactSearchRequest:
type: object
properties:
name:
type: string
description: Contact full name or partial name
company:
type: string
description: Company name to filter contacts
title:
type: string
description: Job title or keyword
location:
type: string
description: City, state, or country
industry:
type: string
description: Industry vertical
page:
type: integer
default: 1
description: Page number for pagination
per_page:
type: integer
default: 25
maximum: 100
description: Results per page
ContactResearchRequest:
type: object
properties:
searchResultId:
type: string
description: Search result ID from /contacts/search
email:
type: string
description: Known email address for lookup
linkedinUrl:
type: string
description: LinkedIn profile URL
ContactSearchResult:
type: object
properties:
searchResultId:
type: string
description: Unique identifier for use in research/enrichment calls
name:
type: string
description: Contact full name
company:
type: string
description: Current employer
title:
type: string
description: Current job title
location:
type: string
description: Geographic location
PaginationMeta:
type: object
properties:
page:
type: integer
per_page:
type: integer
total:
type: integer
total_pages:
type: integer
JobChangesResponse:
type: object
properties:
data:
type: array
items:
type: object
properties:
contactId:
type: string
name:
type: string
previousCompany:
type: string
previousTitle:
type: string
currentCompany:
type: string
currentTitle:
type: string
changeDate:
type: string
format: date
meta:
$ref: '#/components/schemas/PaginationMeta'
ContactSearchResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContactSearchResult'
meta:
$ref: '#/components/schemas/PaginationMeta'
supplementalData:
type: object
properties:
nextToken:
type: string
description: Token for next page of results
ContactEnrichRequest:
type: object
properties:
email:
type: string
description: Email address to enrich
name:
type: string
description: Contact full name
company:
type: string
description: Company name
linkedinUrl:
type: string
description: LinkedIn profile URL
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
description: API key in the format "Bearer {api_key}"