---
title: "Read work for one product"
method: GET
path: "/v1/products/{productId}/work"
tags: ["Product objects"]
---

# Read work for one product

`GET /v1/products/{productId}/work`

## Request

- Base URL: `https://hyperscale0.ai`
- URL: `https://hyperscale0.ai/v1/products/{productId}/work`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Returns due human work and facts waiting on a customer, provider or clock. Counts cover the authorized product when complete, and are unknown when more candidates remain.

## Path parameters

- `productId` string, required: Hyperscale product ID

## Query parameters

- `cursor` string
- `limit` integer: Maximum items to return (1-100). Defaults to 50 when omitted.

## Headers

- `X-Hyperscale-Environment` 'sandbox' | 'live'

## Response `200`

Success

- ProductWorkListOutput
  - `effectiveAt` string, date-time, required
  - `items` object[], required
    - `object` object, required
      - `kind` string, required
      - `objectId` string, required
    - `recordTitle` string, required
    - `agreement` object
      - `instanceId` string, required
    - `lane` 'needs_human' | 'waiting_customer' | 'waiting_provider' | 'waiting_clock', required
    - `reason` string, required
    - `responsibleRole` string, required
    - `staffRole` 'credit_underwriter': The tenant staff role the decision is authored for. Only a member whose role grants its permission sees the item.
    - `customer` object: The customer who owns the record, on human work.
      - `name` string, required
      - `customerId` string
    - `amount` object: On human work, the money the decision is about, in minor units: what the action moves, or the agreement's first money term when it moves nothing, such as a requested limit.
      - `value` string, required: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
      - `currency` 'SAR', required
    - `requestedAt` string, date-time: On human work, when the agreement was opened on its product's clock, which for a request is when the customer asked.
    - `dueAt` string, date-time
    - `evidenceReference` string
    - `action` object
      - `name` string, required
      - `title` string, required
      - `attachment` string, required
      - `instanceId` string, required
  - `complete` boolean, required
  - `unavailable` string[], required
  - `counts` object, required
    - `needsHuman` integer, nullable, required
    - `waitingCustomer` integer, nullable, required
    - `waitingProvider` integer, nullable, required
    - `waitingClock` integer, nullable, required
  - `nextCursor` string

## Other responses

- `default`: ErrorResponse. See x-error-codes and x-errors for codes, HTTP statuses and retry guidance.

---

[API](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api.md) · [All operations](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/revisions/e9e8faa044d5?raw)
