Skip to main content

Identifiers and vocabulary cheat sheet

Most integration bugs come from mixing up identifier types or getting enum casing wrong. This page is the reference to keep open while you build.

Identifier and value map

ConceptValue to useWhere it comes from
Incident identifierDisplay ID, XVA-1234incident_details.incident_id on alerts, incidentDisplayId on snapshot rows, entityId on changelog rows
Event identifierbase64 event_record_identifierevent_details.event_id on alerts, eventId on snapshot rows
PriorityP0, P1, P2 (uniform on reads, filters, and writes)any surface; values round-trip without mapping
Status (writes and filters)Open, Acknowledged, Reopen, InProgress, ClosedFalsePositive, ClosedIrrelevant, ClosedResolved, ClosedInformationalwrite enum; alert payloads render status lowercase and changelog currentState uses internal labels
Module (filters, rows, write echoes)canonical keys: CompromisedComputers, FakeMobileApps, DocumentsandOpenBuckets, and more. One key per request on module_name filterschangelog and snapshot rows, write responses, all module_name filter enums
Module (alert payload display)module_name = category ("Brand Risk Monitoring"), sub_module = module ("Fake Mobile Apps")display fields only; canonical key = sub_module with the spaces removed

Three rules that prevent most bugs

  1. Enum inputs are exact-match and case-sensitive. P1, not p1. Open, not open. A wrong-case value gets 400 VALIDATION_ERROR.
  2. Machine values round-trip; display values do not. Anything read from changelog rows, snapshot rows, or write responses can be fed into any filter. The alert payload's module_name and sub_module are for humans; derive the key by stripping spaces from sub_module.
  3. org_id is optional everywhere. Tenancy is inferred from the token and the target identifier. Pass it only to disambiguate a sub-org under a parent-org token.