curl --request POST \
--url https://app.aegister.com/api/v1/cloud-defender \
--header 'Content-Type: application/json' \
--header 'X-Aegister-Token: <api-key>' \
--data '
{
"organization": 5,
"fqdn": "sample.com",
"email": "jdoe@sample.com",
"endpoint": "11.22.33.44",
"services": []
}
'import requests
url = "https://app.aegister.com/api/v1/cloud-defender"
payload = {
"organization": 5,
"fqdn": "sample.com",
"email": "jdoe@sample.com",
"endpoint": "11.22.33.44",
"services": []
}
headers = {
"X-Aegister-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Aegister-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
organization: 5,
fqdn: 'sample.com',
email: 'jdoe@sample.com',
endpoint: '11.22.33.44',
services: []
})
};
fetch('https://app.aegister.com/api/v1/cloud-defender', 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://app.aegister.com/api/v1/cloud-defender",
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([
'organization' => 5,
'fqdn' => 'sample.com',
'email' => 'jdoe@sample.com',
'endpoint' => '11.22.33.44',
'services' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Aegister-Token: <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://app.aegister.com/api/v1/cloud-defender"
payload := strings.NewReader("{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Aegister-Token", "<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://app.aegister.com/api/v1/cloud-defender")
.header("X-Aegister-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.aegister.com/api/v1/cloud-defender")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Aegister-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}"
response = http.request(request)
puts response.read_body{
"error": 0,
"messages": [],
"ticket": 123
}{
"error": 1,
"messages": [
"Malformed data structure",
"Invalid data provided"
]
}{
"error": 1,
"messages": [
9153
]
}{
"error": 1,
"messages": []
}Create Cloud Defender configuration
Add a web application to Cloud Defender: its domain (fqdn; an international domain name goes in its xn-- form, as the setup wizard sends it), the address of your origin server (endpoint) and the organization it belongs to. It is what the setup wizard does after its check; run “Check a web app” first to see whether the domain and your origin answer as expected. Aegister then prepares the domain, and “Get activation steps” follows it until it is live. You can add web applications only for organizations you can manage.
curl --request POST \
--url https://app.aegister.com/api/v1/cloud-defender \
--header 'Content-Type: application/json' \
--header 'X-Aegister-Token: <api-key>' \
--data '
{
"organization": 5,
"fqdn": "sample.com",
"email": "jdoe@sample.com",
"endpoint": "11.22.33.44",
"services": []
}
'import requests
url = "https://app.aegister.com/api/v1/cloud-defender"
payload = {
"organization": 5,
"fqdn": "sample.com",
"email": "jdoe@sample.com",
"endpoint": "11.22.33.44",
"services": []
}
headers = {
"X-Aegister-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Aegister-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
organization: 5,
fqdn: 'sample.com',
email: 'jdoe@sample.com',
endpoint: '11.22.33.44',
services: []
})
};
fetch('https://app.aegister.com/api/v1/cloud-defender', 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://app.aegister.com/api/v1/cloud-defender",
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([
'organization' => 5,
'fqdn' => 'sample.com',
'email' => 'jdoe@sample.com',
'endpoint' => '11.22.33.44',
'services' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Aegister-Token: <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://app.aegister.com/api/v1/cloud-defender"
payload := strings.NewReader("{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Aegister-Token", "<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://app.aegister.com/api/v1/cloud-defender")
.header("X-Aegister-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.aegister.com/api/v1/cloud-defender")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Aegister-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"organization\": 5,\n \"fqdn\": \"sample.com\",\n \"email\": \"jdoe@sample.com\",\n \"endpoint\": \"11.22.33.44\",\n \"services\": []\n}"
response = http.request(request)
puts response.read_body{
"error": 0,
"messages": [],
"ticket": 123
}{
"error": 1,
"messages": [
"Malformed data structure",
"Invalid data provided"
]
}{
"error": 1,
"messages": [
9153
]
}{
"error": 1,
"messages": []
}Authorizations
Body
Organization unique identifier for which the Cloud Defender is installed.
5
10
15
(Fully Qualified Domain Name) is your web application domain name.
"sample.com"
Email address of the Cloud Defender manager.
"jdoe@sample.com"
Web application exposed interface address.
"11.22.33.44"
The services you need to activate for the web application.
Caching, DDoS, OneFirewall, WAF 
