---
title: "Draw one regime across a page of memories (the overlay)"
method: POST
path: "/v2/workspaces/{id}/regimes/{regime}/applicability-map"
tags: ["Regimes"]
---

# Draw one regime across a page of memories (the overlay)

`POST /v2/workspaces/{id}/regimes/{regime}/applicability-map`

## Request

- Base URL: `https://api.infolang.ai`
- URL: `https://api.infolang.ai/v2/workspaces/{id}/regimes/{regime}/applicability-map`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Every named memory's standing under ONE regime, in one call — what a graph overlay dims from. Returns the INAPPLICABLE half, which is the only half that can be stated completely: RR4 says an unscoped memory applies under every regime, so the applicable set is unbounded, while the inapplicable set is bounded by what somebody scoped. Dim what comes back; leave everything else alone.

**Send `memory_ids`.** With them the world is CLOSED and the answer mentions no memory you did not name. Without them the answer covers every live-scoped target in the workspace across EVERY namespace — the regime algebra holds no visibility dimension and must not learn one — so that mode is **403** for a namespace-restricted credential and additionally requires `memories:read`. The ids are forwarded verbatim: not de-duplicated, not sorted, not truncated, and `requested` echoes how many were sent so a client can prove it. Up to 15 000 per call, which is Kairos's own node ceiling, so a graph never has to page.

`applicability` uses the memory vocabulary, matching a recall hit's `regime` annotation: `applicable`, `inapplicable_ended` (the phase ENDED — it still applied while it ran), `inapplicable_void` (the phase was VOIDED — it never applied at any T), `inapplicable_until_adjudicated`, `inapplicable_adjudicated`, `not_yet_applicable`. `regime_agnostic: true` means no live scope link names this memory at all, so it applies here and everywhere — materially different from a memory explicitly scoped to this regime while the regime is active, which also applies.

An empty `inapplicable` MEANS "everything you asked about applies". It is never synthesized from a failure: an unreachable or uncompiled coordination fabric answers 502 or 501, so a dead fabric can never be rendered as a fully-applicable archive.

`inheritance` selects what a contested or voided ANCESTOR regime does to its descendants' scoped memories — `none` (default) is the kernel's own answer, `conservative` dims them. The response echoes the policy's `cursor`; do not compare two maps whose cursors differ.

Requires the `coord:read` scope. Accepts all three lanes: a session JWT (bounded by the caller's role on this workspace) or an `il_*` machine credential whose own scope set, workspace set and validity window cover it — both ceilings apply and neither can raise the other, so a credential carrying `coord:read` is still refused where the role does not permit it.

A credential with no scope record resolves to `LEGACY_DEFAULT`, which does NOT include `coord:read` — mint a key with it explicitly (`POST /v2/workspaces/{id}/keys`).

## Path parameters

- `id` string, required
- `regime` string, required

## Request body

- object
  - `memory_ids` string[]
  - `inheritance` 'none' | 'conservative'
  - `include_applicable` boolean

## Response `200`

What this regime does NOT govern, among the memories asked about

- object
  - `regime` string, required
  - `status` 'scheduled' | 'active' | 'ended' | 'void', nullable, required
  - `inheritance` 'none' | 'conservative', required
  - `cursor` string, required
  - `closed_world` boolean, required
  - `inapplicable` object[], required
    - `target` object, required
      - `space` 'assertion' | 'commitment' | 'inquiry' | 'memory' | 'subject' | 'foreign', required
      - `id` string, required
    - `memory_id` string
    - `applicability` 'applicable' | 'not_yet_applicable' | 'inapplicable_ended' | 'inapplicable_void' | 'inapplicable_until_adjudicated' | 'inapplicable_adjudicated', required
    - `regime_agnostic` boolean, required
  - `applicable` object[]
    - `target` object, required
      - `space` 'assertion' | 'commitment' | 'inquiry' | 'memory' | 'subject' | 'foreign', required
      - `id` string, required
    - `memory_id` string
    - `applicability` 'applicable' | 'not_yet_applicable' | 'inapplicable_ended' | 'inapplicable_void' | 'inapplicable_until_adjudicated' | 'inapplicable_adjudicated', required
    - `regime_agnostic` boolean, required
  - `fold_size` integer, required
  - `requested` integer, nullable, required

## Other responses

- `401`: Missing/invalid credential, or `credential_expired` — the credential is outside its `[not_before, expires_at)` window and must be replaced
- `403`: Open-world map requested by a namespace-restricted credential (send `memory_ids`), or `memories:read` is missing
- `501`: The regime verbs are not compiled into this deployment (`kernel-verbs` is off upstream)

---

[API](https://skmtc.dev/infolang/apis/infolang-api.md) · [All operations](https://skmtc.dev/infolang/apis/infolang-api/llms.txt) · [OpenAPI document](https://skmtc.dev/infolang/apis/infolang-api/revisions/d04bf6de72c8?raw)
