Getting Started
First Read
Authenticate, select a team, and load a generated resource response
Start with a read whose response you can inspect without changing accounting. The first step depends on your credential type.
With a Team API Key
Call a team-scoped read directly, for example listings:
curl 'https://api.vrplatform.app/listings' \
-H 'x-api-key: <team-api-key>' \
-H 'x-team-id: <team-id>'With a Partner API Key
List the teams your key manages first (no x-team-id), then pick one team and
make the same team-scoped read with its ID:
curl 'https://api.vrplatform.app/teams' \
-H 'x-api-key: <partner-api-key>'curl 'https://api.vrplatform.app/listings' \
-H 'x-api-key: <partner-api-key>' \
-H 'x-team-id: <team-id>'Example Response
A truncated GET /listings response looks like this (see
Pagination and filtering for the envelope):
{
"data": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "Dune View Cottage",
"shortRef": "LST-123",
"status": "active",
"defaultCurrency": "USD",
"activeOwnership": {
"id": "22222222-2222-4222-8222-222222222222",
"startAt": "2025-01-01",
"endAt": null
},
"issues": []
}
],
"pagination": { "limit": 100, "page": 1, "total": 1, "totalPage": 1 }
}What To Keep
- Treat pagination values as opaque and pass them back unchanged (see Pagination and filtering).
- Keep resource IDs scoped to the selected team.
- Render returned statuses, issues, locks, permissions, and calculated fields.
- Do not reconstruct accounting state from dates or display messages.
- Follow the exact fields from the generated operation, such as List listings.
Next, use Your first mutation to validate a proposed write without persisting it.
