API Reference
API Reference

/review-cycles/:reviewCycleId/answers

Returns the question answers of the reviews in a performance review cycle. Required scope: r_reviews.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
🚧

This endpoint uses the r_reviews scope, which must be enabled through the Integrations section found within the Settings menu.

Requires a user token, or an account token together with the member_id query parameter (the request is then evaluated with that member's permissions). An account token without member_id gets 403 Account tokens need a member_id for this operation. member_id is ignored for user tokens.

The member must be able to view review cycles: either through the View review cycles permission (global or scoped role), or through View employee directory in an account with performance reviews enabled. The cycle itself must be visible to the member (see GET /review-cycles); otherwise 404.

Each item is a single answer to a single question. Results are scoped to what the member can see:

  • Members with the global View review cycles permission see answers from every review in the cycle.
  • Members with a scoped View review cycles role see answers of employees within their scope, plus the answers they can access as an employee.
  • All other members see only submitted reviews they can access as an employee: their own reviews and those of their reports. Manager, peer and upward reviews about themselves become visible only once the review has been shared.

Reviewers of anonymous reviews are redacted to {"id": null, "name": "Anonymous"}.

Query parameters

ParameterTypeDescription
limitintegerMaximum number of answers to return. Default 50, maximum 200
offsetintegerNumber of answers to skip. Default 0
question_idsarrayFilter by question id (UUID), e.g. question_ids[]=<uuid>
review_typesarrayFilter by review type, e.g. review_types[]=manager. Allowed: self, manager, peer, upwards
employee_idsarrayFilter by reviewee employee SPI key, e.g. employee_ids[]=4d4
include_draftsbooleanAlso include answers of reviews that are not yet submitted. Default false. Has no effect for members without the View review cycles permission

Results

{
  "total_count": 2,
  "answers": [
    {
      "id": "5a1",
      "review_id": "4d3",
      "review_type": "self",
      "question_id": "25012946-72fb-5069-8797-6b5ccc2912dd",
      "question_type": "Paragraph",
      "answer": "I delivered three major projects on time and improved our release process.",
      "choices": [],
      "created_at": "2024-11-05T09:30:00.000Z",
      "updated_at": "2024-11-06T14:12:00.000Z",
      "employee": {
        "id": "4d4",
        "name": "Doe, Jane"
      },
      "reviewer": {
        "id": "4d4",
        "name": "Doe, Jane"
      }
    },
    {
      "id": "5a2",
      "review_id": "4d3",
      "review_type": "self",
      "question_id": "2501297b-1920-5e4c-b21b-fc3caf56b335",
      "question_type": "NumericRated",
      "answer": null,
      "choices": [
        "4"
      ],
      "created_at": "2024-11-05T09:30:00.000Z",
      "updated_at": "2024-11-06T14:12:00.000Z",
      "employee": {
        "id": "4d4",
        "name": "Doe, Jane"
      },
      "reviewer": {
        "id": "4d4",
        "name": "Doe, Jane"
      }
    }
  ]
}
keytypedescription
total_countintegerTotal number of answers matching the filters
answersarrayPage of answers, ordered by id
answers[].idstringAnswer SPI key
answers[].review_idstringSPI key of the review the answer belongs to
answers[].review_typestringOne of: self, manager, peer, upwards
answers[].question_idstringQuestion id (UUID), matching the ids in the review questionnaire
answers[].question_typestringQuestion type in PascalCase. One of: Paragraph, ParagraphStarRated, ParagraphNumericRated, ParagraphCustomRated, SingleChoice, MultipleChoice, StarRated, NumericRated, CustomRated
answers[].answerstring | nullFree-text answer
answers[].choicesarray | nullSelected choice keys, or the selected rating value for rating questions
answers[].created_atstringISO 8601 creation timestamp
answers[].updated_atstringISO 8601 last update timestamp
answers[].employeeobject | nullThe reviewee: id (SPI key) and name (Lastname, Firstname)
answers[].reviewerobject | nullThe reviewer: id (SPI key, null for anonymous reviews) and name (Anonymous for anonymous reviews)

Error responses

Error bodies come in three shapes. 400 validation errors are a JSON object keyed by the invalid parameter, e.g. {"limit": {"code": "number.max", "message": "\"limit\" must be less than or equal to 200"}}. 401 and 403 are plain-text bodies, e.g. Required scopes missing: ["r_reviews"], or Forbidden when the member lacks permission. 404 is JSON, e.g. {"message": "Review cycle not found"}.

StatusCondition
400Invalid path or query parameter (for example limit above 200, a non-UUID question_ids entry, or an unknown review type)
401Missing or invalid token
403Missing r_reviews scope, account token without member_id, or the member cannot view review cycles
404The review cycle does not exist, is archived or deleted, or is not visible to the member
Path Params
string
required

Review cycle SPI key (hexadecimal)

Query Params
integer
1 to 200
Defaults to 50

Maximum number of answers to return (1-200).

integer
≥ 0
Defaults to 0

Number of answers to skip.

question_ids
array of uuids

Filter by one or more question ids (UUIDs), e.g. question_ids[]=<uuid>.

question_ids
review_types
array of strings

Filter by one or more review types, e.g. review_types[]=manager.

review_types
Allowed:
employee_ids
array of strings

Filter by one or more reviewee employee SPI keys, e.g. employee_ids[]=4d4.

employee_ids
boolean
Defaults to false

Also include answers of reviews that are not yet submitted. Only effective for callers with the View review cycles permission (for scoped admins, only for employees within their scope).

string

Required when using an account token: the member (SPI key, from GET /members) to act as. The request is evaluated with that member's permissions; without it the request gets 403. Ignored for user tokens.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/plain