# The lifecycle of a unit, newest first

> `GET /batteries/{batteryId}/lifecycle-events` · Scope: `read` · operationId `listLifecycleEvents`

Any member. Events recorded by members, service-partner reports, condition updates and second life.

## Pfad-Parameter

- **batteryId** `string (uuid)` (erforderlich)

## Query-Parameter

- **limit** `integer` (Standard: 50): Maximum number of items to return.
- **cursor** `string`: Opaque cursor from a previous page's `next_cursor`.

## Antworten

### 200 (`application/json`)

A page of events.

- **items** `LifecycleEvent[]` (erforderlich)
  - **api_key** `ApiKeyRef`: An organisation API key (ADR-017) that reported an event (source `api`) or staged an import (ADR-026).
  - **battery_id** `string (uuid)` (erforderlich)
  - **created_at** `string (date-time)` (erforderlich)
  - **description** `string`
  - **evidence** `EvidenceRef[]` (erforderlich)
  - **field_keys** `string[]` (erforderlich): The condition fields this event updated.
  - **id** `string (uuid)` (erforderlich)
  - **occurred_on** `string (date)` (erforderlich)
  - **partner** `ServicePartnerRef`
  - **related_battery_id** `string (uuid)`: Second life: the successor (on the predecessor's event) or the predecessor (on the successor's).
  - **related_serial_number** `string`
  - **reported_by** `UserRef`
  - **source** `string` (erforderlich, einer von: `manual`, `supplier`, `api`, `system`): `manual` (a member), `supplier` (a service-partner link), `api` (an API key, M7), `system`.
  - **type** `string` (erforderlich, einer von: `placed_on_market`, `put_into_service`, `inspection`, `repair`, `component_replaced`, `condition_update`, `repurposed`, `reused`, `remanufactured`, `waste`, `recycled`, `custom`): What happened to a unit. `condition_update` is recorded by condition updates, `repurposed`, `reused` and `remanufactured` by `createSecondLifeBattery`; the others are reported.
- **next_cursor** `string | null` (erforderlich): Cursor for the next page, or null when this is the last page.

### 400 (`application/problem+json`)

The request is malformed or failed validation (`validation_error`), or a token is invalid or expired (`invalid_token`).

### 401 (`application/problem+json`)

The API key is missing, unknown or revoked (`unauthenticated`).

### 403 (`application/problem+json`)

The API key may not perform this action (`forbidden`): it lacks the operation's scope, or the action needs more than a viewer's rights.

### 404 (`application/problem+json`)

The resource does not exist in the organisation of the API key, or the public passport is unknown (`not_found`).

### default (`application/problem+json`)

Any other problem, e.g. `internal_error`.

## Beispiel

```bash title="cURL"
curl -X GET "https://passport.kabin.sh/api/v1/batteries/{batteryId}/lifecycle-events" \
  -H "Authorization: Bearer $BATTERYPASS_API_KEY"
```
