Create a campaign mailing
curl --request POST \
--url https://api.paubox.com/v1/marketing/campaign_mailings \
--header 'Content-Type: application/json' \
--header 'authorization: <api-key>' \
--data '
{
"campaign_mailing": {
"subject": "March newsletter",
"html_part": "<html><body><div>Hello</div></body></html>",
"text_part": "Hello",
"template_type": "html"
}
}
'import requests
url = "https://api.paubox.com/v1/marketing/campaign_mailings"
payload = { "campaign_mailing": {
"subject": "March newsletter",
"html_part": "<html><body><div>Hello</div></body></html>",
"text_part": "Hello",
"template_type": "html"
} }
headers = {
"authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
campaign_mailing: {
subject: 'March newsletter',
html_part: '<html><body><div>Hello</div></body></html>',
text_part: 'Hello',
template_type: 'html'
}
})
};
fetch('https://api.paubox.com/v1/marketing/campaign_mailings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.paubox.com/v1/marketing/campaign_mailings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'campaign_mailing' => [
'subject' => 'March newsletter',
'html_part' => '<html><body><div>Hello</div></body></html>',
'text_part' => 'Hello',
'template_type' => 'html'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.paubox.com/v1/marketing/campaign_mailings"
payload := strings.NewReader("{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.paubox.com/v1/marketing/campaign_mailings")
.header("authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paubox.com/v1/marketing/campaign_mailings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>"
},
"errors": [
"<string>"
]
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Marketing · Campaigns
Create a campaign
Creates a campaign mailing (a marketing email) for the authenticated customer. Creating a mailing only stores the content; use send a campaign or schedule a campaign to deliver it.
subject is required and must be unique within your account. An unsubscribe footer is appended to html_part automatically on save.
Example curl command:
curl -X POST \
https://api.paubox.com/v1/marketing/campaign_mailings \
-H 'authorization: Token token=YOUR_API_KEY' \
-H 'content-type: application/json' \
-d '{
"campaign_mailing": {
"subject": "March newsletter",
"html_part": "<html><body><div>Hello</div></body></html>",
"text_part": "Hello",
"template_type": "html"
}
}'
POST
/
campaign_mailings
Create a campaign mailing
curl --request POST \
--url https://api.paubox.com/v1/marketing/campaign_mailings \
--header 'Content-Type: application/json' \
--header 'authorization: <api-key>' \
--data '
{
"campaign_mailing": {
"subject": "March newsletter",
"html_part": "<html><body><div>Hello</div></body></html>",
"text_part": "Hello",
"template_type": "html"
}
}
'import requests
url = "https://api.paubox.com/v1/marketing/campaign_mailings"
payload = { "campaign_mailing": {
"subject": "March newsletter",
"html_part": "<html><body><div>Hello</div></body></html>",
"text_part": "Hello",
"template_type": "html"
} }
headers = {
"authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
campaign_mailing: {
subject: 'March newsletter',
html_part: '<html><body><div>Hello</div></body></html>',
text_part: 'Hello',
template_type: 'html'
}
})
};
fetch('https://api.paubox.com/v1/marketing/campaign_mailings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.paubox.com/v1/marketing/campaign_mailings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'campaign_mailing' => [
'subject' => 'March newsletter',
'html_part' => '<html><body><div>Hello</div></body></html>',
'text_part' => 'Hello',
'template_type' => 'html'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.paubox.com/v1/marketing/campaign_mailings"
payload := strings.NewReader("{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.paubox.com/v1/marketing/campaign_mailings")
.header("authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paubox.com/v1/marketing/campaign_mailings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_mailing\": {\n \"subject\": \"March newsletter\",\n \"html_part\": \"<html><body><div>Hello</div></body></html>\",\n \"text_part\": \"Hello\",\n \"template_type\": \"html\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>"
},
"errors": [
"<string>"
]
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
Token-based authentication. Use format: "Token token=<API_KEY>" where <API_KEY> is your API key
Body
application/json
Show child attributes
Show child attributes
Response
The new campaign mailing's ID. If validation fails the response is still 200 but the body contains an errors array instead of data.
⌘I