---
title: "Rate a response"
method: POST
path: "/responses/{id}/rate"
tags: ["Responses"]
---

# Rate a response

`POST /responses/{id}/rate`

## Request

- Base URL: `https://api.pickfu.com/v1`
- URL: `https://api.pickfu.com/v1/responses/{id}/rate`
- Auth: HTTP bearer

Marks an individual respondent comment as helpful or not_helpful.

Calling this with `rating: "helpful"` records a positive vote.

Calling with `rating: "not_helpful"` flags the response as low-quality. For non-admin users this counts against a per-survey flag cap. Free (pay-as-you-go) survey owners may flag up to 10% of the sample size (rounded up); subscribed (PickFu+/Enterprise) owners have no cap. Returns 409 when the cap is exceeded. When the cap is not exceeded the response — and, on multi-question surveys, all responses from the same respondent — is automatically marked as rejected, the survey's valid-answer count is recalculated, and a previously completed survey may be reopened to collect replacement responses.

The endpoint is upserting: re-rating the same response replaces the previous rating and preserves any existing `comment` when one is not re-supplied. Switching a previous `not_helpful` rating to `helpful` records the new vote but does NOT un-reject the answer that was auto-rejected by the prior flag.

Use `DELETE /v1/responses/{id}/rate` to remove a rating; note that DELETE does NOT un-reject an answer that was rejected by a prior `not_helpful` rating, and removing a flag does free up cap space — repeatedly flagging then deleting can reject more answers than the cap allows without tripping it.

## Path parameters

- `id` string, required

## Request body

- object
  - `rating` 'helpful' | 'not_helpful', required: Whether the response was helpful or not. "not_helpful" flags the response as low-quality and may auto-reject it; see endpoint description for the full effect.
  - `comment` string: Optional reason or note attached to the rating.

## Response `200`

Default Response

- object
  - `success` boolean
  - `data` object
    - `id` string: Response GUID
    - `rating` 'helpful' | 'not_helpful': The rating that was applied
    - `comment` string, nullable

## Other responses

- `400`: Default Response
- `401`: Default Response
- `403`: Default Response
- `404`: Default Response
- `409`: Default Response
- `422`: Default Response

---

[API](https://skmtc.dev/pickfu/apis/pickfu-api.md) · [All operations](https://skmtc.dev/pickfu/apis/pickfu-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pickfu/apis/pickfu-api/revisions/919fc58413ea?raw)
