API Reference
API Reference

/review-cycles/:reviewCycleId/tasks/:id/share

Shares an employee's performance review with them. Required scope: w_reviews.

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

This endpoint uses the w_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 share is recorded against that member). An account token without member_id gets 403 Account tokens need a member_id for this operation. The caller must be one of the following:

  • the aggregate's manager
  • someone above the reviewee or the manager in the reporting line
  • a member with permission to manage review cycles. If the reviewee also has that permission, the caller must additionally be in the reviewee's or the manager's reporting line

Shares the review aggregate with the reviewee. The aggregate is the whole set of the employee's reviews in the cycle. After sharing, the reviewee is asked to sign (when signing is enabled) and a performance meeting can be scheduled. There is no request body.

Preconditions:

  • The aggregate is not already shared, and the cycle is not archived.
  • If the cycle has a share start date, it must have passed.
  • If the cycle has no share start date, the manager review must be submitted. In cycles without a manager review, at least one peer or upward review must be submitted instead.
  • Callers without the review cycle management permission can share only while the cycle is active or within the share deadline. Members with that permission are exempt from the cycle-state and deadline checks.

Results

Returns 200 with the updated employee aggregate. The shape is the same as GET /review-cycles/:reviewCycleId/employees/:employeeId, and reviews contains only the reviews visible to the caller.

{
  "id": "4d3",
  "status": "ready",
  "state": "shared",
  "review_cycle": {
    "id": "4d3",
    "name": "Annual Review 2024",
    "state": "active",
    "customization_start_date": "2024-10-01T00:00:00.000Z",
    "customization_end_date": "2024-10-15T00:00:00.000Z"
  },
  "reviewee": {
    "id": "4d4",
    "name": "Jane Doe"
  },
  "manager": {
    "id": "4d3",
    "name": "John Smith"
  },
  "reviews": [
    {
      "review": {
        "id": "4d4",
        "type": "manager",
        "status": "ready",
        "master_template_id": "1001",
        "follower_template_id": null,
        "update_form_url": "/spi/v3/review-cycles/4d3/tasks/4d3/forms/manager",
        "state": "submitted",
        "submit_deadline": "2024-11-20T00:00:00.000Z",
        "share_deadline": "2024-11-25T00:00:00.000Z",
        "write_url": null
      },
      "questionnaire": {
        "template_id": "2",
        "overall_rating": 4,
        "sections": [
          {
            "id": "2501299e-4332-59e9-8979-93bdc5aceaa9",
            "name": "<p>Goals</p>",
            "rating": 4,
            "questions": [
              {
                "id": "2501297d-e22b-5f57-bbeb-21490ee0c212",
                "body": "<p>What progress has the employee made toward their goals?</p>",
                "position": 0,
                "section_id": "2501299e-4332-59e9-8979-93bdc5aceaa9",
                "answer": "Delivered three major projects on time.",
                "type": "paragraph"
              }
            ]
          }
        ]
      }
    }
  ]
}
keytypedescription
idstringReview aggregate (task) id
statusstringPreparation status: not_ready, draft or ready
statestringnot_started, in_progress, shared or signed
review_cycleobjectid, name, state, customization_start_date, customization_end_date
revieweeobjectid, name
managerobjectid, name, or null
reviewsarrayReviews with their questionnaires and answers

Error responses

All business-rule errors return {"message": "...", "code": "..."}.

StatusCondition
400review_aggregate.already_shared: the aggregate is already shared
400review_aggregate.share_in_archived_review_cycle: the cycle is archived
400review_aggregate.share_before_share_start_date: the share start date has not been reached
400review_aggregate.cannot_be_shared: the manager review (or a peer/upward review, for cycles without a manager review) is not submitted
400review_aggregate.share_in_inactive_review_cycle: the cycle is not active and the share deadline has passed (non-admins)
400review_aggregate.share_after_share_deadline: the share deadline has passed (non-admins)
401Missing or invalid token
403Missing w_reviews scope, account token without member_id, or the caller cannot share this aggregate
404{"message": "Review aggregate not found"}: the task does not exist, is deleted, or belongs to a different review cycle
Path Params
string
required

Review cycle id

string
required

Task (review aggregate) id, as returned in preparation_tasks[].id / active_tasks[].id of GET /review-cycles/:reviewCycleId/tasks

Query Params
string

Required when using an account token: the member (SPI key, from GET /members) on whose behalf the aggregate is shared. 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