Skip to content

Quickstart

Three requests: sign in, read your user, list your properties.

Terminal window
curl -X POST https://api.getvespy.com/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","password":"your-password"}'
{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"tokenType": "Bearer",
"expiresIn": 900,
"user": {
"id": "0f8d…",
"organizationId": "3b21…",
"email": "you@example.com",
"fullName": "Your Name",
"role": "admin",
"isSuperadmin": false
}
}

expiresIn is seconds — access tokens last 15 minutes. The response also sets an HttpOnly refresh cookie; see Authentication for how to trade it for a new access token.

Terminal window
curl https://api.getvespy.com/api/auth/me \
-H "Authorization: Bearer $ACCESS_TOKEN"

The role on the returned user decides what the rest of the API will let you do. Staff roles (admin, manager, staff) see the portfolio; tenant, owner, and vendor are scoped to their own records through the portal endpoints.

Terminal window
curl 'https://api.getvespy.com/api/properties?page=1&pageSize=20' \
-H "Authorization: Bearer $ACCESS_TOKEN"
{
"properties": [
{
"id": "9c4e…",
"name": "Elm Street Duplex",
"unitCount": 2,
"occupiedUnitCount": 1
}
],
"noteSummaries": []
}

List endpoints return a named array rather than a bare list, so related data can travel with it — here noteSummaries carries the note counts for the same page of properties without a second round trip.