---
title: "List group lots"
method: GET
path: "/v1/groups/{group_id}/balances/lots"
tags: ["Groups"]
---

# List group lots

`GET /v1/groups/{group_id}/balances/lots`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/groups/{group_id}/balances/lots`
- Auth: HTTP bearer

List lots for a group wallet by asset. Only applicable to `LOT` inventory mode assets. When program_id is provided, lots are scoped to original issuer lineage for that program.
Lots are filtered by expires_after and expires_before, so this list does not accept created_after or created_before.

## Path parameters

- `group_id` string, uuid, required

## Query parameters

- `program_id` string, uuid
- `asset_id` string, uuid, required
- `status` 'AVAILABLE' | 'HELD' | 'DEFERRED' | 'CONSUMED' | 'EXPIRED'
- `expires_before` string
- `expires_after` string
- `reference_id` string
- `limit` integer
- `cursor` string

## Response `200`

List of group lots

- LotListResponse: One page of lots, with the pagination details for the next page.
  - `data` LotResponse[]: The lots on this page.
    - `amount` string: Original amount credited
    - `asset_id` string, uuid: Asset this lot belongs to
    - `created_at` string, date-time: When this lot was created
    - `expires_at` string, date-time, nullable: When this lot expires. Always present; null when the lot has no expiry
    - `id` string, uuid: The id of the lot. Use it in `lot_ids` filters.
    - `matures_at` string, date-time, nullable: When this lot becomes spendable. Always present; null when the lot has no maturity
    - `reference_id` string: Correlation ID the lot is held under, such as an authorization ID. A release clears it.
    - `remaining` string: Amount still available
    - `status` 'AVAILABLE' | 'HELD' | 'DEFERRED' | 'CONSUMED' | 'EXPIRED': Where the lot is in its lifecycle.
  - `pagination` PaginationResponse: Cursor details for a list. `has_more` says whether another page exists, and `next_cursor` is the value to send to get it.
    - `has_more` boolean, required: Whether more results are available beyond this page
    - `next_cursor` string, nullable, required: Cursor to fetch the next page. Null on the last page

## Other responses

- `400`: Invalid query parameters (code: validation_error)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `404`: Group, program, or asset not found (code: group_not_found | program_not_found | asset_not_found)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

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