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
{"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 Code | Response | Description |
---|---|---|
200 | OK | Everything worked as expected. |
400 | Bad Request | The 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. |
401 | Unauthorized | No valid API key provided, the client is not authorized to access the requested resource. |
403 | Forbidden | The API key doesn't have permissions to perform the request, the client is not authenticated. |
404 | Not Found | The requested resource doesn't exist. |
429 | Too Many Requests | The client is sending more than the allowed number of requests per unit time. |
500 | Server Error | Something 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:
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
username | username that you use to log in on the platform. |
password | password 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}
Attribute | Type | Description |
---|---|---|
access_token | string | The access token string as issued by the authorization server. |
token_type | string | The type of token this is, typically just the string “Bearer”. |
expires_in | string | The 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.
Key | Value |
---|---|
Authorization | Bearer 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
Email 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"}
Attribute | Type | Description |
---|---|---|
string | Input email address you want to verify. | |
top level domain | string | Yes/No, if the given email address is from a top level domain list or not. |
type | string | Type of domain, can be professional or personal. |
disposable | string | Yes/No, if the given email address is from a disposable email service. |
mx_records | list | List of MX records that exist on the domain of the given email address. |
provider | string | Email provider of the given email address. |
status | string | Valid/Invalid/Accept All |
format | string | Correct/Incorrect |
full_inbox | string | Full or not full, depending of the inbox status. |
confidence_score | integer | Confidence score for the given email address. |
confidence_description | string | 0-49 Invalid, 50-69 Risky, 70-79 Likely, 80-89 Valid with full inbox, 90-99 Valid. |
Confidence Score further explained
Score | Response | Description |
---|---|---|
0-49 | Invalid | This email address is invalid and can not receive any incoming emails. |
50-69 | Risky | These 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-79 | Likely | These emails contain a Catch-All protocol, but there is additional online evidence available that the email is likely to exist. |
80-89 | Valid with full inbox | Valid email adresses with a full inbox. Therefore, they are currently unable to receive any incoming emails. |
90-99 | Valid | Valid 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"]}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
phones | List 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."}]
Attribute | Type | Description |
---|---|---|
input | string | Input phone number you want to verify. |
status | string | VALID/INVALID/INVALID FORMAT. |
message | string | Success, if the status is VALID, or error message if the status is INVALID/INVALID FORMAT. |
default | string | Default format of the phone number, without spaces or dashes. |
country_code | string | Country code of the given phone number. |
country_isoCode | string | Country ISO code of the given phone number. |
local | string | Local format of the given phone number, without country code prefix. |
international | string | International format of the given number, with spaces/dashes and starting plus sign. |
number_type | string | Type 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 |
country | string | Name of the country for the given phone number, based on country code. |
location | string | Location of the given phone number, can be city, state or region. |
timezone | list | List 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
domain | Company domain |
Response attributes
Response example:
{"email_patterns": ["{first}.{last}","{first}"]}
Attribute | Type | Description |
---|---|---|
email_patterns | list | List 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
domain | Company domain |
Response attributes
Response example:
{"contact_linkedin_handles": ["jane-doe-12345","john-doe-54321","jane-123456789","john-987654321"]}
Attribute | Type | Description |
---|---|---|
contactlinkedinhandles | list | List 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
linkedin_handle | Company LinkedIn handle |
Response attributes
Response example:
{"company_email": "info@example.com"}
Attribute | Type | Description |
---|---|---|
company_email | string | Company 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
linkedin_handle | Company LinkedIn handle |
Response attributes
Response example:
{"contact_emails": ["jane.doe@example.com","john.doe@example.com","jane@example.com","john@example.com"]}
Attribute | Type | Description |
---|---|---|
contact_emails | list | List 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
linkedin_handle | Contact LinkedIn handle |
Response attributes
Response example:
{"contact_email": "john.doe@example.com"}
Attribute | Type | Description |
---|---|---|
contact_email | string | Contact 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
first_name | First name. |
last_name | Last name. |
company_name | Name of the company. |
Response attributes
Response example:
{"email": "johndoe@example.com","confidence": 75}
Attribute | Type | Description |
---|---|---|
string | Email found based on the input parameters. | |
confidence | string | Confidence 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"}'
Method | URL |
---|
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 parameter | Value parameter |
---|---|
first_name | First name. |
last_name | Last name. |
company_domain | Domain of the company. |
Response attributes
Response example:
{"email": "johndoe@example.com","confidence": 75}
Attribute | Type | Description |
---|---|---|
string | Email found based on the input parameters. | |
confidence | string | Confidence 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"}'
Method | URL |
---|
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 parameter | Value parameter |
---|---|
Email 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"}]}]
Attribute | Type | Description |
---|---|---|
id | integer | List id. |
list_name | string | Name of the list. |
dateofcreation | timestamp | Timestamp of list creation. |
campaigns | list | Campaigns 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
sender_name | Name of the sender. |
The email account that you want to use for sending out emails. | |
username | Identical to “email” field: the email account that you want to use for sending your campaigns. |
secret | The password for your email (there are 2 cases: with 2FA or without). |
imap_host | imap_host (optional) |
imap_port | imap_port (optional) |
imap_encryption | imap_encryption (optional) |
smtp_host | smtp_host |
smtp_port | smtp_port |
smtp_encryption | smtp_encryption |
permission | The visibility of the connection, can be one of "company" or "private" |
bcc | bcc (optional) |
receiving_email | The 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"}}}
Attribute | Type | Description |
---|---|---|
status | string | Status of the response. |
id | integer | Id number of the email connection. |
user_id | integer | Id number of the user. |
type | string | Type of email connection. |
name | string | Name of the sender. |
string | The email that you used for creating your Sales.Rocks user. | |
bcc | string | bcc (optional). |
secret | string | Secret. |
username | string | The email account that you want to use for sending out emails. |
permission | string | Permission. |
host | string | SMTP host address. |
port | string | SMTP port number. |
encryption | string | Type of SMTP encryption. |
imap_host | string | IMAP host address. |
imap_port | string | IMAP port number. |
imap_encryption | string | Type 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
first_name | Your first name. |
last_name | Your last name. |
domain | Your 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"]}
Attribute | Type | Description |
---|---|---|
emails | list | List 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}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
campaign_id | Your 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"}}
Attribute | Type | Description |
---|---|---|
status_code | integer | HTTP response status code. |
campaign_name | string | Name of the campaign. |
campaign_status | string | Campaign current status. |
sender_email | string | Sender email address. |
to_send | integer | Total number of emails scheduled to be sent. |
sent | integer | Total number of sent emails. |
opened | integer | Total number of opened emails from the campaign. |
clicked | integer | Total number of clicked emails from the campaign. |
replied | integer | Total number of replied emails from the campaign. |
bounced | integer | Total number of bounced emails from the campaign. |
opted_out | integer | Total number users that have opted out from the campaign. |
campaigncreatedat | timestamp | Date 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,}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
connection_email | Your connection email. |
rampupincrement | Ramp up increment. |
rampuplimit | Ramp up limit. |
start_date | Starting time for the warming process. |
timezone | Timezone. |
mature | Mature. |
stoponlimit_reach | Stop 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"}}
Attribute | Type | Description |
---|---|---|
status_code | integer | HTTP response status code. |
id | integer | Email warmup process id number. |
created_at | timestamp | Timestamp of warmap process creation. |
updated_at | timestamp | Timestamp of last update in email warmup process. |
user_ID | integer | Id of the user. |
connection_ID | integer | Id of the connection. |
rampupincrement | integer | Ramp up increment. |
rampuplimit | integer | Ramp up limit. |
stoponlimit_reach | string | Indicates if the email warmup process will stop after reaching ramp up limit. |
start_date | timestamp | Starting time for the warming process. |
scheduled_today | integer | Number of scheduled emails messages for today. |
timezone | string | Timezone. |
mature | string | Indicates if the email warmup process is mature (1) or not (0). |
status | string | Indicates 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
list_name | Name of the list you want to create. |
permission | Type of permission. |
Response attributes
Response example:
{"status": "success","status_code": 200,"message": "List created successfully.","list_id": "whczyk8bluyl"}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |
list_id | string | Id 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"}]}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
list_id | Name of the list you want to create. |
data | List of objects |
name | Name of the contact. |
Email for the contact. |
Response attributes
Response example:
{"status": "success","status_code": 200,"message": "Inserted 2 documents.","ids": [{"$oid": "610293b84fc684655e4eeb92"},{"$oid": "610293b84fc684655e4eeb93"}]}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |
ids | list | List 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}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
page | What 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). |
size | Maximum 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"}]}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |
id | string | Id of the list. |
user_id | string | Id of the user which created this list. |
company_id | string | Id of the company which created this list. |
uuid | string | uuid of the list. (Use this id for working with lists and list data) |
type | string | List type. (Always editable). |
name | string | Name of the list. |
permissions | string | Could be private or company. If company, everyone in the company can read this list. |
created_at | string | When was the list created. |
updated_at | string | Last 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}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
list_id | Id of the list that you want to read data from. |
page | What 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). |
size | Maximum 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"}]}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |
_id | string | Id of the contact. |
list_id | string | The 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"}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
_id | Id 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"}}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |
_id | string | Id of the contact. |
list_id | string | The 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"]}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
ids | Array of contact ids you want to delete. |
Response attributes
Response example:
{"status": "success","status_code": 200,"message": "Successfully deleted 2 documents."}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational 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"}]}'
Method | URL |
---|---|
POST | https://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 parameter | Value parameter |
---|---|
data | List of objects that you want to update. |
Response attributes
Response example:
{"status": "success","status_code": 200,"message": "1 matched and 1 modified documents."}
Attribute | Type | Description |
---|---|---|
status | string | Status. |
status_code | integer | HTTP response status code. |
message | string | Informational message explaining the status. |