INTRODUCTION

Welcome to our Sales.Rocks API. The API is built to allow you quick and easy access to our services. The Sales.Rocks API is organized around REST and uses many standard HTTP features, like HTTP verbs, which can be understood by many HTTP clients.

JSON will be returned in all responses, including errors. The APIs are designed to have predictable, straightforward URLs and to use HTTP response codes to indicate API errors.

General principles

Services

You can enjoy our services with our simple Sales.Rocks API. The following services with their APIs are available:

Validation

- The Email Verifier API endpoint returns info about deliverability of a given email.

- The Phone Verifier API endpoint returns info about a given phone number, such as as phone provider, country, etc.

Search

- The Email Patterns by Domain API endpoint returns email patterns for a given domain.

- The LinkedIn Contacts by Domain API endpoint returns LinkedIn contacts for a given domain.

- The Company Email by Company LinkedIn Handle API endpoint returns company email for a given company LinkedIn URL.

- The Contact Emails by Company LinkedIn Handle API endpoint returns contact emails for a given company LinkedIn URL.

- The Contact Email by Contact LinkedIn Handle API endpoint returns contact email for a given contact LinkedIn URL.

- The Email by First Last and Company Name API endpoint returns contact emails for a given first name, last name and company name.

- The Email by First Last Name and Company Domain API endpoint returns contact emails for a given first name, last name and company domain.

- The Get List Name and Ids API endpoint returns list name and id for a given email address.

Connections

- The Email Connection API endpoint create email warmer connections.

Enrichment

- The Generate Email API endpoint generate email adresses based on first name, last name and domain.

Drip Campaign

- The Get Camapign Statistics API endpoint returns campaign statistics, like campaign name, campaign status, total sent emails, total opened emails, etc.

Email Warmer

- The Create Email Warmer API endpoint create a new email warmup process.

Editable Lists

- The Create List API endpoint create a new editable list.

- The Add To List API endpoint for adding new data into our editable lists.

- The Get Lists API endpoint for reading editable lists for the user.

- The Get List Data API endpoint or reading editable list data for the user.

- The Get Contact API endpoint for reading single contact from an editable list for the user.

- The Delete List Data API endpoint for deleting data from the editable list for the user.

- The Update List Data API endpoint create a new editable list.

Requests

Sample Request

POST https://api.sales.rocks/toolkit/emailVerifier

{
"email": "randomstring@samplesolutions.eu"
}

All methods must be called using HTTPS. Data is passed as JSON data in a POST request. In order to do a proper JSON-formatted request, make sure you provide Content-Type: application/json in HTTP request headers.

Responses

Sample Response

{
"email": "randomstring@sales.rocks",
"top_level_domain": "Yes",
"type": "Professional",
"disposable": "No",
"mx_records": [
"ASPMX3.GOOGLEMAIL.COM.",
"ASPMX2.GOOGLEMAIL.COM.",
"ALT2.ASPMX.L.GOOGLE.COM.",
"ASPMX.L.GOOGLE.COM.",
"ALT1.ASPMX.L.GOOGLE.COM."
],
"provider": "Google",
"status": "Invalid",
"format": "Ok",
"full_inbox": "Not full",
"message": "Domain does not have email service set up"
}

All data is sent and received as JSON. Each response sent from the API contains two types of responses - single object responses or collection of objects, depending on the service that you are using.

Errors

Error example:

{
"error":
{
"status_code": 400,
"message": "Invalid request body"
}
}

Sales.Rocks API use conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx range indicate an error with Stripe's servers (these are rare).

Status Codes

Common used status codes:

Status CodeResponseDescription
200OKEverything worked as expected.
400Bad RequestThe client sends some invalid data in the request, for example, missing or incorrect content in the payload or parameters. Could also represent a generic client error.
401UnauthorizedNo valid API key provided, the client is not authorized to access the requested resource.
403ForbiddenThe API key doesn't have permissions to perform the request, the client is not authenticated.
404Not FoundThe requested resource doesn't exist.
429Too Many RequestsThe client is sending more than the allowed number of requests per unit time.
500Server ErrorSomething went wrong on our end. (These are rare.)

