Skip to content
Get started

Get user NEPT unlocks

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

Get user NEPT unlocks

Path ParametersExpand Collapse
address: string

The user account address

Query ParametersExpand Collapse
with_percent: optional boolean

Calculate and include proportional percentages, where applicable

with_text: optional boolean

Include text variation fields

with_value: optional boolean

Calculate and include USD values for amounts, where applicable

ReturnsExpand Collapse
data: UserUnlockOverview { arrangements, extra, last_claimed_at, totals }
arrangements: array of object { admin, amounts, begins_at, 4 more }

A list of the user's active unlock arrangements

admin: object { address, issued_reclaim }

The admin of the unlock, if any

address: string

The address of the unlock arrangement's admin

issued_reclaim: boolean

True if the admin his issued a reclaim on the unlock arrangement

amounts: UserUnlockAmounts { amount, claimable, claimed, 4 more }

Primary unlock amount and other pre-calculated/derived amounts

amount: string

The full unlock amount

This value is immutable and does not change with regards to expiry/reclamation/lock states.

claimable: string

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.

claimed: string

The amount that has already been successfully claimed by the user.

expired: string

The amount that was claimable but has now expired due to the presence and subsequent passing of expires_at

extra: object { percent, text, value }
percent: object { claimable, claimed, expired, 3 more }

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.

claimable: string
claimed: string
expired: string
extra: object { text }
text: object { claimable, claimed, expired, 2 more }

Human-readable variants of percentages for unlock amounts. Will not be null when query params with_text and with_percent are true.

claimable: string
claimed: string
expired: string
locked: string
reclaimed: string
locked: string
reclaimed: string
text: object { amount, claimable, claimed, 3 more }

Human-readable field variants. Will not be null when query param with_text is true.

amount: string
claimable: string
claimed: string
expired: string
locked: string
reclaimed: string
value: object { amount, claimable, claimed, 5 more }

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
claimable: string
claimed: string
expired: string
extra: object { text }
text: object { amount, claimable, claimed, 4 more }

Human-readable variants of USD values. Will not be null when query params with_text and with_value are true.

amount: string
claimable: string
claimed: string
expired: string
locked: string
price: string

Text representation of price

reclaimed: string
locked: string
price: string

Price used in value calculations

reclaimed: string
locked: string

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.

reclaimed: string

The amount that has been reclaimed from the unlock arrangement admin

begins_at: string

The time at which the unlock begins

formatdate-time
expires_at: string

The time at which the unlock expires, if any

formatdate-time
extra: object { text }
text: object { begins_at, expires_at, last_claimed_at }

Human-readable field variants. Will not be null when query param with_text is true.

begins_at: string
expires_at: string
last_claimed_at: string
last_claimed_at: string

The time at which the unlock was last claimed, if any

formatdate-time

The schedule of the unlock

One of the following:
UserUnlockScheduleLinear = object { duration, ends_at, extra, kind }
duration: number

The duration of the unlock in seconds

formatuint64
minimum0
ends_at: string

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.

formatdate-time
extra: object { text }
text: object { duration, ends_at }

Human-readable field variants. Will not be null when query param with_text is true.

duration: string
ends_at: string
kind: "linear"
UserUnlockScheduleLumpSum = object { kind }
kind: "lump_sum"
extra: object { text }
text: object { last_claimed_at }

Human-readable field variants. Will not be null when query param with_text is true.

last_claimed_at: string
last_claimed_at: string

The time at which the most recent unlock claim occurred, if any

formatdate-time
totals: UserUnlockAmounts { amount, claimable, claimed, 4 more }

Contains pre-calculated total amounts for all unlock agreements

amount: string

The full unlock amount

This value is immutable and does not change with regards to expiry/reclamation/lock states.

claimable: string

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.

claimed: string

The amount that has already been successfully claimed by the user.

expired: string

The amount that was claimable but has now expired due to the presence and subsequent passing of expires_at

extra: object { percent, text, value }
percent: object { claimable, claimed, expired, 3 more }

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.

claimable: string
claimed: string
expired: string
extra: object { text }
text: object { claimable, claimed, expired, 2 more }

Human-readable variants of percentages for unlock amounts. Will not be null when query params with_text and with_percent are true.

claimable: string
claimed: string
expired: string
locked: string
reclaimed: string
locked: string
reclaimed: string
text: object { amount, claimable, claimed, 3 more }

Human-readable field variants. Will not be null when query param with_text is true.

