Quickstart
Three requests: sign in, read your user, list your properties.
1. Get an access token
Section titled “1. Get an access token”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.
2. Confirm who you are
Section titled “2. Confirm who you are”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.
3. Read the portfolio
Section titled “3. Read the portfolio”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.
What next
Section titled “What next”- Onboarding a property — property, units, tenant, lease.
- Rent and payments — charges, payments, allocation.
- Errors — the shape of every failure response.