Authentication

Intro

At Sales.Rocks, we use token-based authentication to allow our users limited access to our data. To get access to the protected resources using our APIs, OAuth 2 uses access tokens. An access token is a string representing the granted permissions. For more detailed information about OAuth 2 and token-based authentication, we recommend reading this article.

Before starting, you will need to sign up to https://app.sales.rocks/. The username and password used for creating your account will be needed later for getting the access token. If you already have account on our platform, you can skip this step.

Get access token

We are using JWT access tokens. JSON Web Token (JWT) access tokens conform to the JWT standard and contain information about an entity in the form of claims. They are self-contained therefore it is not necessary for the recipient to call a server to validate the token.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/auth/accessToken' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "randomusername",
"password": "randompassword"
}'

In order to get your access token, you need to send an HTTP POST request to the following endpoint:

MethodURL
POSThttps://api.sales.rocks/auth/accessToken

Request parameters

As an input, you need to pass JSON formatted body with the your username and password as key/value parameters.

Body example:

{
"username": "your_username_here",
"password": "your_password_here"
}
Key parameterValue parameter
usernameusername that you use to log in on the platform.
passwordpassword that you use to log in on the platform.

Response attributes

If you successfully followed all the steps, you will receive a JSON response containing the access token:

{
"access_token": "ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 3600
}
AttributeTypeDescription
access_tokenstringThe access token string as issued by the authorization server.
token_typestringThe type of token this is, typically just the string “Bearer”.
expires_instringThe lifetime in seconds of the access token. For example, the value "3600" denotes that the access token will expire in one hour from the time the response was generated.

Using the access token

These access tokens are also known as bearer tokens. You can use this token to call Sales.Rocks services, by adding it to the API request as an Authorization header.

KeyValue
AuthorizationBearer YOUR_ACCESS_TOKEN

Access tokens expire shortly (60 minutes) after they are issued for security reasons. If you need to communicate with our API beyond the access token's lifespan, you will need to request a new access token.

SERVICES

Validation

Email Verifier

Intro

Our Email Verifier API endpoint offers easy way to verify the deliverability of a given email. This API works on this principle - Domain level checks (top level domain, email type, disposable check, full inbox), followed by MX Record lookup for futher SMTP checks, thus completing the verification.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/toolkit/emailVerifier' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"email": "randomstring@sales.rocks"
}'
MethodURL
POSThttps://api.sales.rocks/toolkit/emailVerifier

Request parameters

Body example:

{
"email": "randomstring@sales.rocks"
}

As an input, our API receives a JSON object with “emails” as key parameter and a list of emails that you want to verify, as value parameter.

Key parameterValue parameter
emailEmail to be verified

Response attributes

Response example:

{
"email": "randomstring@sales.rocks",
"top_level_domain": "Yes",
"type": "Professional",
"disposable": "No",
"mx_records": [
"aspmx.l.google.com",
"alt2.aspmx.l.google.com",
"inbound-smtp.eu-west-1.amazonaws.com"
],
"provider": "Google",
"status": "Accept All",
"format": "Correct",
"full_inbox": "Not full",
"confidence_score": 56,
"confidence_description": "Risky"
}
AttributeTypeDescription
emailstringInput email address you want to verify.
top level domainstringYes/No, if the given email address is from a top level domain list or not.
typestringType of domain, can be professional or personal.
disposablestringYes/No, if the given email address is from a disposable email service.
mx_recordslistList of MX records that exist on the domain of the given email address.
providerstringEmail provider of the given email address.
statusstringValid/Invalid/Accept All
formatstringCorrect/Incorrect
full_inboxstringFull or not full, depending of the inbox status.
confidence_scoreintegerConfidence score for the given email address.
confidence_descriptionstring0-49 Invalid, 50-69 Risky, 70-79 Likely, 80-89 Valid with full inbox, 90-99 Valid.

