Under each knowledge base article, readers can say whether it helped and leave a message. The API lists these ratings, so you can pull feedback into your own reports or tools. Each article's totals are also in its rating_positive and rating_negative fields (see KB Articles).
Examples use your token in $TENDER_TOKEN (see Authentication).
List ratings
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/ratings
{
"faq_ratings": [
{
"user_id": 14,
"user_token": null,
"faq_id": 11,
"version": 1,
"created_at": "2026-10-09T06:47:14Z",
"rating": -1,
"body": "Reconnecting didn't bring back tasks that were already due. Is there a way to resync everything?",
"updated_at": "2026-10-09T06:47:14Z",
"discussion_id": 20
},
{
"user_id": 16,
"user_token": null,
"faq_id": 8,
"version": 1,
"created_at": "2026-10-09T06:47:14Z",
"rating": 1,
"body": "",
"updated_at": "2026-10-09T06:47:14Z",
"discussion_id": null
}
],
"offset": 0,
"total": 4,
"per_page": 30
}
Newest ratings come first, 30 to a page (?page=2 for the next). Ratings Tender caught as spam aren't listed.
Ratings of one article
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/ratings/11
The number is the article's id. You get a 404 if there's no such article.
What a rating contains
| Field | What it is |
|---|---|
faq_id |
The article that was rated. Its API address is /faqs/<faq_id>. |
version |
The article's version when it was rated, so you can tell feedback on old text from feedback on new. |
rating |
1 if it helped, -1 if it didn't. |
body |
The reader's message. Empty when they left none. |
user_id |
The reader, if they were logged in. Their API address is /users/<user_id>. |
user_token |
For a reader who wasn't logged in: a token that stays the same for the same visitor, so you can tell their ratings apart. |
discussion_id |
The discussion their message started, if any (see below), else null. |
created_at, updated_at |
When they rated. |
If you've set up feedback discussions (the Set up feedback link on your knowledge base's ratings page), each message also starts a private discussion in the category you chose, and discussion_id is that discussion. Find it with Discussions.
Rating an article through the API
You can rate an article too, but only as yourself: the token's owner is recorded as the reader. That makes it useful for leaving feedback on behalf of your team, not for importing other people's ratings. It needs a token with Read and write access.
POST the article's id as faq_id, a rating and, if you like, a reason:
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"faq_id":18,"rating":"down","reason":"Doesn'"'"'t say whether shared links expire."}' \
https://api.tenderapp.com/yoursite/ratings
{}
ratingis"up"or1for helpful. Anything else counts as not helpful.reasonbecomes the rating'sbody, up to 2000 characters. With feedback discussions set up, it starts a discussion like a reader's message does.- The rating counts in the article's
rating_positiveorrating_negative. - You can also put the article's id in the address:
POST /ratings/18.
Each person can rate each version of an article once. Rating the same version again gets a 422:
{
"user_id": ["Already rated this version"]
}
Leaving out faq_id makes the request fail with an error, so always send it.
