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."
]

}