---
title: "Each supplier's latest request and its number of open requests"
method: GET
path: "/supplier-portal/supplier-statuses"
tags: ["Supplier portal"]
---

# Each supplier's latest request and its number of open requests

`GET /supplier-portal/supplier-statuses`

## Response `200`

Per-supplier request status

- SupplierPortalSupplierStatusListResponse
  - `data` object, required
    - `items` SupplierPortalSupplierStatus[], required
      - `latest` SupplierPortalRequestSummary, required
        - `acceptedAt` string, date-time, nullable, required
        - `cancelledAt` string, date-time, nullable, required
        - `contactEmail` string, required
        - `contactName` string, required
        - `dueDate` string, date, nullable, required
        - `emailStatus` 'pending' | 'sent' | 'logged' | 'failed' | 'self', required — Outcome of GreenTally's email: pending, sent, logged (no relay configured) or failed; "self" when the customer sent the link from their own mailbox (no email from Core). After a self reminder it still describes the last GreenTally email.
        - `expiresAt` string, date-time, required
        - `id` string, required
        - `lastRemindedAt` string, date-time, nullable, required
        - `nextReminderAt` string, date-time, nullable, required — Earliest time a GreenTally reminder may go out: one calendar month after the last email GreenTally sent (the initial send or a reminder; self-delivered sends do not count). When GreenTally sent none it is the request's sentAt, so a reminder is allowed now. Null when the stored status takes no reminder (submitted, accepted, cancelled). May lie in the past, meaning a reminder is allowed now. A self reminder is never capped.
        - `openedAt` string, date-time, nullable, required
        - `pendingSubmissionId` string, required — Empty unless the latest submission awaits review.
        - `periodEnd` string, date, required
        - `periodStart` string, date, required
        - `reminderCount` integer, required
        - `sections` SupplierPortalSections, required
          - `activityData` boolean, required
          - `allocation` boolean, required
          - `evidenceFiles` boolean, required
          - `productFootprint` boolean, required
          - `sbtiStatus` boolean, required
        - `sentAt` string, date-time, required
        - `status` 'sent' | 'opened' | 'submitted' | 'returned' | 'accepted' | 'cancelled' | 'expired', required
        - `submittedAt` string, date-time, nullable, required
        - `supplierId` string, required
        - `supplierName` string, required
      - `openRequests` integer, required
      - `supplierId` string, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

## Changes

- **2026-10-05** `04eabb8ebb47` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greentally/apis/esgai-api/changes/supplier-portal/supplier-statuses/get.md)

---

[API](https://skmtc.dev/greentally/apis/esgai-api.md) · [All operations](https://skmtc.dev/greentally/apis/esgai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/greentally/apis/esgai-api/revisions/461a0ebc7731?raw)
