Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mnemom.ai/llms.txt

Use this file to discover all available pages before exploring further.

Normative reference for GET /v1/network/threat-state — the customer-readable read of the AEGIS Protection Network L1 cross-tenant aggregator. The endpoint returns a snapshot of per-axis bucket states for the customer’s tenant view. The underlying aggregator table is internal; this spec documents what is on the wire, not the table column list. The cross-tenant aggregator composes into the cards composition primitive via the four axis dimensions.

1. Top-level response shape

{
  "axes": {
    "substrate": [ /* array of bucket state objects */ ],
    "vertical":  [ /* ... */ ],
    "pattern":   [ /* ... */ ],
    "source":    [ /* ... */ ]
  },
  "as_of": "<ISO-8601 UTC>"
}
FieldTypeRequiredNotes
axesobjectYesMap of axis name → array of bucket state objects. The four axis names are fixed: substrate, vertical, pattern, source.
axes.<axis>arrayYesArray of bucket-state objects for that axis. May be empty if the axis has no active buckets.
as_ofstringYesISO-8601 UTC timestamp of the aggregator snapshot serving this response.

2. Bucket state object

{
  "bucket": "<bucket id>",
  "threat_level": "calm",
  "updated_at": "<ISO-8601 UTC>"
}
FieldTypeRequiredNotes
bucketstringYesBucket identifier within the axis. Opaque to the customer; stable per (axis, bucket) pair across calls. See §3 for per-axis semantics.
threat_levelenumYes"calm" | "elevated" | "high" | "under_attack". See §4.
updated_atstringYesISO-8601 UTC timestamp of the last threat-level transition for this bucket.

3. Per-axis bucket identifier semantics

The four axes scope cross-tenant aggregation along orthogonal dimensions:
AxisBucket identityMeaning
substrateHash of the substrate fingerprintAggregates across customers running on the same AI substrate.
verticalVertical-id enum valueAggregates across customers in the same industry vertical.
patternCanonicalized pattern fingerprint hashAggregates across customers seeing the same detection-pattern signature.
sourceCanonicalized source fingerprint hashAggregates across customers receiving traffic from the same source identity class.
Bucket identifiers are opaque to the customer; the customer reads the threat level, not the bucket’s underlying composition. Internal aggregation thresholds and per-bucket state-transition logic are platform-level config — they are not surfaced on the wire.

4. Threat-level enum

The threat-level enum has four values, ordered by severity:
ValueSemanticCustomer-side effect
calmBaseline; no anomalous cross-tenant signal on this bucket.No L2 under-attack overlay engaged.
elevatedAbove baseline; one or more cross-tenant signals trending up.L2 overlay candidate; not yet active.
highSustained cross-tenant pressure on this bucket.L2 under-attack overlay auto-elevates protection against the customer’s elevation ceiling.
under_attackActive cross-tenant campaign confirmed on this bucket.L2 overlay at maximum elevation; additional integrity-side primitives engage (canaries, frozen credential issuance, full AIP proof rate).
The state transitions are bidirectional with hysteresis; a bucket that elevates to high does not immediately demote to calm even when the underlying signal subsides — the aggregator requires sustained low signal across the exit hysteresis window before demotion.

5. Query parameters

ParameterTypeDefaultNotes
axisenum(all axes)Filter the response to a single axis: substrate, vertical, pattern, or source.
max_bucketsinteger100Bound the per-axis array size. Maximum value: 1000. Per-axis arrays are sorted by threat_level descending, then updated_at descending; truncation drops the tail.
Auth: customer API key via X-Mnemom-Api-Key: $MNEMOM_KEY.

6. Example — calm-at-GA response

At GA, with the network calm across all axes, the response per the calm-at-GA contract:
{
  "axes": {
    "substrate": [
      { "bucket": "sb-baseline", "threat_level": "calm", "updated_at": "2026-05-30T00:00:00Z" }
    ],
    "vertical": [
      { "bucket": "v-financial-services", "threat_level": "calm", "updated_at": "2026-05-30T00:00:00Z" },
      { "bucket": "v-customer-support",   "threat_level": "calm", "updated_at": "2026-05-30T00:00:00Z" }
    ],
    "pattern": [],
    "source":  []
  },
  "as_of": "2026-05-30T00:00:00Z"
}

7. Example — one bucket elevated (synthetic for documentation)

This example is documentation-only — at GA there is no real elevated bucket. The shape is what the customer sees if the substrate axis registers cross-tenant elevation:
{
  "axes": {
    "substrate": [
      { "bucket": "sb-baseline",       "threat_level": "calm",     "updated_at": "2026-05-30T00:00:00Z" },
      { "bucket": "sb-synthetic-test", "threat_level": "elevated", "updated_at": "2026-05-30T03:14:07Z" }
    ],
    "vertical": [
      { "bucket": "v-financial-services", "threat_level": "calm", "updated_at": "2026-05-30T00:00:00Z" }
    ],
    "pattern": [],
    "source":  []
  },
  "as_of": "2026-05-30T03:14:30Z"
}

See also