Confidence Score further explained

ScoreResponseDescription
0-49InvalidThis email address is invalid and can not receive any incoming emails.
50-69RiskyThese emails contain a Catch-All protocol, which basically means that the email server of the domain accepts anything that is being sent to the domain. Though, this also witholds that we are unable to classify wheather the email actually exists or not.
70-79LikelyThese emails contain a Catch-All protocol, but there is additional online evidence available that the email is likely to exist.
80-89Valid with full inboxValid email adresses with a full inbox. Therefore, they are currently unable to receive any incoming emails.
90-99ValidValid email addresses that can receive incoming emails.

Phone Verifier

Intro

Our Phone Verifier API can offer easy way to parse and verify a given phone number, with additional information regarding that number, such as phone provider, country, etc. This API uses Google’s phonenumber library for parsing and validation of a given phone number. When we speak about verification, we must bear in mind the following info that is stated in Google’s phonenumber documentation:

HTTP Request

curl --location --request POST 'https://api.sales.rocks/toolkit/phoneVerifier' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"phones": ["38922037347", "3897820b4075", "78418838"]
}'
MethodURL
POSThttps://api.sales.rocks/toolkit/phoneVerifier

Request parameters

Body example:

{
"phones": [
"38922037347",
"3897820b4075",
"78418838"
]
}

As an input, our API receives a JSON object with “phones” as key parameter and a list of phone numbers that you want to verify, as value parameter.

Key parameterValue parameter
phonesList of phone numbers to be verified

Response attributes

Response example:

[
{
"input": "38922037347",
"status": "VALID",
"message": "Success",
"default": "38922037347",
"country_code": "+389",
"country_isoCode": "MK",
"local": "02 203 7347",
"international": "+389 2 203 7347",
"number_type": "Fixed Line",
"country": "Macedonia",
"location": "Skopje",
"timezone": [
"Europe/Skopje"
]
},
{
"input": "3897820b4075",
"status": "INVALID FORMAT",
"message": "The string supplied did not seem to be a phone number."
},
{
"input": "78418838",
"status": "INVALID",
"message": "The phone number entered is not valid."
}
]
AttributeTypeDescription
inputstringInput phone number you want to verify.
statusstringVALID/INVALID/INVALID FORMAT.
messagestringSuccess, if the status is VALID, or error message if the status is INVALID/INVALID FORMAT.
defaultstringDefault format of the phone number, without spaces or dashes.
country_codestringCountry code of the given phone number.
country_isoCodestringCountry ISO code of the given phone number.
localstringLocal format of the given phone number, without country code prefix.
internationalstringInternational format of the given number, with spaces/dashes and starting plus sign.
number_typestringType of the given phone number, can be one of the following: Fixed line, Mobile, Fixed line or Mobile, Toll Free, Premium Rate, Shared Cost, VOIP, Personal Number, Pager, UAN, Voicemail, Unknown
countrystringName of the country for the given phone number, based on country code.
locationstringLocation of the given phone number, can be city, state or region.
timezonelistList of timezones for the given phone number.

Search

Email Patterns by Domain

Intro

Our Email Patterns by Domain endpoint can offer easy way to search for email patterns.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/emailPatternsByDomain' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"domain": "example.com"
}'
MethodURL
POSThttps://api.sales.rocks/search/emailPatternsByDomain

Request parameters

Body example:

{
"domain": "example.com"
}

As input, our API receives JSON object with “domain” as key parameter and the domain of the company you want to search as value parameter. The domain must start with a letter or number, can be followed by letters, numbers or dashes, then a dot followed by a top level domain.

Key parameterValue parameter
domainCompany domain

Response attributes

Response example:

{
"email_patterns": [
"{first}.{last}",
"{first}"
]
}
AttributeTypeDescription
email_patternslistList of email patterns for the given domain.

