Docs

Workspaces and context headers

One person can be an agent, a landlord and a tenant. Every API call names which workspace it acts in, with two headers.

The two headersWhat goes wrong

A person in Abide.Rent holds roles, not a type. The same email can manage a book of properties for an agency, own two flats as a landlord and rent a home as a tenant. The API keeps those apart: every call says which workspace it is acting in.

The two headers

X-Abide-Rent-Context: agency | landlord | tenant
X-Abide-Rent-Context-Id: <id from GET /api/v1/me>
  1. Call GET /api/v1/me. It lists every workspace the bearer can open, with its kind and id.
  2. Send both headers on every later call.
  3. Change the headers to act in another workspace. Nothing else changes.

What goes wrong

You see Why Fix
409 CONTEXT_REQUIRED No workspace headers were sent Add both headers
403 CONTEXT_FORBIDDEN The endpoint is not for that kind of workspace (for example a tenant calling an agency list) Use the right workspace
403 CONTEXT_EXPIRED The role behind the workspace has ended — an invitation was withdrawn or a tenancy handed over Call GET /api/v1/me again
404 NOT_FOUND The record exists, but not in this workspace Records in other workspaces are never visible, by design

An API key always acts as its paying account (an agency or landlord). It never acts as a tenant.