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>"
}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. Inbox-scoped keys are rejected. A pod-scoped key may mutate its own pod or an inbox in that pod, never account-wide policy. Pod keys cannot set none or extra allows on a parent allowlist.
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
Response
The resulting policy for the scope
The resulting policy for the scope
Was this page helpful?