amount: string
claimable: string
claimed: string
expired: string
locked: string
reclaimed: string
value: object { amount, claimable, claimed, 5 more }

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
claimable: string
claimed: string
expired: string
extra: object { text }
text: object { amount, claimable, claimed, 4 more }

Human-readable variants of USD values. Will not be null when query params with_text and with_value are true.

amount: string
claimable: string
claimed: string
expired: string
locked: string
price: string

Text representation of price

reclaimed: string
locked: string
price: string

Price used in value calculations

reclaimed: string
locked: string

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.

reclaimed: string

The amount that has been reclaimed from the unlock arrangement admin

error: unknown

Error data. Guaranteed null for successful response.

status: number

HTTP status. Successful responses are guaranteed to be < 400. Conversely, error responses are guaranteed to be >= 400.

formatuint16
minimum0
maximum65535
status_text: string

HTTP status text

Get user NEPT unlocks

curl https://api-v2.nept.finance/api/v1/users/$ADDRESS/nept/unlocks
{
  "data": {
    "arrangements": [
      {
        "begins_at": "2026-07-22T08:40:54Z",
        "schedule": {
          "kind": "linear",
          "duration": 1692380,
          "ends_at": "2026-08-10T22:47:14Z",
          "extra": {
            "text": {
              "ends_at": "2026-08-10 10:47:14 PM +00:00",
              "duration": "19 days"
            }
          }
        },
        "last_claimed_at": null,
        "expires_at": "2027-07-20T13:44:39Z",
        "admin": {
          "address": "inj1loremipsumdolorsitametconsecteturadipi",
          "issued_reclaim": false
        },
        "extra": {
          "text": {
            "begins_at": "2026-07-22 08:40:54 AM +00:00",
            "last_claimed_at": "N/A",
            "expires_at": "2027-07-20 01:44:39 PM +00:00"
          }
        },
        "amounts": {
          "amount": "539033513",
          "claimed": "0",
          "claimable": "0",
          "locked": "539033513",
          "expired": "0",
          "reclaimed": "0",
          "extra": {
            "text": {
              "claimable": "0.0000 NEPT",
              "amount": "539.0335 NEPT",
              "reclaimed": "0.0000 NEPT",
              "locked": "539.0335 NEPT",
              "claimed": "0.0000 NEPT",
              "expired": "0.0000 NEPT"
            },
            "percent": {
              "reclaimed": "0",
              "claimable": "0",
              "claimed": "0",
              "expired": "0",
              "locked": "1",
              "extra": {
                "text": {
                  "locked": "100.00%",
                  "reclaimed": "0.00%",
                  "claimable": "0.00%",
                  "expired": "0.00%",
                  "claimed": "0.00%"
                }
              }
            },
            "value": {
              "reclaimed": "0",
              "amount": "17.564815853184007856",
              "claimed": "0",
              "expired": "0",
              "price": "0.032585758453916404",
              "claimable": "0",
              "locked": "17.564815853184007856",
              "extra": {
                "text": {
                  "expired": "$0.00",
                  "claimed": "$0.00",
                  "price": "$0.03",
                  "locked": "$17.56",
                  "reclaimed": "$0.00",
                  "amount": "$17.56",
                  "claimable": "$0.00"
                }
              }
            }
          }
        }
      },
      {
        "begins_at": "2026-05-13T03:54:17Z",
        "schedule": {
          "kind": "linear",
          "duration": 26581850,
          "ends_at": "2027-03-16T19:45:07Z",
          "extra": {
            "text": {
              "ends_at": "2027-03-16 07:45:07 PM +00:00",
              "duration": "307 days"
            }
          }
        },
        "last_claimed_at": null,
        "expires_at": "2028-01-16T01:05:19Z",
        "admin": {
          "address": "inj1loremipsumdolorsitametconsecteturadipi",
          "issued_reclaim": false
        },
        "extra": {
          "text": {
            "begins_at": "2026-05-13 03:54:17 AM +00:00",
            "last_claimed_at": "N/A",
            "expires_at": "2028-01-16 01:05:19 AM +00:00"
          }
        },
        "amounts": {
          "amount": "47623136",
          "claimed": "0",
          "claimable": "0",
          "locked": "47623136",
          "expired": "0",
          "reclaimed": "0",
          "extra": {
            "text": {
              "claimable": "0.0000 NEPT",
              "amount": "47.6231 NEPT",
              "reclaimed": "0.0000 NEPT",
              "locked": "47.6231 NEPT",
              "claimed": "0.0000 NEPT",
              "expired": "0.0000 NEPT"
            },
            "percent": {
              "reclaimed": "0",
              "claimable": "0",
              "claimed": "0",
              "expired": "0",
              "locked": "1",
              "extra": {
                "text": {
                  "locked": "100.00%",
                  "reclaimed": "0.00%",
                  "claimable": "0.00%",
                  "expired": "0.00%",
                  "claimed": "0.00%"
                }
              }
            },
            "value": {
              "reclaimed": "0",
              "amount": "1.55183600651401064",
              "claimed": "0",
              "expired": "0",
              "price": "0.032585758453916404",
              "claimable": "0",
              "locked": "1.55183600651401064",
              "extra": {
                "text": {
                  "expired": "$0.00",
                  "claimed": "$0.00",
                  "price": "$0.03",
                  "locked": "$1.55",
                  "reclaimed": "$0.00",
                  "amount": "$1.55",
                  "claimable": "$0.00"
                }
              }
            }
          }
        }
      }
    ],
    "totals": {
      "amount": "586656649",
      "claimed": "0",
      "claimable": "0",
      "locked": "586656649",
      "expired": "0",
      "reclaimed": "0",
      "extra": {
        "text": {
          "claimable": "0.0000 NEPT",
          "amount": "586.6566 NEPT",
          "reclaimed": "0.0000 NEPT",
          "locked": "586.6566 NEPT",
          "claimed": "0.0000 NEPT",
          "expired": "0.0000 NEPT"
        },
        "percent": {
          "reclaimed": "0",
          "claimable": "0",
          "claimed": "0",
          "expired": "0",
          "locked": "1",
          "extra": {
            "text": {
              "locked": "100.00%",
              "reclaimed": "0.00%",
              "claimable": "0.00%",
              "expired": "0.00%",
              "claimed": "0.00%"
            }
          }
        },
        "value": {
          "reclaimed": "0",
          "amount": "19.116651859698018496",
          "claimed": "0",
          "expired": "0",
          "price": "0.032585758453916404",
          "claimable": "0",
          "locked": "19.116651859698018496",
          "extra": {
            "text": {
              "expired": "$0.00",
              "claimed": "$0.00",
              "price": "$0.03",
              "locked": "$19.11",
              "reclaimed": "$0.00",
              "amount": "$19.11",
              "claimable": "$0.00"
            }
          }
        }
      }
    },
    "last_claimed_at": "2025-03-01T14:29:00Z",
    "extra": {
      "text": {
        "last_claimed_at": "2025-03-01 02:29:00 PM +00:00"
      }
    }
  },
  "error": null,
  "status": 200,
  "status_text": "200 OK"
}
{
  "data": null,
  "error": {
    "kind": "internal",
    "scope": "server",
    "message": "An unexpected error occurred"
  },
  "status": 500,
  "status_text": "500 Internal Server Error"
}
Returns Examples
{
  "data": {
    "arrangements": [
      {
        "begins_at": "2026-07-22T08:40:54Z",
        "schedule": {
          "kind": "linear",
          "duration": 1692380,
          "ends_at": "2026-08-10T22:47:14Z",
          "extra": {
            "text": {
              "ends_at": "2026-08-10 10:47:14 PM +00:00",
              "duration": "19 days"
            }
          }
        },
        "last_claimed_at": null,
        "expires_at": "2027-07-20T13:44:39Z",
        "admin": {
          "address": "inj1loremipsumdolorsitametconsecteturadipi",
          "issued_reclaim": false
        },
        "extra": {
          "text": {
            "begins_at": "2026-07-22 08:40:54 AM +00:00",
            "last_claimed_at": "N/A",
            "expires_at": "2027-07-20 01:44:39 PM +00:00"
          }
        },
        "amounts": {
          "amount": "539033513",
          "claimed": "0",
          "claimable": "0",
          "locked": "539033513",
          "expired": "0",
          "reclaimed": "0",
          "extra": {
            "text": {
              "claimable": "0.0000 NEPT",
              "amount": "539.0335 NEPT",
              "reclaimed": "0.0000 NEPT",
              "locked": "539.0335 NEPT",
              "claimed": "0.0000 NEPT",
              "expired": "0.0000 NEPT"
            },
            "percent": {
              "reclaimed": "0",
              "claimable": "0",
              "claimed": "0",
              "expired": "0",
              "locked": "1",
              "extra": {
                "text": {
                  "locked": "100.00%",
                  "reclaimed": "0.00%",
                  "claimable": "0.00%",
                  "expired": "0.00%",
                  "claimed": "0.00%"
                }
              }
            },
            "value": {
              "reclaimed": "0",
              "amount": "17.564815853184007856",
              "claimed": "0",
              "expired": "0",
              "price": "0.032585758453916404",
              "claimable": "0",
              "locked": "17.564815853184007856",
              "extra": {
                "text": {
                  "expired": "$0.00",
                  "claimed": "$0.00",
                  "price": "$0.03",
                  "locked": "$17.56",
                  "reclaimed": "$0.00",
                  "amount": "$17.56",
                  "claimable": "$0.00"
                }
              }
            }
          }
        }
      },
      {
        "begins_at": "2026-05-13T03:54:17Z",
        "schedule": {
          "kind": "linear",
          "duration": 26581850,
          "ends_at": "2027-03-16T19:45:07Z",
          "extra": {
            "text": {
              "ends_at": "2027-03-16 07:45:07 PM +00:00",
              "duration": "307 days"
            }
          }
        },
        "last_claimed_at": null,
        "expires_at": "2028-01-16T01:05:19Z",
        "admin": {
          "address": "inj1loremipsumdolorsitametconsecteturadipi",
          "issued_reclaim": false
        },
        "extra": {
          "text": {
            "begins_at": "2026-05-13 03:54:17 AM +00:00",
            "last_claimed_at": "N/A",
            "expires_at": "2028-01-16 01:05:19 AM +00:00"
          }
        },
        "amounts": {
          "amount": "47623136",
          "claimed": "0",
          "claimable": "0",
          "locked": "47623136",
          "expired": "0",
          "reclaimed": "0",
          "extra": {
            "text": {
              "claimable": "0.0000 NEPT",
              "amount": "47.6231 NEPT",
              "reclaimed": "0.0000 NEPT",
              "locked": "47.6231 NEPT",
              "claimed": "0.0000 NEPT",
              "expired": "0.0000 NEPT"
            },
            "percent": {
              "reclaimed": "0",
              "claimable": "0",
              "claimed": "0",
              "expired": "0",
              "locked": "1",
              "extra": {
                "text": {
                  "locked": "100.00%",
                  "reclaimed": "0.00%",
                  "claimable": "0.00%",
                  "expired": "0.00%",
                  "claimed": "0.00%"
                }
              }
            },
            "value": {
              "reclaimed": "0",
              "amount": "1.55183600651401064",
              "claimed": "0",
              "expired": "0",
              "price": "0.032585758453916404",
              "claimable": "0",
              "locked": "1.55183600651401064",
              "extra": {
                "text": {
                  "expired": "$0.00",
                  "claimed": "$0.00",
                  "price": "$0.03",
                  "locked": "$1.55",
                  "reclaimed": "$0.00",
                  "amount": "$1.55",
                  "claimable": "$0.00"
                }
              }
            }
          }
        }
      }
    ],
    "totals": {
      "amount": "586656649",
      "claimed": "0",
      "claimable": "0",
      "locked": "586656649",
      "expired": "0",
      "reclaimed": "0",
      "extra": {
        "text": {
          "claimable": "0.0000 NEPT",
          "amount": "586.6566 NEPT",
          "reclaimed": "0.0000 NEPT",
          "locked": "586.6566 NEPT",
          "claimed": "0.0000 NEPT",
          "expired": "0.0000 NEPT"
        },
        "percent": {
          "reclaimed": "0",
          "claimable": "0",
          "claimed": "0",
          "expired": "0",
          "locked": "1",
          "extra": {
            "text": {
              "locked": "100.00%",
              "reclaimed": "0.00%",
              "claimable": "0.00%",
              "expired": "0.00%",
              "claimed": "0.00%"
            }
          }
        },
        "value": {
          "reclaimed": "0",
          "amount": "19.116651859698018496",
          "claimed": "0",
          "expired": "0",
          "price": "0.032585758453916404",
          "claimable": "0",
          "locked": "19.116651859698018496",
          "extra": {
            "text": {
              "expired": "$0.00",
              "claimed": "$0.00",
              "price": "$0.03",
              "locked": "$19.11",
              "reclaimed": "$0.00",
              "amount": "$19.11",
              "claimable": "$0.00"
            }
          }
        }
      }
    },
    "last_claimed_at": "2025-03-01T14:29:00Z",
    "extra": {
      "text": {
        "last_claimed_at": "2025-03-01 02:29:00 PM +00:00"
      }
    }
  },
  "error": null,
  "status": 200,
  "status_text": "200 OK"
}
{
  "data": null,
  "error": {
    "kind": "internal",
    "scope": "server",
    "message": "An unexpected error occurred"
  },
  "status": 500,
  "status_text": "500 Internal Server Error"
}