Traverse from Fraud network signal
const url = 'https://api.aerandil.com/v1/object-types/hospitality.fraud_network_signal/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.fraud_assessment_consulted_network","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.fraud_network_signal/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.fraud_assessment_consulted_network", "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.
What Watchtower, the card rail’s federated fraud network (proposal 0029), answered when this house asked about a card, email or phone before holding a card — frozen as issued; only a contest is ever added. match_present says whether a fraud outcome on the rail (contributed within the last two years) carries one of the digests; the count, the breadth of houses behind it and its recency are bucketed, and breadth reads only below_cohort until the cohort floor is met — the network never says which house, nor how many. band_floor is the lowest risk band the rail lets the hold’s assessment carry and floor_basis why: a card match blocks only on the house’s own loss or on another house’s recent issuer-confirmed loss that a second house or the guest’s contact corroborates; anything else sends the hold to review. A desk that believes the guest contests the answer (contest_fraud_network_signal), which puts it before the platform’s review and lets the next answer for the same subject take the hold to review instead (desk_override, override_of). fingerprints keeps the digests the house asked about, so the platform’s review of a contest can find the contributions the answer rested on. Recorded by the card rail only.
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.