Traverse from Person
const url = 'https://api.aerandil.com/v1/object-types/hospitality.person/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/traverse';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"as_of":"2026-04-15T12:00:00Z","branch":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","cursor":"example","direction":"out","limit":1,"link_type":"hospitality.link.allergy_alert_for_person","role":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.aerandil.com/v1/object-types/hospitality.person/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/traverse \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "as_of": "2026-04-15T12:00:00Z", "branch": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "cursor": "example", "direction": "out", "limit": 1, "link_type": "hospitality.link.allergy_alert_for_person", "role": "example" }'RPC-shaped traversal. Pick the edge by (link_type, direction) or by role — the registry resolves a role name (e.g. managed_by, direct_reports) to the underlying link side. link_type wins when both are present.
An individual person known to the hospitality system — guest, local, member, or any combination across a stay’s lifecycle. Persons are tenant-wide so loyalty, recognition, and history follow them across the portfolio. The ‘guest’ label is a role carried on reservation_for_guest and on a stay; the same person may also be a local (visiting a venue without a reservation), a member (enrolled in a membership-club program), or all three.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Object id (UUID v7, server-generated at create time).
Request Bodyrequired
Section titled “Request Bodyrequired”Body for POST .../traverse. At least one of link_type or role MUST be supplied — the server returns 422 missing_traversal_target when both are absent. link_type wins when both are set.
object
RFC3339 temporal window: return neighbours whose edge was in effect at this instant ([effective_from, effective_to)) instead of now.
Traverse through an open branch’s overlay view instead of the canonical (main) plane. Does not compose with as_of (422).
Edge direction. Optional when the binding is asymmetric.
API name of the link type to traverse. Narrowed to link types that bind the source. Wins over role.
Link-side role name (e.g. managed_by, direct_reports). Mutually substitutable with link_type — the registry resolves the role to its underlying link and direction.
Responses
Section titled “Responses”Neighbours along the resolved link.
object
object
object
object
object
object
object
object
Example
{ "data": [ { "scope": { "level": "tenant" } } ], "direction": "out"}No object with that id, or link type unknown.
Validation error — must supply link_type or role.