LinkedIn Contacts by Domain

Intro

Our LinkedIn Contacts by Domain endpoint can offer easy way to search for LinkedIn Contacts.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/linkedinContactsByDomain' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"domain": "example.com"
}'
MethodURL
POSThttps://api.sales.rocks/search/linkedinContactsByDomain

Request parameters

Body example:

{
"domain": "example.com"
}

As input, our API receives JSON object with “domain” as key parameter and the domain of the company you want to search as value parameter. The domain must start with a letter or number, can be followed by letters, numbers or dashes, then a dot followed by a top level domain.

Key parameterValue parameter
domainCompany domain

Response attributes

Response example:

{
"contact_linkedin_handles": [
"jane-doe-12345",
"john-doe-54321",
"jane-123456789",
"john-987654321"
]
}
AttributeTypeDescription
contactlinkedinhandleslistList of contact LinkedIn handles for the given domain.

Company Email by Company LinkedIn Handle

Intro

Our Company Email by Company LinkedIn Handle endpoint can offer easy way to search for company email.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/companyEmailByCompanyLinkedinHandle' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"linkedin_handle": "example-of-linkedin-company-handle"
}'
MethodURL
POSThttps://api.sales.rocks/search/companyEmailByCompanyLinkedinHandle

Request parameters

Body example:

{
"linkedin_handle": "example-of-linkedin-company-handle"
}

As input, our API receives JSON object with “linkedin_handle” as key parameter and the LinkedIn handle of the company you want to search as value parameter.

Key parameterValue parameter
linkedin_handleCompany LinkedIn handle

Response attributes

Response example:

{
"company_email": "info@example.com"
}
AttributeTypeDescription
company_emailstringCompany email for the given company LinkedIn URL.

Contact Emails by Company LinkedIn Handle

Intro

Our Contact Emails by Company LinkedIn Handle endpoint can offer easy way to search for contact emails.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/contactEmailsByCompanyLinkedinHandle' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"linkedin_handle": "example-of-linkedin-company-handle"
}'
MethodURL
POSThttps://api.sales.rocks/search/contactEmailsByCompanyLinkedinHandle

Request parameters

Body example:

{
"linkedin_handle": "example-of-linkedin-company-handle"
}

As input, our API receives JSON object with “linkedin_handle” as key parameter and the LinkedIn handle of the company you want to search as value parameter.

Key parameterValue parameter
linkedin_handleCompany LinkedIn handle

Response attributes

Response example:

{
"contact_emails": [
"jane.doe@example.com",
"john.doe@example.com",
"jane@example.com",
"john@example.com"
]
}
AttributeTypeDescription
contact_emailslistList of contact emails for the given company LinkedIn URL.

Contact Email by Contact LinkedIn Handle

Intro

Our Contact Email by Contact LinkedIn Handle endpoint can offer easy way to search for a contact email.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/contactEmailByContactLinkedinHandle' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"linkedin_handle": "example-of-linkedin-contact-handle-12345"
}'
MethodURL
POSThttps://api.sales.rocks/search/contactEmailByContactLinkedinHandle

Request parameters

Body example:

{
"linkedin_handle": "example-of-linkedin-contact-handle-12345"
}

As input, our API receives JSON object with “linkedin_handle” as key parameter and the LinkedIn handle of the contact you want to search as value parameter.

Key parameterValue parameter
linkedin_handleContact LinkedIn handle

Response attributes

Response example:

{
"contact_email": "john.doe@example.com"
}
AttributeTypeDescription
contact_emailstringContact email for the given contact LinkedIn URL.

Email by First, Last and Company Name

Intro

Our Email by First, Last and Company Name endpoint can offer easy way to search for contact emails, with given input – first name, last name and company name.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/emailByFirstLastAndCompanyName' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"first_name": "John",
"last_name": "Doe",
"company_name": "example"
}'
MethodURL
POSThttps://api.sales.rocks/search/emailByFirstLastAndCompanyName

