---
title: "Get Upcoming Reviews"
method: GET
path: "/reviews/upcoming"
tags: ["reviews"]
---

# Get Upcoming Reviews

`GET /reviews/upcoming`

The company's review schedule: one row per active vendor, carrying its
last completed review, its inherent risk and assignees, the next assessment
date derived from its `review` key dates, and whether the last one went by
unassessed.

Every active vendor is a row, not just the ones with a date scheduled —
"which vendors have fallen off the calendar" is as much of the question as
"what is coming up", and a vendor with no review key date has no other way
to surface. Rows are ordered overdue-first, then soonest, then undated.

``entity_type`` scopes the schedule to the active view mode's relationships,
as on ``GET /vendors/options`` — the sibling views scope by review type, but
a row here is a vendor, so the mode's entity scope is what separates Vendor
Management from Fintech Partners.

Unpaginated, like `GET /vendors/options` and `GET
/thirdparties/key-dates/all`: the scope is one row per active vendor, and
the column the view is read by — the next assessment date — is a per-key-date
recurrence computed in Python, so it can't be ordered or paged in SQL.

## Query parameters

- `entity_type` EntityType[], nullable

## Response `200`

Successful Response

- UpcomingReviewResponse[]
  - `vendor_id` string, uuid, required
  - `vendor_name` string, required
  - `vendor_website` string, nullable
  - `inherent_risk` VendorOptionRiskSummary — Canonical-option fields a badge needs (inherent risk or lifecycle status).
    - `option_id` string, uuid, required
    - `label` string, required
    - `hex_color` string, nullable
    - `order_index` integer, nullable
  - `assignments` VendorAssignmentResponse[]
    - `assignment_id` string, uuid, required
    - `vendor_company_id` string, uuid, required
    - `user_id` string, uuid, required
    - `user_first_name` string, required
    - `user_last_name` string, required
    - `email_address` string, required
  - `last_review_id` string, uuid, nullable
  - `last_review_started_at` string, date-time, nullable
  - `last_review_completed_at` string, date-time, nullable
  - `active_review_id` string, uuid, nullable
  - `active_review_started_at` string, date-time, nullable
  - `next_assessment_date` string, date, nullable
  - `next_assessment_key_date_id` string, uuid, nullable
  - `next_assessment_label` string, nullable
  - `missed_assessment_date` string, date, nullable
  - `missed_assessment_label` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/425d5b8a3c17/schema)
