Replace correspondent policy
curl --request PUT \
--url https://api.openmail.sh/v1/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inbound": {
"rules": [
{
"value": "<string>"
}
]
},
"outbound": {
"rules": [
{
"value": "<string>"
}
]
}
}
'import requests
url = "https://api.openmail.sh/v1/policy"
payload = {
"inbound": { "rules": [{ "value": "<string>" }] },
"outbound": { "rules": [{ "value": "<string>" }] }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inbound: {rules: [{value: '<string>'}]},
outbound: {rules: [{value: '<string>'}]}
})
};
fetch('https://api.openmail.sh/v1/policy', 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.openmail.sh/v1/policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'inbound' => [
'rules' => [
[
'value' => '<string>'
]
]
],
'outbound' => [
'rules' => [
[
'value' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.openmail.sh/v1/policy"
payload := strings.NewReader("{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.openmail.sh/v1/policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openmail.sh/v1/policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Sender rules
Replace correspondent policy
Declaratively set a scope’s entire policy in one call — ideal for automated provisioning. Sets the inbound and/or outbound mode and REPLACES the scope’s own rules for any direction you include. Rules created here are fail-closed (an empty allowlist denies all). Omitted directions are left untouched. Requires an account-wide API key.
PUT
/
v1
/
policy
Replace correspondent policy
curl --request PUT \
--url https://api.openmail.sh/v1/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inbound": {
"rules": [
{
"value": "<string>"
}
]
},
"outbound": {
"rules": [
{
"value": "<string>"
}
]
}
}
'import requests
url = "https://api.openmail.sh/v1/policy"
payload = {
"inbound": { "rules": [{ "value": "<string>" }] },
"outbound": { "rules": [{ "value": "<string>" }] }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inbound: {rules: [{value: '<string>'}]},
outbound: {rules: [{value: '<string>'}]}
})
};
fetch('https://api.openmail.sh/v1/policy', 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.openmail.sh/v1/policy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'inbound' => [
'rules' => [
[
'value' => '<string>'
]
]
],
'outbound' => [
'rules' => [
[
'value' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.openmail.sh/v1/policy"
payload := strings.NewReader("{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.openmail.sh/v1/policy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openmail.sh/v1/policy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n },\n \"outbound\": {\n \"rules\": [\n {\n \"value\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Confine the operation to one pod's policy. Accepts the pod ID. Mutually exclusive with inboxId.
Confine the operation to one inbox's policy. Mutually exclusive with podId.
Body
application/json
Response
The resulting policy for the scope
The resulting policy for the scope
Was this page helpful?
⌘I