KB Articles Ratings

Updated 11 Oct, 2026 08:40 PM in API

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
{}
  • rating is "up" or 1 for helpful. Anything else counts as not helpful.
  • reason becomes the rating's body, 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_positive or rating_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.

More from the knowledge base