Seamless API (1.0.0)

Download OpenAPI specification:Download

Privacy Policy

In order to dramatically improve our offerings to customers, Seamless will be introducing a Public API which can be used to search Companies & Contacts, Enrich Lists, and offer integrations as an Endpoint for our customers.

The API is build using RESTful principles and is secured using OAuth 2.0 with the implicit grant flow.

Authentication

1. Register Your Application

Before integrating, you have to setup your client credentials.

To create a new API client, go to Seamless.AI | Settings > Public API Connections, and click the Create New Connection button.

Note: The Public API Connections menu will only appear if your account has access to the Public API.

  • client_id
  • client_secret
  • redirect_uri

You’ll use these to authenticate and obtain tokens.


2. Obtain Authorization Code

Redirect the user to Seamless.AI's OAuth authorization endpoint:

GET https://login.seamless.ai/oauth/authorize

Query Parameters:

Name Description
client_id Your client ID
redirect_uri The URL users are redirected to
state (Optional) CSRF protection string

Example URL:


GET https://login.seamless.ai/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.com/callback

Once the user authenticates, they will be redirected to your redirect_uri with a code parameter.


3. Exchange Code for Access Token

POST https://api.seamless.ai/api/client/v1/oauth/accessToken

Request Body (JSON):

{
  "client_id": "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET",
  "redirect_uri": "https://yourapp.com/callback",
  "grant_type": "authorization_code",
  "code": "AUTHORIZATION_CODE_FROM_STEP_2"
}

Response:

{
  "access_token": "ACCESS_TOKEN",
  "refresh_token": "REFRESH_TOKEN",
  "expires_at": 1712000000
}

4. Use the Access Token

For all authenticated API requests, include the token in the header:

Authorization: Bearer ACCESS_TOKEN

5. Refreshing the Token

To refresh the access token:

POST https://api.seamless.ai/api/client/v1/oauth/accessToken

Request Body:

{
  "client_Id": "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET",
  "redirect_uri": "https://yourapp.com/callback",
  "grant_type": "refresh_token",
  "refresh_token": "YOUR_REFRESH_TOKEN"
}

Rate Limiting

The limit is currently around 100 requests per 60 seconds per Endpoint. You will receive a 429 HTTP response if you exceed the rate limit.

Rate limit information will be returned in the response header of each request. The parameters are:

Name Example Description
X-RateLimit-Limit 100 The maximum number of requests you're permitted to make in a given time period.
X-RateLimit-Remaining 55 The number of requests remaining in the current rate limit window.
X-RateLimit-Reset 1745587198 The time at which the current rate limit window resets in epoch seconds.

OAuth

Get an access token

Authorizations:
OAuth2
Request Body schema: application/json
client_id
string
client_secret
string
redirect_uri
string
grant_type
required
string
Enum: "authorization_code" "refresh_token"
code
string

Required if grant_type is authorization_code

refresh_token
string

Required if grant_type is refresh_token

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "client_secret": "string",
  • "redirect_uri": "string",
  • "grant_type": "authorization_code",
  • "code": "string",
  • "refresh_token": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "expires_at": 0,
  • "refresh_token": "string"
}

Search contacts

Authorizations:
OAuth2
Request Body schema: application/json
required
page
integer
Default: 1

The page number to retrieve.

limit
integer
Default: 10

The number of contacts per page.

companyName
Array of strings <= 100 items

Contact company name search filter.

companyNameSearchType
string
Default: "default"
Enum: "default" "related" "exact"

The type of search to perform on the company name.

companyDomain
Array of strings <= 100 items

Contact company domain search filter.

contactState
Array of strings <= 10 items

Contact or Company state search filter.

contactCountry
Array of strings <= 10 items

Contact or Company country search filter.

contactZipCode
Array of strings <= 10 items

Contact or Company zipcode search filter.

locationType
string
Default: "bothOR"
Enum: "bothOR" "bothAND" "company" "contact"