Request parameters

Body example:

{
"first_name": "John",
"last_name": "Doe",
"company_name": "example"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
first_nameFirst name.
last_nameLast name.
company_nameName of the company.

Response attributes

Response example:

{
"email": "johndoe@example.com",
"confidence": 75
}
AttributeTypeDescription
emailstringEmail found based on the input parameters.
confidencestringConfidence score for email that is found.

Email by First, Last name and Company Domain

Intro

Our Email by First, Last name and Company Domain endpoint can offer easy way to search for contact emails, with given input – first name, last name and company domain.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/emailByFirstLastNameAndCompanyDomain' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"first_name": "John",
"last_name": "Doe",
"company_domain": "example.com"
}'
MethodURL

POST https://api.sales.rocks/search/emailByFirstLastNameAndCompanyDomain

Request parameters

Body example:

{
"first_name": "John",
"last_name": "Doe",
"company_domain": "example.com"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
first_nameFirst name.
last_nameLast name.
company_domainDomain of the company.

Response attributes

Response example:

{
"email": "johndoe@example.com",
"confidence": 75
}
AttributeTypeDescription
emailstringEmail found based on the input parameters.
confidencestringConfidence score for email that is found.

Get List name and IDs

Intro

Our Get List name and IDs endpoint can offer easy way to search for list name and id, with given input – email address.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/search/getListNameAndIds' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"email": "example@sales.rocks"}'
MethodURL

POST https://api.sales.rocks/search/getListNameAndIds

Request parameters

Body example:

{
"email": "example@sales.rocks"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
emailEmail adress.

Response attributes

Response example:

[
{
"id": 47,
"list_name": "example-name-1",
"date_of_creation": "2021-04-09 10:00:13",
"campaigns": []
},
{
"id": 89,
"list_name": "example-name-2",
"date_of_creation": "2021-04-15 21:26:15",
"campaigns": []
},
{
"id": 90,
"list_name": "example-name-3",
"date_of_creation": "2021-04-15 21:26:29",
"campaigns": [
{
"id": 582,
"name": "example-campaign-name"
}
]
}
]
AttributeTypeDescription
idintegerList id.
list_namestringName of the list.
dateofcreationtimestampTimestamp of list creation.
campaignslistCampaigns associated with that list.

Connections

Email Connection

Intro

Our Email Connection endpoint can offer easy way to create email warmer connections.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/connections/createEmailConnection' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"sender_name":"Example",
"email":"jondoe@example.com",
"username":"jondoe@example.com",
"secret":"123",
"imap_host":"outlook.office365.com",
"imap_port":"993",
"imap_encryption":"ssl",
"smtp_host":"outlook.office365.com",
"smtp_port":"465",
"smtp_encryption":"ssl",
"permission":"company",
"receiving_email":"janedoe@example.com"
}'
MethodURL
POSThttps://api.sales.rocks/connections/createEmailConnection

Request parameters

Body example:

{
"sender_name":"Example",
"email":"jondoe@example.com",
"username":"jondoe@example.com",
"secret":"123",
"imap_host":"imap.gmail.com",
"imap_port":"993",
"imap_encryption":"ssl",
"smtp_host":"smtp.gmail.com",
"smtp_port":"465",
"smtp_encryption":"ssl",
"permission":"company",
"receiving_email":"janedoe@example.com"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
sender_nameName of the sender.
emailThe email account that you want to use for sending out emails.
usernameIdentical to “email” field: the email account that you want to use for sending your campaigns.
secretThe password for your email (there are 2 cases: with 2FA or without).
imap_hostimap_host (optional)
imap_portimap_port (optional)
imap_encryptionimap_encryption (optional)
smtp_hostsmtp_host
smtp_portsmtp_port
smtp_encryptionsmtp_encryption
permissionThe visibility of the connection, can be one of "company" or "private"
bccbcc (optional)
receiving_emailThe address that will recieve the test email

Response attributes

Response example:

{
"status": "success",
"data": {
"id": 1336,
"user_id": 1,
"type": "smtp",
"name": "Example",
"email": "jondoe@example.com",
"bcc": null,
"data": {
"username": "123@gmail.com",
"secret": "MY8u2vC6h5AmSbRZXvAgOxMc355ePgf5QqvFUTF6HIvG06floi52rXb8S96Mr7c4AB",
"permission": "company",
"host": "smtp.gmail.com",
"port": "465",
"encryption": "ssl",
"imap_host": "imap.gmail.com",
"imap_port": "993",
"imap_encryption": "ssl"
}
}
}
AttributeTypeDescription
statusstringStatus of the response.
idintegerId number of the email connection.
user_idintegerId number of the user.
typestringType of email connection.
namestringName of the sender.
emailstringThe email that you used for creating your Sales.Rocks user.
bccstringbcc (optional).
secretstringSecret.
usernamestringThe email account that you want to use for sending out emails.
permissionstringPermission.
hoststringSMTP host address.
portstringSMTP port number.
encryptionstringType of SMTP encryption.
imap_hoststringIMAP host address.
imap_portstringIMAP port number.
imap_encryptionstringType of IMAP encryption.

Enrichment

Generate Email

Intro

Our Generate Email endpoint, as the name suggests, can offer easy way to generate email address based on first name, last name and domain.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/enrichment/generateEmail' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"first_name": "John",
"last_name": "Doe",
"domain": "example.com"
}'
MethodURL
POSThttps://api.sales.rocks/enrichment/generateEmail

Request parameters

Body example:

{
"first_name": "John",
"last_name": "Doe",
"domain": "example.com"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
first_nameYour first name.
last_nameYour last name.
domainYour company domain.

Response attributes

Response example:

{
"emails": [
"john@sales.rocks",
"john.doe@sales.rocks",
"johndoe@sales.rocks",
"jdoe@sales.rocks",
"j.doe@sales.rocks",
"doe@sales.rocks"
]
}
AttributeTypeDescription
emailslistList of generated emails for the first name, last name and domain.

Drip Campaign

Get Campaign Statistics

Intro

Our Get Campaign Statistics endpoint is used for fetching the campaign statistics. Like campaign name, campaign status, total sent emails, total opened emails, etc...

HTTP Request

curl --location --request POST 'https://api.sales.rocks/drip-campaign/getCampaignStatistics' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"campaign_id": 1}'
MethodURL
POSThttps://api.sales.rocks/drip-campaign/getCampaignStatistics

Request parameters

Body example:

{
"campaign_id": 1
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
campaign_idYour campaign id.

Response attributes

Response example:

{
"status_code": 200,
"data": {
"campaign_name": "My first campaign",
"campaign_status": "inactive",
"sender_email": "example@sales.rocks",
"to_send": 0,
"sent": 6,
"total_scheduled": 6,
"opened": 4,
"clicked": 1,
"replied": 1,
"bounced": 1,
"opted_out": 0,
"campaign_created_at": "2020-07-03 14:46:10"
}
}
AttributeTypeDescription
status_codeintegerHTTP response status code.
campaign_namestringName of the campaign.
campaign_statusstringCampaign current status.
sender_emailstringSender email address.
to_sendintegerTotal number of emails scheduled to be sent.
sentintegerTotal number of sent emails.
openedintegerTotal number of opened emails from the campaign.
clickedintegerTotal number of clicked emails from the campaign.
repliedintegerTotal number of replied emails from the campaign.
bouncedintegerTotal number of bounced emails from the campaign.
opted_outintegerTotal number users that have opted out from the campaign.
campaigncreatedattimestampDate and time when the campaign was created.

Email Warmer

Create Email Warmer

Intro

Our Create Email Warmer endpoint is used for creating a new email warmup process.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/email-warmer/createEmailWarmer' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"connection_email": "johndoe@example.com",
"ramp_up_increment": 3,
"ramp_up_limit": 10,
"start_date": "2021-08-22 22:00:00",
"timezone": "America/Regina (GMT-06:00)",
"mature": true,
"stop_on_limit_reach": false,
}'
MethodURL
POSThttps://api.sales.rocks/email-warmer/createEmailWarmer

Request parameters

Body example:

{
"connection_email": "johndoe@example.com",
"ramp_up_increment": 3,
"ramp_up_limit": 10,
"start_date": "2021-08-22 22:00:00",
"timezone": "America/Regina (GMT-06:00)",
"mature": true,
"stop_on_limit_reach": false
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
connection_emailYour connection email.
rampupincrementRamp up increment.
rampuplimitRamp up limit.
start_dateStarting time for the warming process.
timezoneTimezone.
matureMature.
stoponlimit_reachStop on limit reached.

Response attributes

Response example:

{
"status_code": 200,
"data": {
"id": 3071,
"created_at": "2021-07-28 22:25:54",
"updated_at": "2021-07-28 22:25:54",
"user_ID": 634,
"connection_ID": 6205,
"ramp_up_increment": 3,
"ramp_up_limit": 10,
"stop_on_limit_reach": "0",
"start_date": "2021-08-22 22:00:00",
"scheduled_today": 0,
"timezone": "America/Regina (GMT-06:00)",
"mature": "1",
"status": "1"
}
}
AttributeTypeDescription
status_codeintegerHTTP response status code.
idintegerEmail warmup process id number.
created_attimestampTimestamp of warmap process creation.
updated_attimestampTimestamp of last update in email warmup process.
user_IDintegerId of the user.
connection_IDintegerId of the connection.
rampupincrementintegerRamp up increment.
rampuplimitintegerRamp up limit.
stoponlimit_reachstringIndicates if the email warmup process will stop after reaching ramp up limit.
start_datetimestampStarting time for the warming process.
scheduled_todayintegerNumber of scheduled emails messages for today.
timezonestringTimezone.
maturestringIndicates if the email warmup process is mature (1) or not (0).
statusstringIndicates if the email warmup process is actuve (1) or not (0).

Editable Lists

Create List

Intro

Our Create List endpoint is used for creating a new editable list.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/createList' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"list_name": "My First Editable List", "permission": "personal"}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/createList

Request parameters

Body example:

{
"list_name": "My First Editable List",
"permission": "personal"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
list_nameName of the list you want to create.
permissionType of permission.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "List created successfully.",
"list_id": "whczyk8bluyl"
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.
list_idstringId of the newly created list.

Add to List

Intro

Our Add to List endpoint is used for adding new data into our editable lists.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/addToList' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"list_id": "whczyk8bluyl",
"data": [
{
"name": "John",
"email": "johndoe@example.com"
},
{
"name": "Jane",
"email": "janedoe@example.com"
}
]
}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/addToList

Request parameters

Body example:

{
"list_id": "whczyk8bluyl",
"data": [
{
"name": "John",
"email": "johndoe@example.com"
},
{
"name": "Jane",
"email": "janedoe@example.com"
}
]
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
list_idName of the list you want to create.
dataList of objects
nameName of the contact.
emailEmail for the contact.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "Inserted 2 documents.",
"ids": [
{
"$oid": "610293b84fc684655e4eeb92"
},
{
"$oid": "610293b84fc684655e4eeb93"
}
]
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.
idslistList of ids for the newly added data info.

Get Lists

Intro

Our Get Lists endpoint is used for reading editable lists for the user.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/getLists' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"page": 2, "size": 2}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/getLists

Request parameters

Body example:

{
"page": 2,
"size": 2
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
pageWhat page you want to get. For example if the size is 5 and page is 2, it will skip the first 5 lists and return the second 5 lists (if there are any).
sizeMaximum number of lists you would like to get.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "Lists were successfully read.",
"data": [
{
"id": "26454",
"user_id": "634",
"company_id": "333",
"uuid": "3eOWdnMBeufg1eXhALxM",
"type": "editable",
"name": "List number 1",
"permissions": "private",
"created_at": "2021-05-07 10:28:26",
"updated_at": "2021-05-10 17:14:24"
},
{
"id": "26460",
"user_id": "634",
"company_id": "333",
"uuid": "OrczEHQBbJP_pSHZuNgS",
"type": "editable",
"name": "List number 2",
"permissions": "private",
"created_at": "2021-05-07 10:28:26",
"updated_at": "2021-05-10 17:14:24"
}
]
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.
idstringId of the list.
user_idstringId of the user which created this list.
company_idstringId of the company which created this list.
uuidstringuuid of the list. (Use this id for working with lists and list data)
typestringList type. (Always editable).
namestringName of the list.
permissionsstringCould be private or company. If company, everyone in the company can read this list.
created_atstringWhen was the list created.
updated_atstringLast update date time.

Get List Data

Intro

Our Get List Data endpoint is used for reading editable list data for the user.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/getListData' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"list_id": "whczyk8bluyl", "page": 1, "size": 1}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/getListData

Request parameters

Body example:

{
"list_id": "whczyk8bluyl",
"page": 1,
"size": 1
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
list_idId of the list that you want to read data from.
pageWhat page you want to get. For example if the size is 5 and page is 2, it will skip the first 5 items and return the second 5 items (if there are any).
sizeMaximum number of items you would like to get.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "List data was successfully read.",
"data": [
{
"_id": {
"$oid": "610293b84fc684655e4eeb93"
},
"name": "Campaign",
"email": "campaigntesttest01@gmail.com",
"list_id": "whczyk8bluyl"
}
]
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.
_idstringId of the contact.
list_idstringThe id of the list the contact belongs to.

Get Contact

Intro

Our Get Contact endpoint is used for reading single contact from an editable list for the user.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/getContact' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"_id": "610293b84fc684655e4eeb92"}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/getContact

Request parameters

Body example:

{
"_id": "610293b84fc684655e4eeb92"
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
_idId of the contact you want to read.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "List data was successfully read.",
"data": {
"_id": {
"$oid": "610293b84fc684655e4eeb92"
},
"name": "Nebojsha",
"email": "nebojsha@samplesolutions.eu",
"list_id": "whczyk8bluyl"
}
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.
_idstringId of the contact.
list_idstringThe id of the list the contact belon

Delete List Data

Intro

Our Delete List Data endpoint is used for deleting data from the editable list for the user.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/deleteListData' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{"ids": ["610293b84fc684655e4eeb92", "610293b84fc684655e4eeb93"]}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/deleteListData

Request parameters

Body example:

{
"ids": ["610293b84fc684655e4eeb92", "610293b84fc684655e4eeb93"]
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
idsArray of contact ids you want to delete.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "Successfully deleted 2 documents."
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.

Update List Data

Intro

Our Update List Data endpoint is used for updating contact data for the editable list.

HTTP Request

curl --location --request POST 'https://api.sales.rocks/editable-lists/updateListData' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data-raw '{
"data": [
{
"_id", "6102a248d1c6bf3bbe40f632",
"last_name", "Doe",
"age", "99"
}
]
}'
MethodURL
POSThttps://api.sales.rocks/editable-lists/updateListData

Request parameters

Body example:

{
"data": [
{
"_id": "6102a248d1c6bf3bbe40f632",
"last_name": "Mitikj",
"age": 24
}
]
}

As input, our API receives JSON object with several key and value parameters.

Key parameterValue parameter
dataList of objects that you want to update.

Response attributes

Response example:

{
"status": "success",
"status_code": 200,
"message": "1 matched and 1 modified documents."
}
AttributeTypeDescription
statusstringStatus.
status_codeintegerHTTP response status code.
messagestringInformational message explaining the status.