List campaigns
Use the API to get a list of your campaigns.https://api-eu1.stannp.com/v1/campaigns/list
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/list \ -u {API_KEY}:
define("API_KEY", "YOUR API KEY"); $opts = array( 'http' => array( 'method' => 'GET', 'header' => 'Content-type: application/x-www-form-urlencoded' ) ); $context = stream_context_create($opts); $result = file_get_contents("https://api-eu1.stannp.com/v1/campaigns/list?api_key=" . API_KEY, false, $context); $response = json_decode($result, true); print_r($response);
import requests response = requests.get('https://api-eu1.stannp.com/v1/campaigns/list?api_key={API_KEY}') print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/list?api_key={API_KEY}"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);Return
{ "success":true, "data":[ { "id":"222", "account_id":"9", "name":"a5 test", "template_id":"0", "type":"a5-postcard", "trigger_date":null, "send_date":null, "trigger_offset":null, "created":"2015-04-26T10:40:00Z", "updated":"2015-04-26T10:40:00Z", "status":"draft", "recipients_group":"0", "recipients_filter":"", "recipients_validated":"valid", "recipients":"0", "recipients_not_valid":"0", "dispatched":"0", "cost":"0.00", "voucher_code":"", "image":null }, { "id":"221", "account_id":"9", "name":"April Campaign", "template_id":"195", "type":"a6-postcard", "trigger_date":null, "send_date":null, "trigger_offset":null, "created":"2015-04-26T10:15:40Z", "updated":"2015-04-26T10:15:40Z", "status":"draft", "recipients_group":"0", "recipients_filter":"", "recipients_validated":"valid", "recipients":"0", "recipients_not_valid":"0", "dispatched":"0", "cost":"0.00", "voucher_code":"", "image":"https://dash.stannp.com/api/v1/uploads/9/image-1430044053.webp" } ] }
Get a single campaign
Use the API to get the details for a campaign specified withid
.
https://api-eu1.stannp.com/v1/campaigns/get/:id
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/get/1234 \ -u {API_KEY}:
define("API_KEY", "YOUR API KEY"); $opts = array( 'http' => array( 'method' => 'GET', 'header' => 'Content-type: application/x-www-form-urlencoded' ) ); $context = stream_context_create($opts); $result = file_get_contents("https://api-eu1.stannp.com/v1/campaigns/get/1234?api_key=" . API_KEY, false, $context); $response = json_decode($result, true); print_r($response);
import requests response = requests.get('https://api-eu1.stannp.com/v1/campaigns/get/1234?api_key={API_KEY}') print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/get/1234?api_key={API_KEY}"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);Return
{ "success":true, "data":{ "id":"126", "name":"Stannp Test Campaign", "template_id":"111", "type":"a6-postcard", "trigger_date":null, "send_date":null, "trigger_offset":null, "created":"2015-03-17 11:04:19", "updated":"2015-03-20 10:57:05", "status":"dispatched", "recipients_group":"15", "recipients_filter":"", "recipients_validated":"valid", "recipients":"232", "recipients_not_valid":"0", "updated":"2015-03-21 09:10:05", "cost":"0.00", "voucher_code":"", "image":"https://dash.stannp.com/api/v1/uploads/9/image-1426590259.webp", "size":"A6" } }
Create a new campaign
Use the API to create a campaign on our platform.https://api-eu1.stannp.com/v1/campaigns/create
Parameters
name | string | Name your campaign for reference. |
type | a6-postcard | a5-postcard | letter | The type of campaign this will be. |
template_id | int | A template ID to make a copy of. If left out or set to "0" then a blank template of the correct format will be used. |
file | optional | A single or multi-page PDF file to use as the design artwork. can be a URL or binary file. |
front | optional | A PDF or JPG file to use as the front image. Can be a URL or binary file. |
back | optional | A PDF or JPG file to use as the back image. Can be a URL or binary file. |
size | optional | Required when using file or front & back images. Example "A4" or "A5" or "A6". |
save | optional | Optional when using file or front & back images. Save the uploaded file as a new design template or your account. |
group_id | int | A group id. |
what_recipients | all | valid | not_valid | int |
What recipients do you want this campaign to go to? "all" is every recipient in the group. "valid" send to only UK validated addresses. "not_valid" send to only UK non validated addresses. "int" send to only international addresses. |
addons | string | If you have an addon code. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/create \ -u {API_KEY}: \ -d "name=My Campaign" \ -d "type=A6-postcard" \ -d "template_id=12345" \ -d "group_id=12345"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/create?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'name' => "My Campaign", 'type' => "A6-postcard", 'template_id' => "12345", 'group_id' => "12345" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'name': 'My Campaign', 'type': 'A6-postcard', 'template_id': '12345', 'group_id': '12345' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/create?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/create?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("name", "My Campaign"); request.AddParameter("type", "A6-postcard"); request.AddParameter("template_id", "12345"); request.AddParameter("group_id", "12345"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data":"id":"266" }
Produce a sample
Use the API to produce a PDF sample of your campaign. This link will be valid for 30 minutes.https://api-eu1.stannp.com/v1/campaigns/sample
Parameters
id | int | The id of the campaign to produce a sample for. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/sample \ -u {API_KEY}: \ -d "id=0"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/sample?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'id' => "0" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'id': '0' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/sample?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/sample?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("id", "0"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data":"https://stannpstorage.blob.core.windows.net/pdf-samples/12345_12345678_sample_11234567890-GDBNYWVCJBJIBVGGVC.pdf" }
Approve a campaign
When approving a campaign you take full responsibility for any spelling mistakes or design flaws. Once approved we will select all recipient data at this point and future changes to the same data will not apply to this campaign. This campaign will then be locked so you will be unable to makes changes to the design or recipient selection.https://api-eu1.stannp.com/v1/campaigns/approve
Parameters
id | int | The id of the campaign to approve. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/approve \ -u {API_KEY}: \ -d "id=0"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/approve?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'id' => "0" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'id': '0' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/approve?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/approve?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("id", "0"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data":true }
Campaign Cost
Use the API to obtain the rates of your campaign and the breakdown of recipients.https://api-eu1.stannp.com/v1/campaigns/cost
Parameters
id | int | The id of the campaign to find out the cost of booking. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/cost \ -u {API_KEY}: \ -d "id=0"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/cost?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'id' => "0" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'id': '0' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/cost?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/cost?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("id", "0"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data": { "rate": "0.41", "non_valid_rate": "0.51", "delivery_rate": "0.00", "international_rate": "0.00", "valid": "14.35", "not_valid": "191.25", "international": "0.00", "delivery_charge": "0.00", "net": "205.60", "vat": "41.12", "total": "246.72" } }
Available Booking Dates
Use the API to get the available dates you can use to book your campaign.https://api-eu1.stannp.com/v1/campaigns/availableDates
Parameters
start | date | YYYY-mm-dd (defaults to today). |
end | date | YYYY-mm-dd (defaults to 30 days time). |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/availableDates \ -u {API_KEY}: \ -d "start=2024-09-15" \ -d "end=2024-10-15"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/availableDates?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'start' => "2024-09-15", 'end' => "2024-10-15" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'start': '2024-09-15', 'end': '2024-10-15' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/availableDates?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/availableDates?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("start", "2024-09-15"); request.AddParameter("end", "2024-10-15"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data": { "2020-07-15", "2020-07-16", "2020-07-17", "2020-07-20", "2020-07-21", "2020-07-22", "2020-07-23", "2020-07-24", "2020-07-27", "2020-07-28", "2020-07-29" } }
Book a campaign
When booking your campaign payment will be taken from your balance.https://api-eu1.stannp.com/v1/campaigns/book
Parameters
id | int | The id of the campaign to book. |
send_date | string | The dispatch date of the campaign. Must be in a YYYY-MM-DD format. eg: 2024-09-15 |
next_available_date | bool | Default as true. We will book the campaign on the next available date if your send date is not available. Set to false if you want to receive an error if the date is not available. |
use_balance | bool | Set to true to use your balance to pay for the campaign. Default is true. If you do not pay for the campaign using balance the campaign will be scheduled but will not be posted till payment. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/book \ -u {API_KEY}: \ -d "id=0" \ -d "send_date=2024-09-15" \ -d "use_balance=1"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/book?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'id' => "0", 'send_date' => "2024-09-15", 'use_balance' => "1" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'id': '0', 'send_date': '2024-09-15', 'use_balance': '1' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/book?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/book?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("id", "0"); request.AddParameter("send_date", "2024-09-15"); request.AddParameter("use_balance", "1"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data":true }
Delete a campaign
Use the API to delete a campaign. You can only delete campaigns that have not been booked.https://api-eu1.stannp.com/v1/campaigns/delete
Parameters
id | int | The id of the campaign to delete. |
Request
$ curl https://api-eu1.stannp.com/v1/campaigns/delete \ -u {API_KEY}: \ -d "id=0"
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api-eu1.stannp.com/v1/campaigns/delete?api_key={API_KEY}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array( 'id' => "0" ), )); $response = curl_exec($curl); curl_close($curl); print_r($response);
import requests data = { 'id': '0' } response = requests.post('https://api-eu1.stannp.com/v1/campaigns/delete?api_key={API_KEY}', data=data) print(response.text)
var client = new RestClient("https://api-eu1.stannp.com/v1/campaigns/delete?api_key={API_KEY}"); var request = new RestRequest(Method.POST); request.AddParameter("id", "0"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content)Response
{ "success":true, "data":1 }