curl --request POST \
--url https://{host}/v1/process/erstkontakt/mailbox/ablegen \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"senders": [
"<string>"
],
"uids": [
"<string>"
],
"dry_run": false,
"quelle": "inbox",
"ziel": "archiv"
}
'import requests
url = "https://{host}/v1/process/erstkontakt/mailbox/ablegen"
payload = {
"senders": ["<string>"],
"uids": ["<string>"],
"dry_run": False,
"quelle": "inbox",
"ziel": "archiv"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
senders: ['<string>'],
uids: ['<string>'],
dry_run: false,
quelle: 'inbox',
ziel: 'archiv'
})
};
fetch('https://{host}/v1/process/erstkontakt/mailbox/ablegen', 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://{host}/v1/process/erstkontakt/mailbox/ablegen",
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([
'senders' => [
'<string>'
],
'uids' => [
'<string>'
],
'dry_run' => false,
'quelle' => 'inbox',
'ziel' => 'archiv'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://{host}/v1/process/erstkontakt/mailbox/ablegen"
payload := strings.NewReader("{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://{host}/v1/process/erstkontakt/mailbox/ablegen")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/v1/process/erstkontakt/mailbox/ablegen")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}"
response = http.request(request)
puts response.read_body{
"dry_run": true,
"folder": "<string>",
"target": "<string>",
"moved": [
{
"uid": "<string>",
"from": "<string>",
"date": "<string>",
"subject": "<string>"
}
],
"failed": [
{
"uid": "<string>",
"from": "<string>",
"date": "<string>",
"subject": "<string>",
"error": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Post Mailbox Ablegen
File handled mails from one folder into another - by default from
the inbox to the archive, for replies the reconciliation deliberately
left there (unclear or unattributable confirmations) once a human has
acted on them. quelle/ziel name the folders by role (inbox,
wiedervorlage, zugeordnet, archiv), e.g. Wiedervorlage → Zugeordnet
for mails whose partner has since been attributed.
curl --request POST \
--url https://{host}/v1/process/erstkontakt/mailbox/ablegen \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"senders": [
"<string>"
],
"uids": [
"<string>"
],
"dry_run": false,
"quelle": "inbox",
"ziel": "archiv"
}
'import requests
url = "https://{host}/v1/process/erstkontakt/mailbox/ablegen"
payload = {
"senders": ["<string>"],
"uids": ["<string>"],
"dry_run": False,
"quelle": "inbox",
"ziel": "archiv"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
senders: ['<string>'],
uids: ['<string>'],
dry_run: false,
quelle: 'inbox',
ziel: 'archiv'
})
};
fetch('https://{host}/v1/process/erstkontakt/mailbox/ablegen', 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://{host}/v1/process/erstkontakt/mailbox/ablegen",
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([
'senders' => [
'<string>'
],
'uids' => [
'<string>'
],
'dry_run' => false,
'quelle' => 'inbox',
'ziel' => 'archiv'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://{host}/v1/process/erstkontakt/mailbox/ablegen"
payload := strings.NewReader("{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://{host}/v1/process/erstkontakt/mailbox/ablegen")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/v1/process/erstkontakt/mailbox/ablegen")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"senders\": [\n \"<string>\"\n ],\n \"uids\": [\n \"<string>\"\n ],\n \"dry_run\": false,\n \"quelle\": \"inbox\",\n \"ziel\": \"archiv\"\n}"
response = http.request(request)
puts response.read_body{
"dry_run": true,
"folder": "<string>",
"target": "<string>",
"moved": [
{
"uid": "<string>",
"from": "<string>",
"date": "<string>",
"subject": "<string>"
}
],
"failed": [
{
"uid": "<string>",
"from": "<string>",
"date": "<string>",
"subject": "<string>",
"error": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Body
File handled mails from one folder into another.
Unclear or unattributable confirmations are deliberately left in the
inbox until a human decided; once decided, this moves them out. Name
the mails by sender address and/or IMAP UID - an empty selection is
refused. dry_run lists the matches without moving anything.
quelle and ziel name the folders by role; the default is
inbox → archiv, a resolved Wiedervorlage goes wiedervorlage →
zugeordnet (partner attributed) or → archiv.
Sender addresses whose mails to file (case-insensitive, exact match)
IMAP UIDs of individual mails in the source folder
Source folder by role
inbox, wiedervorlage, zugeordnet, archiv Destination folder by role
inbox, wiedervorlage, zugeordnet, archiv Response
Successful Response
Source folder (IMAP name)
Destination folder (IMAP name)
Mails filed now (with dry_run: the mails that would be)
Show child attributes
Show child attributes
Matches whose IMAP move failed - logged, left in place
Show child attributes
Show child attributes