---
title: "Get user NEPT unlocks"
method: GET
path: "/api/v1/users/{address}/nept/unlocks"
tags: ["User"]
---

# Get user NEPT unlocks

`GET /api/v1/users/{address}/nept/unlocks`

## Path parameters

- `address` string, required — The user account address

## Query parameters

- `with_text` boolean — Include text variation fields
- `with_value` boolean — Calculate and include USD values for amounts, where applicable
- `with_percent` boolean — Calculate and include proportional percentages, where applicable

## Response `200`

Success response

- UserNeptUnlockOverviewObjResponse
  - `data` UserNeptUnlockOverview, required
    - `arrangements` UserNeptUnlockArrangement[], required — A list of the user's active unlock arrangements
      - `begins_at` string, date-time, required — The time at which the unlock begins
      - `schedule` union, required
        - object
          - `kind` 'linear', required
          - `duration` integer, required — The duration of the unlock in seconds
          - `ends_at` string, date-time, required — The time at which the unlock has/was/would've completed. This is identical to `begins_at + duration`. This timestamp will remain valid even if the unlock has been reclaimed. Therefore, it should not be used as a validity check.
          - `extra` object, required
            - `text` object, nullable, required — Human-readable field variants. Will not be null when query param `with_text` is `true`.
              - …
        - object
          - `kind` 'lump_sum', required
      - `last_claimed_at` string, date-time, nullable, required — The time at which the unlock was last claimed, if any
      - `expires_at` string, date-time, nullable, required — The time at which the unlock expires, if any
      - `admin` UserNeptUnlockArrangementAdmin, required
        - `address` string, required — The address of the unlock arrangement's admin
        - `issued_reclaim` boolean, required — True if the admin his issued a reclaim on the unlock arrangement
      - `extra` object, required
        - `text` object, nullable, required — Human-readable field variants. Will not be null when query param `with_text` is `true`.
          - `expires_at` string, required
          - `begins_at` string, required
          - `last_claimed_at` string, required
      - `amounts` UserNeptUnlockAmounts, required
        - `amount` string, required — The full unlock amount This value is immutable and does not change with regards to expiry/reclamation/lock states.
        - `claimed` string, required — The amount that has already been successfully claimed by the user.
        - `claimable` string, required — The amount currently claimable This takes into account: reclamation, lock state, expiry, and previously claimed. In other words, this is an accurate representation of what the user can currently claim.
        - `locked` string, required — The total amount of NEPT currently awaiting unlock **NOTE:** any reclaimed unlocks are excluded from the total, regardless of how much the user had claimed prior to reclamation.
        - `expired` string, required — The amount that was claimable but has now expired due to the presence and subsequent passing of `expires_at`
        - `reclaimed` string, required — The amount that has been reclaimed from the unlock arrangement admin
        - `extra` object, required
          - `text` object, nullable, required — Human-readable field variants. Will not be null when query param `with_text` is `true`.
            - `locked` string, required
            - `claimed` string, required
            - `expired` string, required
            - `amount` string, required
            - `reclaimed` string, required
            - `claimable` string, required
          - `percent` object, nullable, required — Percentages for unlock amounts. These do not factor in the `amount_staked` or `amount_held` values. Will not be null when query param `with_percent` is `true`.
            - `claimed` string, required
            - `claimable` string, required
            - `locked` string, required
            - `expired` string, required
            - `reclaimed` string, required
            - `extra` object, required
              - …
          - `value` object, nullable, required — USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well.
            - `amount` string, required
            - `claimed` string, required
            - `reclaimed` string, required
            - `price` string, required — Price used in value calculations
            - `locked` string, required
            - `expired` string, required
            - `claimable` string, required
            - `extra` object, required
              - …
    - `totals` UserNeptUnlockAmounts, required
      - `amount` string, required — The full unlock amount This value is immutable and does not change with regards to expiry/reclamation/lock states.
      - `claimed` string, required — The amount that has already been successfully claimed by the user.
      - `claimable` string, required — The amount currently claimable This takes into account: reclamation, lock state, expiry, and previously claimed. In other words, this is an accurate representation of what the user can currently claim.
      - `locked` string, required — The total amount of NEPT currently awaiting unlock **NOTE:** any reclaimed unlocks are excluded from the total, regardless of how much the user had claimed prior to reclamation.
      - `expired` string, required — The amount that was claimable but has now expired due to the presence and subsequent passing of `expires_at`
      - `reclaimed` string, required — The amount that has been reclaimed from the unlock arrangement admin
      - `extra` object, required
        - `text` object, nullable, required — Human-readable field variants. Will not be null when query param `with_text` is `true`.
          - `locked` string, required
          - `claimed` string, required
          - `expired` string, required
          - `amount` string, required
          - `reclaimed` string, required
          - `claimable` string, required
        - `percent` object, nullable, required — Percentages for unlock amounts. These do not factor in the `amount_staked` or `amount_held` values. Will not be null when query param `with_percent` is `true`.
          - `claimed` string, required
          - `claimable` string, required
          - `locked` string, required
          - `expired` string, required
          - `reclaimed` string, required
          - `extra` object, required
            - `text` object, nullable, required — Human-readable variants of percentages for unlock amounts. Will not be null when query params `with_text` and `with_percent` are `true`.
              - …
        - `value` object, nullable, required — USD values for the corresponding amounts above. Will not be null when query param `with_value` is `true`. ### Note This variant group contains an additional `price` field (set to the number used in value calculation). The embedded text group will contain the text variant if `with_text` was specified as well.
          - `amount` string, required
          - `claimed` string, required
          - `reclaimed` string, required
          - `price` string, required — Price used in value calculations
          - `locked` string, required
          - `expired` string, required
          - `claimable` string, required
          - `extra` object, required
            - `text` object, nullable, required — Human-readable variants of USD values. Will not be null when query params `with_text` and `with_value` are `true`.
              - …
    - `last_claimed_at` string, date-time, nullable, required — The time at which the most recent unlock claim occurred, if any
    - `extra` object, required
      - `text` object, nullable, required — Human-readable field variants. Will not be null when query param `with_text` is `true`.
        - `last_claimed_at` string, required
  - `error` unknown, required
  - `status` integer, required — HTTP status. Successful responses are guaranteed to be < `400`. Conversely, error responses are guaranteed to be >= `400`.
  - `status_text` string, required — HTTP status text

## Other responses

- `500` — Server error response
- `default`

## Changes

- **2026-04-02** `3e68b318eeaa` — 4 info
  - added the required property `data/arrangements/items/amounts/allOf[#/components/schemas/UserNeptUnlockAmounts]/extra/value/extra/text/price` to the response with the `200` status
  - added the required property `data/arrangements/items/amounts/allOf[#/components/schemas/UserNeptUnlockAmounts]/extra/value/price` to the response with the `200` status
  - added the required property `data/totals/allOf[#/components/schemas/UserNeptUnlockAmounts]/extra/value/extra/text/price` to the response with the `200` status
  - added the required property `data/totals/allOf[#/components/schemas/UserNeptUnlockAmounts]/extra/value/price` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/changes/api/v1/users/:address/nept/unlocks/get.md)

---

[API](https://skmtc.dev/cryptechdev/apis/neptune-api-v2.md) · [All operations](https://skmtc.dev/cryptechdev/apis/neptune-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cryptechdev/neptune-api-v2/revisions/05e0ec4b9b94/schema)
