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

# Get Upcoming Reviews

`GET /reviews/upcoming`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/reviews/upcoming`
- Auth: none declared

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: Standard-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/kobaltlabs-api.md) - [All operations](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/revisions/8587332d5e43?raw)