You can search by contacts’ location(contact), the companies’ location(company), both Contact And company(bothAND), or both contact Or company(bothOR).

department
Array of strings <= 5 items
Items Enum: "Sales" "Marketing" "Engineering" "Human Resources" "Finance" "IT" "Engineering" "Operations" "Support" "Legal" "Project Management" "Other"

Contact department search filter.

industry
Array of strings <= 5 items

Contact industry search filter.

fullname
Array of strings <= 10 items

Contact fullname search filter.

contactKeyword
Array of strings <= 10 items

Contact keyword search filter.

jobTitle
Array of strings <= 10 items

Contact job title search filter.

seniority
Array of strings <= 5 items
Items Enum: "C-Level" "VP" "Director" "Manager" "Senior" "Entry Level" "Mid-Level" "Other"

Contact seniority search filter.

Responses

Request samples

Content type
application/json
{
  • "page": 1,
  • "limit": 10,
  • "companyName": [
    ],
  • "companyNameSearchType": "default",
  • "companyDomain": [ ],
  • "contactState": [ ],
  • "contactCountry": [ ],
  • "contactZipCode": [ ],
  • "locationType": "bothOR",
  • "department": [ ],
  • "industry": [ ],
  • "fullname": [ ],
  • "contactKeyword": [ ],
  • "jobTitle": [ ],
  • "seniority": [ ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "supplementalData": {
    }
}

Search companies

Authorizations:
OAuth2
Request Body schema: application/json
required
page
integer
Default: 1

The page number to retrieve.

limit
integer
Default: 10

The number of contacts per page.

companyName
Array of strings <= 100 items

Company name search filter.

companyNameSearchType
string
Default: "default"
Enum: "default" "related" "exact"

The type of search to perform on the company name.

companyDomain
Array of strings <= 100 items

Company domain search filter.

companyState
Array of strings <= 10 items

Company state search filter.

companyCountry
Array of strings <= 10 items

Company country search filter.

companyZipCode
Array of strings <= 10 items

Company zipcode search filter.

companyStreet
Array of strings <= 10 items

Company street search filter.

industry
Array of strings <= 5 items

Company industry search filter.

companyKeyword
Array of strings <= 10 items

Company keyword search filter.

companySize
Array of strings <= 10 items
Items Enum: "0 - 1 (Self-employed)" "2 - 10" "11 - 50" "51 - 200" "201 - 500" "501 - 1,000" "1,001 - 5,000" "5,001 - 10,000" "10,001+"

Company size search filter.

companyRevenue
Array of strings <= 10 items
Items Enum: "$0 - $100K" "$100K - $1M" "$1M - $5M" "$5M - $20M" "$20M - $50M" "$50M - $100M" "$100M - $500M" "$500M - $1B" "$1B+"

Company revenue search filter.

technologies
Array of strings <= 10 items

Company technologies search filter.

Responses

Request samples

Content type
application/json
{
  • "page": 1,
  • "limit": 10,
  • "companyName": [
    ],
  • "companyNameSearchType": "default",
  • "companyDomain": [ ],
  • "companyState": [ ],
  • "companyCountry": [ ],
  • "companyZipCode": [ ],
  • "companyStreet": [ ],
  • "industry": [ ],
  • "companyKeyword": [ ],
  • "companySize": [ ],
  • "companyRevenue": [ ],
  • "technologies": [ ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "supplementalData": {
    }
}

Contact Research

Researched Contact Webhook Webhook

Pushes the results of a company research request. To create a webhook, go to Seamless.AI | Settings > Webhooks and click the Create New Webhook button and select Contact Research as the type.

Authorizations:
webhookSecret
Request Body schema: application/json
username
string
createdAt
string
updatedAt
string
firstName
string
middleName
string
lastName
string
fullName
string
name
string
nameOriginal
string
email
string
personalEmail
string
phone
string
contactPhone1
string
contactPhone1DataType
string
contactPhone1TotalAI
string
companyPhone1
string
companyPhone1DataType
string
companyPhone1TotalAI
string
company
string
companyOriginal
string
companyIndustry
string
companyStaffCount
integer
companyStaffCountRange
string
companyAnnualRevenue
string
companyDomain
string
companyRevenueRange
string
companyLIProfileUrl
string
companyLinkedInId
string
title
string
lIProfileUrl
string
lISalesNavUrl
string
lIRecruiterUrl
string
object
object
object
website
string
email1
string
email1Count
string
email1Selected
boolean
email1TotalAI
string
email1UserAI
boolean
email1EmailAI
string
email2
string
email2Count
string
email2TotalAI
string
email2UserAI
boolean
email2EmailAI
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "fullName": "string",
  • "name": "string",
  • "nameOriginal": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "phone": "string",
  • "contactPhone1": "string",
  • "contactPhone1DataType": "string",
  • "contactPhone1TotalAI": "string",
  • "companyPhone1": "string",
  • "companyPhone1DataType": "string",
  • "companyPhone1TotalAI": "string",
  • "company": "string",
  • "companyOriginal": "string",
  • "companyIndustry": "string",
  • "companyStaffCount": 0,
  • "companyStaffCountRange": "string",
  • "companyAnnualRevenue": "string",
  • "companyDomain": "string",
  • "companyRevenueRange": "string",
  • "companyLIProfileUrl": "string",
  • "companyLinkedInId": "string",
  • "title": "string",
  • "lIProfileUrl": "string",
  • "lISalesNavUrl": "string",
  • "lIRecruiterUrl": "string",
  • "contactLocation": {
    },
  • "companyLocation": {
    },
  • "websiteUserAi": {
    },
  • "website": "string",
  • "email1": "string",
  • "email1Count": "string",
  • "email1Selected": true,
  • "email1TotalAI": "string",
  • "email1UserAI": true,
  • "email1EmailAI": "string",
  • "email2": "string",
  • "email2Count": "string",
  • "email2TotalAI": "string",
  • "email2UserAI": true,
  • "email2EmailAI": "string"
}

Research contacts

Research contacts by searchResultId from contact search results or Contact enrich

Authorizations:
OAuth2
Request Body schema: application/json
required
searchResultIds
Array of strings <= 100 items

The search result IDs to research

isJobChange
boolean
Array of objects <= 100 items

Contact enrich, must include one of the following properties:

  • contactName and companyName
  • email
  • liProfileUrl
  • liSalesNavUrl
  • liRecruiterUrl

Responses

Request samples

Content type
application/json
{
  • "searchResultIds": [
    ],
  • "isJobChange": true,
  • "contacts": [
    ]
}

Response samples

Content type
application/json
{
  • "requestIds": [
    ]
}

Poll Contact Research

Get the results/status of a contact research request

Authorizations:
OAuth2
query Parameters
requestIds
required
Array of strings [ 1 .. 100 ] items
Example: requestIds=1,2,3,4,5

The id of the research request.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Company Research

Researched Company Webhook Webhook

Pushes the results of a company research request. To create a webhook, go to Seamless.AI | Settings > Webhooks and click the Create New Webhook button and select Company Research as the type.

Authorizations:
webhookSecret
Request Body schema: application/json
advertisingIntelligenceUrl
string
alexaScoreUrl
string
annualRevenue
string
phones
string
phonesAiScores
string
createdAt
string
description
string
domain
string
employeeReviewsUrl
string
foundedOn
string
googleFinanceUrl
string
googleResearchUrl
string
industries
string
intelUrl
string
jobPostingsUrl
string
linkedInProfileUrl
string
linkedInId
string
localSportsTeamsUrl
string
localWeatherUrl
string
object
name
string
newsUrl
string
paidSearchIntelligenceUrl
string
paidSearchKeywordsIntelligenceUrl
string
revenueRange
string
searchMarketingIntelligenceUrl
string
secFilingsUrl
string
seoResearchUrl
string
sicCode
string
similarWebsitesUrl
string
socialMediaMentionsUrl
string
socialMediaPostsUrl
string
socialPostsUrl
string
staffCount
string
staffCountRange
string
topTechnologies
string
updatedAt
string
webTechnologiesUrl
string
websiteAuditUrl
string
websiteAudit2Url
string
websiteGraderUrl
string
whoisUrl
string
wikipediaUrl
string
yahooFinanceUrl
string

Responses

Request samples

Content type
application/json
{
  • "advertisingIntelligenceUrl": "string",
  • "alexaScoreUrl": "string",
  • "annualRevenue": "string",
  • "phones": "string",
  • "phonesAiScores": "string",
  • "createdAt": "2024-04-21T14:30:00.000Z",
  • "description": "string",
  • "domain": "string",
  • "employeeReviewsUrl": "string",
  • "foundedOn": "string",
  • "googleFinanceUrl": "string",
  • "googleResearchUrl": "string",
  • "industries": "string",
  • "intelUrl": "string",
  • "jobPostingsUrl": "string",
  • "linkedInProfileUrl": "string",
  • "linkedInId": "string",
  • "localSportsTeamsUrl": "string",
  • "localWeatherUrl": "string",
  • "location": {
    },
  • "name": "string",
  • "newsUrl": "string",
  • "paidSearchIntelligenceUrl": "string",
  • "paidSearchKeywordsIntelligenceUrl": "string",
  • "revenueRange": "string",
  • "searchMarketingIntelligenceUrl": "string",
  • "secFilingsUrl": "string",
  • "seoResearchUrl": "string",
  • "sicCode": "string",
  • "similarWebsitesUrl": "string",
  • "socialMediaMentionsUrl": "string",
  • "socialMediaPostsUrl": "string",
  • "socialPostsUrl": "string",
  • "staffCount": "string",
  • "staffCountRange": "string",
  • "topTechnologies": "string",
  • "updatedAt": "2024-04-21T14:30:00.000Z",
  • "webTechnologiesUrl": "string",
  • "websiteAuditUrl": "string",
  • "websiteAudit2Url": "string",
  • "websiteGraderUrl": "string",
  • "whoisUrl": "string",
  • "wikipediaUrl": "string",
  • "yahooFinanceUrl": "string"
}

Research companies

Research companies by searchResultId from company search results

Authorizations:
OAuth2
Request Body schema: application/json
required
searchResultIds
Array of strings <= 100 items
Array of objects <= 100 items

Must include one of the following properties:

  • domain
  • companyName

Responses

Request samples

Content type
application/json
{
  • "searchResultIds": [
    ],
  • "companies": [
    ]
}

Response samples

Content type
application/json
{
  • "requestIds": [
    ]
}

Poll Company Research

Get the results/status of a company research

Authorizations:
OAuth2
query Parameters
requestIds
required
Array of strings [ 1 .. 100 ] items
Example: requestIds=1,2,3,4,5

The id of the research request.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Org Contacts

Get Org Contacts

Get a list of contacts from your orgs

Authorizations:
OAuth2
query Parameters
page
integer
Default: 1
Example: page=2

The page number to retrieve.

limit
integer <= 500
Default: 500
Example: limit=100

The number of results per page.

startDate
required
string <date>
Example: startDate=2020-01-01T10:00:00Z

An ISO8601 date time string that defines the start date of the lookback period to return results from.

endDate
required
string <date>
Example: endDate=2020-01-01T11:00:00Z

An ISO8601 date time string that defines the end date of the lookback period to return results from.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Org Companies

Get Org Companies

Get a list of companies from your orgs

Authorizations:
OAuth2
query Parameters
page
integer
Default: 1
Example: page=1

The page number to retrieve.

limit
integer <= 500
Default: 500
Example: limit=100

The number of results per page.

startDate
required
string <date>
Example: startDate=2020-01-01T10:00:00Z

An ISO8601 date time string that defines the start date of the lookback period to return results from.

endDate
required
string <date>
Example: endDate=2020-01-01T11:00:00Z

An ISO8601 date time string that defines the end date of the lookback period to return results from.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}