Snov.io Domain Search API
Search for company information and email addresses by domain
Search for company information and email addresses by domain
openapi: 3.0.3
info:
title: Snov.io Authentication Domain Search API
description: Snov.io is a sales automation and lead generation platform. The REST API enables programmatic access to email finding, domain search, email verification, drip campaign management, email warm-up, prospect management, CRM pipeline, and webhook subscriptions. Authentication uses OAuth 2.0 client credentials to obtain short-lived Bearer tokens. All API operations consume credits from the account balance.
version: '2.0'
contact:
name: Snov.io Support
url: https://snov.io/knowledgebase/
termsOfService: https://snov.io/terms-of-service/
license:
name: Proprietary
url: https://snov.io/terms-of-service/
servers:
- url: https://api.snov.io
description: Snov.io API server
tags:
- name: Domain Search
description: Search for company information and email addresses by domain
paths:
/v2/domain-search/start:
post:
tags:
- Domain Search
summary: Start domain search
description: Initiate an async domain search. Returns a task_hash to retrieve results. Costs 1 credit per unique domain request.
operationId: startDomainSearch
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
description: Company domain name to search
example: example.com
responses:
'200':
description: Task started
content:
application/json:
schema:
$ref: '#/components/schemas/TaskStarted'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/result/{task_hash}:
get:
tags:
- Domain Search
summary: Get domain search results
description: Retrieve results of a previously started domain search task.
operationId: getDomainSearchResult
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/TaskHash'
responses:
'200':
description: Domain search results
content:
application/json:
schema:
$ref: '#/components/schemas/DomainSearchResult'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v2/domain-search/prospects/start:
post:
tags:
- Domain Search
summary: Start domain prospect search
description: Initiate an async search for prospect profiles associated with a domain.
operationId: startDomainProspectSearch
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
example: example.com
positions:
type: array
items:
type: string
description: Filter by job positions
example:
- CEO
- CTO
page:
type: integer
description: Page number for pagination
default: 1
responses:
'200':
description: Task started
content:
application/json:
schema:
$ref: '#/components/schemas/TaskStarted'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/prospects/result/{task_hash}:
get:
tags:
- Domain Search
summary: Get domain prospect search results
operationId: getDomainProspectSearchResult
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/TaskHash'
responses:
'200':
description: Prospect search results
content:
application/json:
schema:
$ref: '#/components/schemas/ProspectListResult'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/domain-emails/start:
post:
tags:
- Domain Search
summary: Start domain emails search
description: Initiate an async search for all email addresses associated with a domain.
operationId: startDomainEmailsSearch
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
example: example.com
responses:
'200':
description: Task started
content:
application/json:
schema:
$ref: '#/components/schemas/TaskStarted'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/domain-emails/result/{task_hash}:
get:
tags:
- Domain Search
summary: Get domain emails search results
operationId: getDomainEmailsSearchResult
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/TaskHash'
responses:
'200':
description: Domain emails results
content:
application/json:
schema:
$ref: '#/components/schemas/EmailListResult'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/generic-contacts/start:
post:
tags:
- Domain Search
summary: Start generic contacts search
description: Initiate an async search for generic company contact addresses (e.g. info@, support@).
operationId: startGenericContactsSearch
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
example: example.com
responses:
'200':
description: Task started
content:
application/json:
schema:
$ref: '#/components/schemas/TaskStarted'
'401':
$ref: '#/components/responses/Unauthorized'
/v2/domain-search/generic-contacts/result/{task_hash}:
get:
tags:
- Domain Search
summary: Get generic contacts search results
operationId: getGenericContactsSearchResult
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/TaskHash'
responses:
'200':
description: Generic contacts results
content:
application/json:
schema:
$ref: '#/components/schemas/EmailListResult'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/get-domain-emails-count:
post:
tags:
- Domain Search
summary: Check available emails count (free)
description: Returns the count of available email addresses for a domain. Free endpoint.
operationId: getDomainEmailsCount
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
example: example.com
responses:
'200':
description: Email count for domain
content:
application/json:
schema:
type: object
properties:
domain:
type: string
result:
type: integer
description: Number of available emails
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
EmailListResult:
type: object
properties:
status:
type: string
data:
type: array
items:
type: object
properties:
email:
type: string
format: email
first_name:
type: string
last_name:
type: string
position:
type: string
confidence:
type: integer
DomainSearchResult:
type: object
properties:
status:
type: string
data:
type: object
properties:
domain:
type: string
company_name:
type: string
industry:
type: string
size:
type: string
prospect_count:
type: integer
email_count:
type: integer
related_domains:
type: array
items:
type: string
TaskStarted:
type: object
properties:
task_hash:
type: string
description: Unique identifier for the async task; use to poll for results
status:
type: string
description: Current task status
ProspectListResult:
type: object
properties:
status:
type: string
data:
type: array
items:
$ref: '#/components/schemas/ProspectProfile'
Error:
type: object
properties:
error:
type: string
description: Error code
message:
type: string
description: Human-readable error message
ProspectProfile:
type: object
properties:
id:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
format: email
position:
type: string
company:
type: string
location:
type: string
industry:
type: string
social:
type: object
properties:
linkedin:
type: string
format: uri
twitter:
type: string
format: uri
job_history:
type: array
items:
type: object
properties:
title:
type: string
company:
type: string
start_date:
type: string
end_date:
type: string
responses:
Unauthorized:
description: Unauthorized — missing or invalid Bearer token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
TaskHash:
name: task_hash
in: path
required: true
schema:
type: string
description: Task hash returned from the corresponding start endpoint
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Obtain a Bearer token via POST /v1/oauth/access_token using client credentials. Tokens expire after 3600 seconds.