Спасибо, проблема решена! Нет, так как в документации к API поле archetype не было указано как обязательное (даже не «обязательно для личных сообщений», как target_usernames), и не было никаких пояснений о его назначении, я не стал его трогать.
В любом случае, теперь всё работает. Для справки всем, кто столкнётся с той же проблемой (особенно при использовании POST), вот элементы тела запроса в формате JSON, которые использовались в моём рабочем запросе:
| ключ | значение |
|---|---|
| raw | исходный текст сообщения |
| title | заголовок сообщения/ветки |
| target_usernames | список имён пользователей через запятую |
| archetype | буквальная строка private_message |
Это отправляется как тело POST-запроса к /posts.json с пользовательскими заголовками:
| ключ | значение |
|---|---|
| Content-Type | application/json; charset=UTF-8 |
| Api-Key | данные ключа |
| Api-Username | имя пользователя |