---
title: "/review-cycles/:reviewCycleId/tasks/:id/sign"
method: PUT
path: "/review-cycles/{reviewCycleId}/tasks/{id}/sign"
---

# /review-cycles/:reviewCycleId/tasks/:id/sign

`PUT /review-cycles/{reviewCycleId}/tasks/{id}/sign`

## Request

- Base URL: `https://subdomain.workable.com/spi/v3`
- URL: `https://subdomain.workable.com/spi/v3/review-cycles/{reviewCycleId}/tasks/{id}/sign`
- Auth: API key in header `Authorization`

Signs a shared review aggregate on behalf of the caller, as the reviewee or as the manager. Required scope: `w_reviews`. Requires a user token, or an account token with `member_id`, whose employee is the reviewee or the aggregate's manager (an account token without `member_id` gets `403`). No request body.

The cycle must have signing enabled (a sign deadline) and must not be archived; the aggregate must already be shared and not yet signed by the caller; signing is rejected after the sign deadline and, when the cycle requires an employee meeting, until a meeting is scheduled. The aggregate becomes `signed` once both the reviewee and the manager have signed.

## Path parameters

- `reviewCycleId` string, required
- `id` string, required

## Query parameters

- `member_id` string

## Response `200`

200

- object
  - `id` string: Review aggregate (task) id
  - `status` 'not_ready' | 'draft' | 'ready': Preparation (form customization) status
  - `state` 'not_started' | 'in_progress' | 'shared' | 'signed'
  - `review_cycle` object
    - `id` string
    - `name` string
    - `state` string
    - `customization_start_date` string, date-time, nullable
    - `customization_end_date` string, date-time, nullable
  - `reviewee` object
    - `id` string
    - `name` string
  - `manager` object, nullable
    - `id` string
    - `name` string
  - `reviews` object[]
    - `review` object
      - `id` string: Review id
      - `type` 'self' | 'manager' | 'peer' | 'upwards'
      - `status` 'draft' | 'ready': Preparation status of the review form
      - `master_template_id` string, nullable: Master template configured on the cycle for this review type
      - `follower_template_id` string, nullable: Per-employee customized (follower) template id, `null` when the master template is used
      - `update_form_url` string: Relative URL of the form endpoint for this review
      - `state` 'not_started' | 'draft' | 'submitted'
      - `submit_deadline` string, date-time, nullable
      - `share_deadline` string, date-time, nullable
      - `write_url` string, nullable: Relative URL to submit answers; only set when the caller is the reviewer and the review is not yet submitted
    - `questionnaire` object
      - `template_id` string, nullable
      - `overall_rating` number, nullable
      - `sections` object[]
        - `id` string
        - `name` string
        - `rating` number, nullable
        - `questions` object[]
          - `id` string
          - `body` string
          - `position` integer
          - `section_id` string
          - `answer` string, nullable
          - `type` string
          - `metadata` object
          - `choices` string[]: Selected choices (labels when the question defines choice labels)

## Other responses

- `400`: 400
- `401`: 401
- `403`: 403
- `404`: 404

## Changes

- **2026-11-03** `13ad2e8e2ee9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/workable/apis/account-root/changes/review-cycles/:reviewCycleId/tasks/:id/sign/put.md)

---

[API](https://skmtc.dev/workable/apis/account-root.md) - [All operations](https://skmtc.dev/workable/apis/account-root/llms.txt) - [OpenAPI document](https://skmtc.dev/workable/apis/account-root/revisions/13ad2e8e2ee9?raw)
