Getting Started
Welcome to the Just Deliver It API 2.2 Documentation.
Unlike many other platforms on the market, getting started with our API is simple. All you'll need to get started:
To the right is our quick getting started documentation.
Note: The API is only available to those who have purchased a license.
Campaign Functions
The Campaigns functions are designed to let you create, view and manipulate campains.
URL: https://api.22.rvmpro.com/campaigns
Endpoints: Create, Overview, List, Channels, Start, Pause, Stop
Create Endpoint
Creates a campaign that performs voicemail drops to supplied phone numbers.
Fields: (All Fields are expected to be lower case)
Note: If the field is left empty, then default value will be used.
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right corner, select "Admin" > "Tools" > "API".
There you will find your token and whielisted IP address.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Create Endpoint it must be “create”
For other endpoints, scroll down to their respective sections
Example: create
c_name - Required
A name for the campaign that is being created. Must be between 3 and 25 characters in length and contain no special characters, except for spaces.
Example: My Cool Campaign
c_callback - Required
A 10-13 digit phone number (not counting special characters) that will show up on target phones when the call is dropped. Can be set to this number or “Unknown”. Also, this number will not be called if it is included in c_numbers.
Example: 555-555-5555
c_wav - Required
A valid URL to an audio file that will be played as a voicemail on the targeted phones. We prefer wav audio files but can accept MP3s and MP4s though there tends to be a higher error rate with these formats.
Example: https://myMediaServer.com/audioFiles/myVMDrop.wav
c_numbers - Required
A comma separated list of 10 – 13 digit phone numbers (not including special characters) that will be targeted for voicemail drops. The voicemails can only be dropped on mobile phones.
Example: 555555555,202-555-0155,1(202)555-0150
c_start - Required
A true or false value indicating if you would like to activate your campaign as soon as it created. When set to “true” the campaign status will be set to “ACTIVE” and will start dropping voicemails as soon as possible. Otherwise the campaign status will be set to “PAUSED” and will await activation.
Default: false
c_start_time
A time code that uses the 24-hour clock (HH:MM) that specifies what time the campaign will start. Start time should be based on the campaigns local time zone, not GMT. This value cannot be set to a time that occurs after the c_stop_time.
Default: "08:00"
c_stop_time
A time code that uses the 24-hour clock (HH:MM) that specifies what time the campaign will stop. This value cannot be set to a time that occurs before the c_start_time.
Default: "20:00"
c_start_date
The date the campaign is set to begin. This field takes input in “YYYY-MM-DD” format. Defaults to current date if one is not provided.
Example: 2018-10-25
Default: current date
c_stop_date
The date the campaign is set to end. This field takes input in “YYYY-MM-DD” format. Defaults to 7 days after c_start_date if one is not provided. This date cannot be before c_start_date and cannot be set in the past.
Example: 2018-11-02
Default: c_start_date +7 days
c_run_days
A comma separated list of numerical values between 0 and 6 that identify the days of the week that a campaign will be run on. (0 – Sunday, 1 – Monday, 2 – Tuesday, 3 – Wednesday, 4 – Thursday, 5 – Friday, 6 – Saturday)
For single day campaigns set c_end_date to the same day as c_start_date and leave c_run_days blank.
Default: "0,1,2,3,4,5,6"
c_throttle
Campaign throttle will set how many drops a campaign will try to make in an hour. Base maximum throttle is 18,000 contact sales@justdeliverit.com to adjust maximum throttle.
Default: 600
c_timezone
This field specifies the local time zone for your campaign to run in. We use the timezones as dictated by the zoneinfo data maintained by ICANN. For a full list of these time zones follow this link: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Default: America/New_York
c_state_check
A true or false field. When set to true you acknowledge that you have permission to drop voicemails on phones in states that require it (At the time of writing only Florida). If c_state_check is false, then the system will automatically filter out states that require consent.
Default: true
c_performance
A true or false field. When set to true the campaign will filter out numbers on our in house do not call list.
Default: false
c_debug
A true or false field that is included as a testing feature. When set to true the endpoint will validate all data that has been passed in, but not create a campaign. On a successful response the response will return an object with a c_campaign_id of 0000000000
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_status
The status of the new campaign. Can be “PAUSED”, indicating that the campaign is awaiting to be started, or “ACTIVE”, indicating that the campaign is currently running and is attempting to drop voicemails.
c_campaign_id
A unique identifier for your newly created campaign. This is used as a reference number in other endpoints.
c_timestamp
A time stamp that shows when the last action on the campaign has been performed, in this case when it was created.
c_wireless
The number of wireless phone numbers found in c_numbers.
c_landlines
The number of landline phone numbers found in c_numbers. We do not attempt to drop voicemails on landlines, as such these numbers will not appear in any reports or searches.
c_duplicates
The number of duplicate phone numbers found in c_numbers. A campaign will not attempt to drop a voicemail on a phone number more than once. To send multiple voicemail drops to a single number you will have to create multiple campaigns that attempts to drop on that number.
c_invalid
The number of invalid phone numbers that were found in c_numbers during the first round of filtering. Numbers that are filtered at this point will not appear in any reports or searches.
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Create Campaign (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'create',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_name' => 'My Cool Campaign',
'c_callback' => '5555555555',
'c_numbers' => '2025550155,12025550150',
'c_wav' => 'http://myMediaServer.com/audioFiles/myVMDrop.wav',
'c_start' => 'true',
'c_start_time' => '08:00',
'c_stop_time' => '20:00',
'c_start_date' => '2018-11-06',
'c_stop_date' => '2018-11-13',
'c_run_days' => '0,1,2,3,4,5,6',
'c_throttle' => '600',
'c_timezone' => 'America/New_York',
'c_performance' => false,
'c_state_check' => true,
'c_debug' => false
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Create Campaign (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Create Endpoint";
var $campaign = {
api: "create",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_name: "myCoolCampaign",
c_callback: "5555555555",
c_numbers: "2025550155,12025550150",
c_wav: "http://myMediaServer.com/audioFiles/myVMDrop.wav",
c_start: "true",
c_start_time: "08:00",
c_stop_time: "20:20",
c_start_date: "2018-11-06",
c_stop_date: "2018-11-13",
c_run_days: "0,1,2,3,4,5,6",
c_throttle: "600",
c_timezone: "America/New_York”,
c_performance: "false",
c_state_check: "true",
c_debug: "false",
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_status": "ACTIVE",
"c_campaign_id": "1234567890",
"c_timestamp": "2018-10-18 18:47:27",
"c_start": "true",
"c_name": "My Cool Campaign",
"c_callback": "5555555555",
"c_wav": "myVMDrop.wav",
"c_start_date": "2018-10-21 00:00:00",
"c_stop_date": "2018-10-25 23:59:59",
"c_start_time": "08:00",
"c_stop_time": "20:00",
"c_run_days": "0,1,2,3,4,5,6",
"c_timezone": "America/New_York",
"c_throttle": "600",
"c_performance": "false",
"c_state_check": "true",
"c_wireless": 1,
"c_landlines": 0,
"c_duplicates": 0,
"c_invalid": 0
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
List Endpoint
The List endpoint returns a list of all active and paused campaigns
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right corner, select "Admin" > "Tools" > "API".
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the List Endpoint it must be “list”
Example: list
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_rows
The number of campaigns that were found by the list request.
data
An array of JSON objects that contain settings for each campaign that was found in a paused or active status, that contain the following data:
c_campaign_id
A unique identifier for your campaign. This is used as a reference number in other endpoints.
c_name
The name of the campaign that was found.
c_wav
The name of the wave file that was found at the url that was provided.
c_callback
The callback number that was supplied minus any special formatting.
c_status
The status of the campaign. Can be “PAUSED”, indicating that the campaign is awaiting to be started, or “ACTIVE”, indicating that the campaign is currently running and is attempting to drop voicemails.
c_timestamp
The date and time of the last action that was performed on the campaign, whether that action was creating the campaign or changing its status.
c_start_date
The date that was input for c_start_date or the one that was selected by default.
c_stop_date
The date that was input for c_stop_date or the one that was selected by default.
c_start_time
The time that was input for c_start_time or the one that was selected by default.
c_stop_time
The time that was input for c_stop_time or the one that was selected by default.
c_run_days
The run days that was input for c_run_days or the days that were selected by default.
c_timezone
The time zone that was input for c_timezone or the one that was selected by default.
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign List (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'list',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign List (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "List Endpoint";
var $campaign = {
api: "list",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_rows": 311,
"data": [
{
"c_campaign_id": 0000000001,
"c_name": "Test Campaign1",
"c_wav": "Test.wav",
"c_callback": "5555555555",
"c_status": "ACTIVE",
"c_timestamp": "2018-10-19 17:35:21",
"c_throttle": 600,
"c_start_date": "2018-10-21 00:00:00",
"c_stop_date": "2018-10-25 23:59:59",
"c_start_time": "08:00:00",
"c_stop_time": "20:00:00",
"c_run_days": "0,1,2,3,4,5,6",
"c_timezonea": "America/New_York"
},
{
"c_campaign_id": 0000000002,
"c_name": "Test Campaign2",
"c_wav": "Other_Test.wav",
"c_callback": "2025550155",
"c_status": "PAUSED",
"c_timestamp": "2018-10-17 18:47:27",
"c_throttle": 600,
"c_start_date": "2018-10-21 00:00:00",
"c_stop_date": "2018-10-25 23:59:59",
"c_start_time": "08:00:00",
"c_stop_time": "20:00:00",
"c_run_days": "0,1,2,3,4,5,6",
"c_timezonea": "America/New_York"
},
...
]
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Overview Endpoint
The Overview endpoint returns all the current settings of a campaign as well as a summary of the campaigns progress. Can be used for any paused, active, stopped or completed campaign.
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the List Endpoint it must be “list”
Example: list
c_campaign_id - Required
The identification number of the campaign you wish to view.
Example: 0000000001
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_status
The status of the campaign. Can be “PAUSED”, indicating that the campaign is awaiting to be started, “ACTIVE”, indicating that the campaign is currently running and is attempting to drop voicemails, “STOPPED” indicating that the campaign has been manually halted and canceled, or “COMPLETED” indicating that the campaign has attempted to drop a voicemail at all the provided numbers and is now finished.
c_campaign_id
A unique identifier for your campaign. This is used as a reference number in other endpoints.
c_timestamp
A time stamp that shows when the last action on the campaign has been performed, in this case when it was created.
c_name
The name of the campaign that was found.
c_callback
The callback number that was supplied minus any special formatting.
c_wav
The name of the wav file that was found at the url that was provided.
c_start_date
The date that was input for c_start_date or the one that was selected by default.
c_stop_date
The date that was input for c_stop_date or the one that was selected by default.
c_start_time
The time that was input for c_start_time or the one that was selected by default.
c_stop_time
The time that was input for c_stop_time or the one that was selected by default.
c_run_days
The run days that was input for c_run_days or the days that were selected by default.
c_timezone
The time zone that was input for c_timezone or the one that was selected by default.
c_throttle
Campaign throttle will set how many drops a campaign will try to make in an hour. Base maximum throttle is 18,000 contact sales@justdeliverit.com to adjust maximum throttle.
c_failed
The amount of voicemails that could not be dropped successfully.
c_delivered
The amount of voicemails that were dropped successfully.
c_filtered
The amount of voicemails that were filtered out because they were found to be on the do not call list or because you did not have permission to drop a number in that state.
c_hopper
The number of voicemail drops remaining before the campaign is completed.
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign Overview (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'overview',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_campaign_id' => '0000000001'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign Overview (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Overview Endpoint";
var $campaign = {
api: "overview",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_campaign_id: "0000000001"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_status": "ACTIVE",
"c_campaign_ID": "0000000001",
"c_timestampe": "2018-10-19 17:35:21",
"c_name": "Test Campaign1",
"c_callback": "5555555555",
"c_wav": "Test.wav",
"c_start_date": "2018-10-21 00:00:00",
"c_stop_date": "2018-10-25 23:59:59",
"c_start_time": "08:00:00",
"c_stop_time": "20:00:00",
"c_run_days": "0,1,2,3,4,5,6",
"c_timezone": "America/New_York",
"c_throttle": 600,
"c_failed": 23,
"c_filtered": 7,
"c_hopper": 86,
"c_max_throttle": 162000,
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Channels Endpoint
The Channels endpoint will display the current real time count of any message deliveries currently in progress.
Fields: (All fields are expected to be lower case)
toke - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Channels Endpoint it must be “channels”
Example: channels
c_campaign_id - Required
The identification number of the campaign you wish to view.
Example: 0000000001
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_campaign_id
A unique identifier for your campaign. This is used as a reference number in other endpoints.
c_channels
The count of any message deliveries currently in progress
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign Channels (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'channels',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_campaign_id' => '0000000001'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign Channels (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Channels Endpoint";
var $campaign = {
api: "channels",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_campaign_id: "0000000001"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_campaign_id": "0000000001",
"c_channels": 65
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Start Endpoint
The Start endpoint sets a paused campaign status to active. You cannot start a campaign that has been stopped or completed.
Fields: (All fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Start Endpoint it must be “start”
Example: start
c_campaign_id - Required
The indentification number of the campaign you wish to start.
Example: 0000000001
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_campaign_id
The unique identifier for the campaign that has been started.
Example: 0000000001
c_status
The new status of the campaign you started. It should be “ACTIVE” if you just started.
Example: "ACTIVE"
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign Start (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'start',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_campaign_id' => '0000000001'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign Start (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Start Endpoint";
var $campaign = {
api: "start",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_campaign_id: "0000000001"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_campaign_id": "0000000001",
"c_status": "ACTIVE"
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Pause Endpoint
The Pause endpoint sets an active campaign status paused. You can only pause an active campaign.
Fields: (All fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Pause Endpoint it must be “pause”
Example: pause
c_campaign_id - Required
The identification number of the campaign you wish to pause.
Example: 0000000001
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_campaign_id
The unique identifier for the campaign that has been paused.
Example: 0000000001
c_status
The new status of the campaign you paused. It should be “PAUSED” if you just paused.
Example: "PAUSED"
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign Pause (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'pause',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_campaign_id' => '0000000001'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign Pause (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Pause Endpoint";
var $campaign = {
api: "pause",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_campaign_id: "0000000001"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_campaign_id": "000000001",
"c_status": "PAUSE"
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Stop Endpoint
The Stop endpoint stops a campaign and removes all remaining numbers from the call queue. Once a campaign is stopped there is no starting it again.
Fields: (All fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Stop Endpoint it must be “stop”
Example: stop
c_campaign_id - Required
The identification number of the campaign you wish to stop.
Example: 0000000001
c_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
c_campaign_id
The unique identifier for the campaign that has been paused.
Example: 0000000001
c_status
The new status of the campaign you stopped.
Example: "STOPPED"
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaign Stop (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/campaigns');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'stop',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'c_campaign_id' => '0000000001'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Campaign Stop (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Stop Endpoint";
var $campaign = {
api: "stop",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
c_campaign_id: "0000000001"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/campaigns?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"c_error": "false",
"c_status": "STOPPED",
"c_campaign_ID": "0000000001",
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Blacklist Functions
The blacklist functions have been created to add phone numbers you no longer wish to contact to your personal account do not call list.
URL: https://api.22.rvmpro.com/blacklist
Endpoints: add, load
Add Endpoint
Adds a single number to your account's do not call list
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the add Endpoint it must be “add”
Example: add
b_number - Required
A 10 – 13 digit number you want to add to your do not call list.
b_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
b_numbers
A comma separated list of 10 – 13 digit numbers you want to add to your do not call list.
b_timestamp
The date and time that the number was added to your blacklist
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Blacklist Add (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/blacklist');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'add',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'b_number' => '5555555555'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Blacklist Add (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Add Endpoint";
var $campaign = {
api: "add",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
b_number: "5555555555"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/blacklist?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"b_error": "false",
"b_number": "5555555555",
"b_timestamp": "2018-10-19 21:10:43"
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Load Endpoint
Adds multiple numbers to your account's do not call list
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Load Endpoint it must be “load”
Example: load
b_numbers - Required
A 10 – 13 digit number you want to add to your do not call list.
b_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
b_timestamp
The date and time that the number was added to your blacklist
Failed Response Object
REPORT
DESCRIPTION
c_error
A Boolean that will display true or false. On a successful response will be set to "false"
c_error_msg
An array of messages detailing any errors that were detected while performing your request.
Blacklist Load (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/blacklist');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'load',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'b_numbers' => '5555555555, 202-555-0155'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Blacklist Load (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Load Endpoint";
var $campaign = {
api: "load",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
b_number: "5555555555, 202-555-0155”
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/blacklist?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"b_error": "false",
"b_timestamp": "2018-10-19 21:10:43"
}
FAILED RESPONSE OBJECT
{
"c_error": true,
"c_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Reports Functions
The reports functions allow users to go into deeper detail about all aspects of their business with us from the API.
URL: https://api.22.rvmpro.com/reports
Endpoints: campaigns, details, transactions, agents
Campaigns Endpoint
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Campaigns Endpoint it must be “campaigns”
Example: campaigns
r_page_size
A number fields that limits the number of results returned by the API. This is meant to be used in conjunction with r_offset to make dashboards. If this field is used without r_offset the api will return an error.
Example: a r_page_size of 10 will only ever return 10 campaigns
r_offset
A number field that is used to skip X number of results. Used in conjunction with r_page_size so the same few campaigns are not returned by the endpoint. When using r_offset it should be set to 0 and incremented by the size of r_page_size with each request to ensure that each request is getting different data. If this field is used without r_page_size the api will return an error.
Example: 0 will not skip any campaigns. 10 will skip the first 10 campaigns and show you the next number of campaigns as determined by r_page_size.
r_from_date
A date type field that is used to select campaigns that have had activity performed on them from that date in a YYYY-MM-DD format. Meant to be used in conjunction with r_to_date to specify a lower bound of a time frame for the report, but if passed in alone the endpoint will return all the data from that date to the present. If you put a r_from_date that takes place before the r_to_date an error will occur.
Example: 2018-10-22
r_to_date
A date type field that is used to select campaigns that have had activity performed on them up to that date in a YYYY-MM-DD format. Used in conjunction with r_from_date to specify an upper bound of a time frame for the report, but if used by itself it will return all data from the oldest campaign timestamp to the newest one up to that date. If you put a r_to_date that takes place before the r_from_date an error will occur.
Example: 2018-10-31
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
r_rows
The number of campaigns that were found by the list request. Will be limited by r_page_size
data
An array of JSON objects that contain the following data:
r_campaign_id
A unique identifier for your campaign. This is used as a reference number in other endpoints.
r_name
The name of the campaign that was found.
r_wav
The name of the wave file that was found at the url that was provided.
r_callback
The callback number that was supplied minus any special formatting
r_status
The status of the campaign. Can be “PAUSED”, indicating that the campaign is awaiting to be started, “ACTIVE”, indicating that the campaign is currently running and is attempting to drop voicemails, ”COMPLETED” indicating that the campaign has attempted to drop a voicemail to all the phone numbers it was provided, or “STOPPED” indicating that the campaign was manually stopped.
r_timestamp
The date and time of the last action that was performed on the campaign, whether that action was creating the campaign or changing its status.
r_throttle
Campaign throttle will set how many drops a campaign will try to make in an hour. Base maximum throttle is 18,000 contact sales@justdeliverit.com to adjust maximum throttle.
r_delivered
The amount of voicemails that were dropped successfully.
r_undelivered
The amount of voicemails that could not be dropped successfully.
r_filtered
The amount of voicemails that were filtered out because they were found to be on the do not call list or because you did not have permission to drop a number in that state.
r_hopper
The number of voicemail drops remaining before the campaign is completed.
Failed Response Object
REPORT
DESCRIPTION
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
r_error_msg
An array of messages detailing any errors that were detected while performing your request.
Campaigns Report (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/reports');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'campaigns',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'r_from_date' => '2018-10-01'
'r_to_date' => '2018-10-31'
'r_page_size' => 10
'r_offset' => 0
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($ch);
Campaigns Report (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Campaigns Endpoint";
var $campaign = {
api: "campaigns",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
r_from_date: "2018-10-01”,
r_to_date: “2018-10-31”
r_page_size: 10,
r_offset: 0
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/reports?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"r_error": "false",
"r_rows": 1182,
"data": [
{
"r_campaign_id": 0000000001,
"r_name": "Test Campaign1",
"r_wav": "Test.wav",
"r_callback": "2025550155",
"r_status": "ACTIVE",
"r_timestamp": "2018-10-19 17:35:21",
"r_throttle": 600,
"r_delivered": 86,
"r_undelivered": 23,
"r_filtered": 7,
"r_hopper": 109
},
{
"r_campaign_id": 0000000002,
"r_name": "Test Campaign2",
"r_wav": "Other_Test.wav",
"r_callback": "2025550155",
"r_status": "COMPLETED",
"r_timestamp": "2018-10-17 18:47:27",
"r_throttle": 600,
"r_delivered": 286,
"r_undelivered": 14,
"r_filtered": 18,
"r_hopper": 0
},
...
]
}
FAILED RESPONSE OBJECT
{
"r_error": true,
"r_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Details Endpoint
The Details report displays in depth information about a specific campaign and the numbers it has contacted. Here you can see exactly which numbers successfully received voicemail drops and what numbers did not. This report will not contain numbers that were filtered out during campaign creation.
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Details Endpoint it must be “details”
Example: details
r_campaign_id - Required
The identification number of the campaign you wish to view.
Example: 0000000001
r_page_size
A number fields that limits the number of results returned by the API. This is meant to be used in conjunction with r_offset to make dashboards. If this field is used without r_offset the api will return an error.
Example: a r_page_size of 10 will only ever return 10 campaigns
r_offset
A number field that is used to skip X number of results. Used in conjunction with r_page_size so the same few campaigns are not returned by the endpoint. When using r_offset it should be set to 0 and incremented by the size of r_page_size with each request to ensure that each request is getting different data. If this field is used without r_page_size the api will return an error.
Example: 0 will not skip any campaigns. 10 will skip the first 10 campaigns and show you the next number of campaigns as determined by r_page_size.
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
r_rows
The number of campaigns that were found by the list request. Will be limited by r_page_size
data
An array of JSON objects that contain the following data:
r_campaign_id
A unique identifier for your campaign. This is used as a reference number in other endpoints.
r_name
The name of the campaign that was found.
r_number
The phone number that the campaign attempted to drop a voicemail on.
r_status
The status of the drop. Can be “OK”, indicating that a voicemail was successfully dropped on that phone number, “Failure” indicating that a voicemail was not dropped on that phone number, or “Filtered” indicating a number was filtered out due to it being on a do not call list, or from a state where permission was required but c_state_check was set to false.
r_timestamp
The date and time the voicemail drop was attempted.
r_carrier
The mobile phone carrier that owns this number.
r_state
The state that the phone number is registered to.
Failed Response Object
REPORT
DESCRIPTION
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
r_error_msg
An array of messages detailing any errors that were detected while performing your request.
Details Report (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/reports');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'details',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'r_campaign_id' => '0000000001'
'r_page_size' => 10
'r_offset' => 0
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($ch);
Details Report (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Details Endpoint";
var $campaign = {
api: "details",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
r_campaign_id: "0000000001”,
r_page_size: 10,
r_offset: 0
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/reports?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"r_error": "false",
"r_rows": 4,
"data": [
{
"r_name": "Test Campaign1"",
"r_campaign_id": "0000000001",
"r_number": "5555555555",
"r_status": "OK",
"r_timestamp": "2018-08-23 22:18:09",
"r_carrier": "T-MOBILE",
"r_state": "CA"
},
{
"r_name": "Test Campaign2"",
"r_campaign_id": "0000000002",
"r_number": "5555555551",
"r_status": "FILTERED",
"r_timestamp": "2018-08-23 22:18:09",
"r_carrier": "T-MOBILE",
"r_state": "NV"
},
...
]
}
FAILED RESPONSE OBJECT
{
"r_error": true,
"r_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Transactions Endpoint
The transactions report displays information regarding the transfer of credits used for voicemail drops. Most useful for resellers that are transferring credits to sub accounts.
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Transactions Endpoint it must be “transactions”
Example: transactions
r_from_date
A date type field that is used to select transactions that were performed from that date in a YYYY-MM-DD format. Meant to be used in conjunction with r_to_date to specify a lower bound of a time frame for the report, but if passed in alone the endpoint will return all the data from that date to the present. If you put a r_from_date that takes place before the r_to_date an error will occur.
Example: 2018-10-22
r_to_date
A date type field that is used to select transactions that were performed up to that date in a YYYY-MM-DD format. Used in conjunction with r_from_date to specify an upper bound of a time frame for the report, but if used by itself it will return all data from the oldest campaign timestamp to the newest one up to that date. If you put a r_to_date that takes place before the r_from_date an error will occur.
Example: 2018-10-31
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
r_rows
The number of campaigns that were found by the list request. Will be limited by r_page_size
data
An array of JSON objects that contain the following data:
r_date
The date and time that the transaction happened.
r_xfer_from
The company that the credits are coming from.
r_xfer_to
The Company that the credits are going to.
r_amount
The monetary value of the transfer.
r_drop_rate
The cost of a single voicemail drop for that company.
r_credits
The total amount of credits that were transferred.
r_auth_code
The authorization code for a transfer.
r_transaction_id
The transaction identification number. Both parties in a transfer will get this number.
r_ledger_id
The identification number made in the system ledge. Each party in a transfer will get a different ledger ID.
Failed Response Object
REPORT
DESCRIPTION
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
r_error_msg
An array of messages detailing any errors that were detected while performing your request.
Transactions Report (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/reports');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'transactions',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'r_from_date' => '2018-10-01'
'r_to_date' => '2018-10-31'
'r_page_size' => 10
'r_offset' => 0
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($ch);
Transactions Report (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Transactions Endpoint";
var $campaign = {
api: "transactions",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
r_from_date: ”2018-10-01”,
r_to_date: “2018-10-31”,
r_page_size: 10,
r_offset: 0
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/reports?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"r_error": "false",
"r_rows": 4,
"data": [
{
"r_date": "2018-10-30 20:31:39"",
"r_xfer_from": "B Company",
"r_xfer_to": "A Company",
"r_amount": 119.07,
"r_drop_rate": "0.01000",
"r_credits": 11907,
"r_auth_code": "SYSTEM",
"r_transaction_id": "12345",
"r_ledger_id": 9307
},
{
"r_date": "2018-10-25 04:21:42"",
"r_xfer_from": "B Company",
"r_xfer_to": "Company C",
"r_amount": 0.06,
"r_drop_rate": "0.00600",
"r_credits": 10,
"r_auth_code": "SYSTEM",
"r_transaction_id": "67890",
"r_ledger_id": 9037
},
...
]
}
FAILED RESPONSE OBJECT
{
"r_error": true,
"r_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Agents Endpoint
The Agents report displays information regarding the sales of your company and the sales agent’s performance.
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Agents Endpoint it must be “agents”
Example: agents
r_from_date
A date type field that is used to select sales that were performed from that date in a YYYY-MM-DD format. Meant to be used in conjunction with r_to_date to specify a lower bound of a time frame for the report, but if passed in alone the endpoint will return all the data from that date to the present. If you put a r_from_date that takes place before the r_to_date an error will occur.
Example: 2018-10-22
r_to_date
A date type field that is used to select sales that were performed up to that date in a YYYY-MM-DD format. Used in conjunction with r_from_date to specify an upper bound of a time frame for the report, but if used by itself it will return all data from the oldest campaign timestamp to the newest one up to that date. If you put a r_to_date that takes place before the r_from_date an error will occur.
Example: 2018-10-31
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
r_rows
The number of campaigns that were found by the list request. Will be limited by r_page_size
data
An array of JSON objects that contain the following data:
r_agent_id
A unique Identifier for an agent
r_name
Agent's name
r_credits
The amount of credits sold by this agent between r_from_date and r_to_date
r_revenue
The amount of revenue generated by an agent between r_from_date and r_to_date
r_avg_rate
Average rate of revenue generated by the agent between r_from_date and r_to_date
r_delivered
Amount of campaigns an agent has completed and run
r_commission
The amount of commission the agent has earned
Failed Response Object
REPORT
DESCRIPTION
r_error
A Boolean that will display true or false. On a successful response will be set to “false”
r_error_msg
An array of messages detailing any errors that were detected while performing your request.
Agents Report (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/reports');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'agents',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'r_from_date' => '2018-10-01'
'r_to_date' => '2018-10-31'
'r_page_size' => 10
'r_offset' => 0
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($ch);
Agents Report (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Agents Endpoint";
var $campaign = {
api: "agents",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
r_from_date: ”2018-10-01”,
r_to_date: “2018-10-31”,
r_page_size: 10,
r_offset: 0
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/reports?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"r_error": "false",
"r_rows": 22,
"data": [
{
"r_agent_id": 0001,
"r_name": "John",
"r_credits": "14142617",
"r_revenue": 85480.7,
"r_avg_rate": "0.0062",
"r_delivered": "64",
"r_commission": 4274.035
},
{
"r_agent_id": 0002,
"r_name": "Jane",
"r_credits": "22692",
"r_revenue": 295,
"r_avg_rate": "0.0130",
"r_delivered": "0",
"r_commission": 44.25
},
...
]
}
FAILED RESPONSE OBJECT
{
"r_error": true,
"r_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
Reputation Check Functions
The Reputation Check functions receive and display reputation information for call back numbers which determines how likely a call back number is to be labeled as spam. Only works with US phone numbers
URL: https://api.22.rvmpro.com/repcheck
Endpoints: Check, History
Check Endpoint
The check endpoint performs a reputation check on a 10 digit phone number. The higher the rc_score the more likely that number is to be labeled spam. Costs 20 credits per phone number reputation check
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Check Endpoint it must be “check”
Example: check
rc_number - Required
The 10 digit phone number that a reputation check will be performed on.
Example: 202-555-0155
r_error
A Boolean that will display true or false. On a successful response will be set to “false”.
Example: false
rc_date
The date and time the reputation check was performed.
rc_phone_number
The phone number that had its reputation checked.
rc_score
The 0 – 100 reputation score of the phone number that was checked. A higher score indicates that the number provided will more likely be labeled as spam by downstream providers. Note that a score can change over time.
rc_level
A 1 – 4 score displaying how likely this number is to be considered spam. A higher score indicates that the number provided will more likely be labeled as spam by downstream providers.
rc_reports
The number of reports that have been made against that phone number.
rc_status
The status type that the number has been flagged as. If the value is null, then it hasn’t been flagged as anything. Otherwise it will be one of the following:
- NotSpam
- GeneralSpam
- DebtCollect
- Political
- Nonprofit
- Telemarketer
- Survey
- ScamOrFraud
- Extortion
- IdentityTheft
- TollFreeTrafficPumping
- StolenIdentity
- IRSScam
- TaxScam
- TechSupportScam
- VacationScam
- LuckyWinnerScam
Failed Response Object
REPORT
DESCRIPTION
rc_error
A Boolean that will display true or false. On a successful response will be set to “false”
rc_error_msg
An array of messages detailing any errors that were detected while performing your request.
Rep Check (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/repcheck');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'check',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
'rc_number' => '2025550155'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($cu);
Rep Check (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "Check Endpoint";
var $campaign = {
api: "check",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
rc_number: "2025550155"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/repcheck?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"rc_error": "false",
"rc_date": "2018-10-31 21:15:44",
"rc_phone_number": "2025550155",
"rc_score": 1,
"rc_level": 1,
"rc_reports": 0,
"rc_status": null
}
FAILED RESPONSE OBJECT
{
"rc_error": true,
"rc_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}
History Endpoint
The History Endpoint is a historical log of all the reputation checks that have been made by that account.
Fields: (All Fields are expected to be lower case)
token - Required
A security token provided required to access the api. Find yours by logging into your admin portal, clicking on your name in the top right and corner, select “Admin”> “Tools”> “API”.
There you will find your token and whitelisted IP addresses.
Example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
api - Required
The value that specifies the endpoint you wish to access. For the Check Endpoint it must be “check”
Example: check
rc_error
A Boolean that will display true or false. On a successful response will be set to “false”
Example: false
rc_rows
The number of campaigns that were found by the list request. Will be limited by r_page_size
data
An array of JSON objects that contain the following data:
rc_date
The date and time the reputation check was performed.
rc_phone_number
The phone number that had its reputation checked.
rc_score
The 0 – 100 reputation score of the phone number that was checked. A higher score indicates that the number provided will more likely be labeled as spam by downstream providers. Note that a score can change over time.
rc_level
A 1 – 4 score displaying how likely this number is to be considered spam. A higher score indicates that the number provided will more likely be labeled as spam by downstream providers.
rc_reports
The number of reports that have been made against that phone number.
rc_status
The status type that the number has been flagged as. If the value is null, then it hasn’t been flagged as anything. Otherwise it will be one of the following:
- NotSpam
- GeneralSpam
- DebtCollect
- Political
- Nonprofit
- Telemarketer
- Survey
- ScamOrFraud
- Extortion
- IdentityTheft
- TollFreeTrafficPumping
- StolenIdentity
- IRSScam
- TaxScam
- TechSupportScam
- VacationScam
- LuckyWinnerScam
Failed Response Object
REPORT
DESCRIPTION
rc_error
A Boolean that will display true or false. On a successful response will be set to “false”
rc_error_msg
An array of messages detailing any errors that were detected while performing your request.
Rep History (PHP Example)
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, 'https://api.22.rvmpro.com/repcheck');
curl_setopt($cu, CURLOPT_POST, 1);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$post_data =
[
'api' => 'history',
'token' => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
];
curl_setopt($cu, CURLOPT_POSTFIELDS, $post_data);
try
{
$reponse = json_decode(curl_exec($cu),true);
if($response === FALSE)
{
die("Curl error:".curl_error($cu));
}
}
catch(Exception $e)
{
$error_msg = $e->getMessage();
$error = true;
}
curl_close($ch);
Rep History (Javascript Example)
<script>
(function(){
$(document).ready(function(){
////////////////////////////////////////////////////////////////////////
// These are the only variables that should need to change.
// Please refer to the middle section to see each variable boundaries.
////////////////////////////////////////////////////////////////////////
var buttonName = "History Endpoint";
var $campaign = {
api: "history",
token: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
};
////////////////////////////////////////////////////////////////////////
// Should only need to change code above this line.
////////////////////////////////////////////////////////////////////////
var base_url = "https://api.22.rvmpro.com/repcheck?";
var url = base_url;
var index = 0;
for(key in $campaign){
if(index === 0){
url += key + "=" + $campaign[key];
} else {
url += "&" + key + "=" + $campaign[key];
}
index++;
}
$("#api_anchor").text(buttonName);
$("#api_anchor").on("click", function(){
$.ajax({
url: url,
method: "get",
success: function(results){
var json = JSON.parse(results);
console.log(json);
}
});
});
});
})();
</script>
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';
echo '<a href="#" id="api_anchor"></a>';
SUCCESSFUL RESPONSE OBJECT
{
"rc_error": "false",
"r_rows": 34,
"data": [
{
"rc_date": "2018-10-22 15:26:00",
"rc_phone_number": 5555555555,
"rc_score": 1,
"rc_level": 1,
"rc_reports": 0,
"rc_status": ""
},
{
"rc_date": "2018-10-22 15:39:17",
"rc_phone_number": 5555555554,
"rc_score": 1,
"rc_level": 1,
"rc_reports": 38,
"rc_status": ""
},
...
]
}
FAILED RESPONSE OBJECT
{
"rc_error": true,
"rc_error_msg": [
"This will give you a verbose response on what fields were found to be errors and why."
]
}