POST
/v1/me/mail/messages/{id}/blockBlocks the address in the message's From, or its whole domain. The From
because that is the address on the screen. Check sender_check on
the message first: when it says unverified, the
address was probably forged and blocking it stops little.
The path takes the message's id, such as msg_trhtcshms7w2bmxr. A number
there answers 404, like a message you cannot read.
Request
curl -X POST https://api.proppertrading.com/v1/me/mail/messages/msg_trhtcshms7w2bmxr/block \
-H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9e1c3a5b-7d9f-4b1d-8e3a-5c7e9a1b3d5f" \
-d '{ "kind": "domain" }'
| Field | Description |
|---|---|
kind | address for the one address, domain for all of it |
Response
The same as blocking a sender: 201
with the new entry, or 200 with the one that was there.
{
"data": {
"id": "blk_5ws77sgyjhhkqb66",
"object": "mail_blocked_sender",
"kind": "domain",
"pattern": "amexp.com",
"author": "Mick Schmidt",
"created_at": "2026-09-25T10:14:02.000000Z",
"hits": 3,
"last_hit_at": "2026-09-25T16:40:51.000000Z"
},
"meta": { "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey" }
}
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | missing_idempotency_key | Every POST needs one |
| 400 | invalid_sender | The message has no sender address |
| 400 | own_sender | It came from one of this environment's own addresses |
| 403 | insufficient_scope | This device does not hold mail:write |
| 403 | forbidden | The account does not hold manage_mailbox |
| 404 | resource_not_found | No such message in a mailbox you can read |
| 422 | validation_failed | kind missing or not one of the two |