A valid request URL is required to generate request examples{
"voted": true
}{
"voted": true
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Vote for a post
One person, one post, once. The pair is a primary key, so a double-clicked button writes one row and announces feedback_vote.cast once — a second call answers 200 and publishes nothing.
It needs a verified session and refuses an anonymous one (403 identity_required): the widget mints a session per page load, so a board that counted those would be counting reloads, and this ranking is what a roadmap gets decided from.
A merged post cannot be voted for — its votes have already moved, so the vote would count nowhere.
The fact carries the post and the contact and stops there. It does not carry the weight: that is derived from your subscription mirror, it lives on the staff read alone, and a webhook carrying it would hand a customer’s revenue to anybody who can add an endpoint.
A valid request URL is required to generate request examples{
"voted": true
}{
"voted": true
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}