> ## Documentation Index
> Fetch the complete documentation index at: https://docs.niadra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Profile memory

> Facts, episodes, open items, actions and patterns, each with its origin and evidence.



## OpenAPI

````yaml openapi/en/cell.json GET /v1/profiles/{profile_id}/memory
openapi: 3.1.0
info:
  title: Niadra data API
  version: '1'
  description: >-
    Writing, context, history, objects, identity, privacy and governance of one
    space. Every space has a stable address, with the space and the region in
    its name.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: The space, which comes in the source key.
      region:
        default: us-east-1
        description: The region of the space, which also comes in the key.
security: []
paths:
  /v1/profiles/{profile_id}/memory:
    get:
      tags:
        - governance
      summary: Profile memory
      description: >-
        What the memory holds about a profile, as your governance team sees it:
        facts, episodes, open items and promises, and patterns, each with its
        origin and evidence. The policy applies to the audience of the reader,
        and `withheld` counts what was left out, by reason. The read is recorded
        in the audit trail.


        **Authentication.** Console person token with the `security`, `review`,
        `analysis` role (or admin), or a source key with the `admin` scope.
      operationId: profile_memory_v1_profiles__profile_id__memory_get
      parameters:
        - in: path
          name: profile_id
          required: true
          schema:
            format: uuid
            title: Profile Id
            type: string
          example: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileMemory'
              example:
                profile_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01
                audience: human
                policy_version: pol-14
                facts:
                  - id: fct_01
                    predicate: plan
                    value: Family plan
                    category: contract
                    confidence: 0.97
                    sensitivity: normal
                    status: active
                    times_seen: 6
                    valid_at: '2021-04-06T13:20:00Z'
                    last_confirmed_at: '2026-09-22T17:02:11Z'
                    invalid_at: null
                    about_handle_id: null
                    object: null
                    evidence_event_ids:
                      - 0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01
                    origin:
                      event_id: 0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01
                      source_id: src_whatsapp
                      channel: whatsapp
                      kind: message
                      speaker: customer
                      conversation_id: wa-8812
                      task_id: null
                      at: '2026-09-22T17:02:11Z'
                    masked: false
                open_items:
                  - id: oi_01J8ZK
                    description: Technician visit promised for this morning did not happen
                    owner: company
                    promise: true
                    status: overdue
                    due_at: '2026-09-22T15:00:00Z'
                    expected_operation: reschedule
                    object: null
                    closed_at: null
                    closed_by_action_id: null
                    created_at: '2026-09-22T17:03:10Z'
                    origin:
                      event_id: 0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01
                      source_id: src_whatsapp
                      channel: whatsapp
                      kind: message
                      speaker: customer
                      conversation_id: wa-8812
                      task_id: null
                      at: '2026-09-22T17:02:11Z'
                    masked: false
                timeline:
                  - id: ep_01J8ZL
                    session_id: ses_01J8ZL
                    intent: complaint
                    category: technician visit
                    normalized_category: technician_visit
                    outcome: escalated
                    resolution: null
                    summary: Technician did not show up; customer is calling.
                    sentiment: -0.6
                    started_at: '2026-09-22T17:02:11Z'
                    ended_at: '2026-09-22T17:03:00Z'
                    version: 1
                    origin:
                      event_id: 0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01
                      source_id: src_whatsapp
                      channel: whatsapp
                      kind: message
                      speaker: customer
                      conversation_id: wa-8812
                      task_id: null
                      at: '2026-09-22T17:02:11Z'
                    masked: false
                traits:
                  - id: trt_01
                    name: recurring_complaint
                    value: technician_visit · 2 in 365 days
                    layer: volatile
                    confidence: 1
                    active: true
                    rule_version: recurring_complaint@3
                    first_seen: '2026-09-22T17:03:30Z'
                    last_evidence_at: '2026-09-22T17:03:00Z'
                    expires_at: '2027-03-12T14:20:00Z'
                    retracted_at: null
                    evidence:
                      - id: ep_01J2
                        kind: episode
                        origin: null
                    masked: false
                withheld:
                  verification: 1
          description: The memory of the profile.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request does not match the contract.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    ProfileMemory:
      additionalProperties: false
      properties:
        audience:
          $ref: '#/components/schemas/Audience'
          description: The audience class the reader's role reads as.
        facts:
          items:
            $ref: '#/components/schemas/FactOut'
          title: Facts
          type: array
        open_items:
          items:
            $ref: '#/components/schemas/OpenItemOut'
          title: Open Items
          type: array
        policy_version:
          title: Policy Version
          type: string
        profile_id:
          title: Profile Id
          type: string
        timeline:
          description: Episodes, newest first.
          items:
            $ref: '#/components/schemas/EpisodeOut'
          title: Timeline
          type: array
        traits:
          items:
            $ref: '#/components/schemas/TraitOut'
          title: Traits
          type: array
        withheld:
          additionalProperties:
            type: integer
          description: Items left out, by reason.
          title: Withheld
          type: object
      required:
        - profile_id
        - policy_version
        - audience
      title: ProfileMemory
      type: object
    Problem:
      additionalProperties: false
      description: RFC 9457 problem details; `code` comes from the versioned error catalog.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    Audience:
      enum:
        - customer_agent
        - internal_agent
        - human
        - reviewer
        - analyst
        - trigger_target
        - export
      title: Audience
      type: string
    FactOut:
      additionalProperties: false
      properties:
        about_handle_id:
          anyOf:
            - type: string
            - type: 'null'
          title: About Handle Id
        category:
          title: Category
          type: string
        confidence:
          title: Confidence
          type: number
        evidence_event_ids:
          items:
            type: string
          title: Evidence Event Ids
          type: array
        id:
          title: Id
          type: string
        invalid_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Invalid At
        last_confirmed_at:
          format: date-time
          title: Last Confirmed At
          type: string
        masked:
          default: false
          title: Masked
          type: boolean
        object:
          anyOf:
            - $ref: '#/components/schemas/ObjectRef'
            - type: 'null'
        origin:
          anyOf:
            - $ref: '#/components/schemas/Origin'
            - type: 'null'
          description: The earliest evidence event.
        predicate:
          title: Predicate
          type: string
        sensitivity:
          $ref: '#/components/schemas/Sensitivity'
        status:
          $ref: '#/components/schemas/FactStatus'
        times_seen:
          title: Times Seen
          type: integer
        valid_at:
          format: date-time
          title: Valid At
          type: string
        value:
          anyOf:
            - type: string
            - type: 'null'
          description: None when the policy masks it for this reader.
          title: Value
      required:
        - id
        - predicate
        - value
        - category
        - sensitivity
        - status
        - confidence
        - valid_at
        - last_confirmed_at
        - times_seen
      title: FactOut
      type: object
    OpenItemOut:
      additionalProperties: false
      properties:
        closed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Closed At
        closed_by_action_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Closed By Action Id
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        due_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Due At
        expected_operation:
          anyOf:
            - type: string
            - type: 'null'
          title: Expected Operation
        id:
          title: Id
          type: string
        masked:
          default: false
          title: Masked
          type: boolean
        object:
          anyOf:
            - $ref: '#/components/schemas/ObjectRef'
            - type: 'null'
        origin:
          anyOf:
            - $ref: '#/components/schemas/Origin'
            - type: 'null'
        owner:
          enum:
            - company
            - customer
          title: Owner
          type: string
        promise:
          description: 'An open item the company owns: a promise made to the customer.'
          title: Promise
          type: boolean
        status:
          $ref: '#/components/schemas/OpenItemStatus'
      required:
        - id
        - description
        - owner
        - promise
        - status
        - created_at
      title: OpenItemOut
      type: object
    EpisodeOut:
      additionalProperties: false
      properties:
        category:
          title: Category
          type: string
        ended_at:
          format: date-time
          title: Ended At
          type: string
        id:
          title: Id
          type: string
        intent:
          title: Intent
          type: string
        masked:
          default: false
          title: Masked
          type: boolean
        normalized_category:
          title: Normalized Category
          type: string
        origin:
          $ref: '#/components/schemas/Origin'
        outcome:
          title: Outcome
          type: string
        resolution:
          anyOf:
            - type: string
            - type: 'null'
          title: Resolution
        sentiment:
          anyOf:
            - type: number
            - type: 'null'
          title: Sentiment
        session_id:
          title: Session Id
          type: string
        started_at:
          format: date-time
          title: Started At
          type: string
        summary:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary
        version:
          title: Version
          type: integer
      required:
        - id
        - version
        - summary
        - intent
        - category
        - normalized_category
        - outcome
        - session_id
        - started_at
        - ended_at
        - origin
      title: EpisodeOut
      type: object
    TraitOut:
      additionalProperties: false
      properties:
        active:
          description: Neither retracted nor expired.
          title: Active
          type: boolean
        confidence:
          title: Confidence
          type: number
        evidence:
          items:
            $ref: '#/components/schemas/TraitEvidenceOut'
          title: Evidence
          type: array
        expires_at:
          format: date-time
          title: Expires At
          type: string
        first_seen:
          format: date-time
          title: First Seen
          type: string
        id:
          title: Id
          type: string
        last_evidence_at:
          format: date-time
          title: Last Evidence At
          type: string
        layer:
          title: Layer
          type: string
        masked:
          default: false
          title: Masked
          type: boolean
        name:
          title: Name
          type: string
        retracted_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Retracted At
        rule_version:
          title: Rule Version
          type: string
        value:
          anyOf:
            - type: string
            - type: 'null'
          title: Value
      required:
        - id
        - name
        - value
        - layer
        - rule_version
        - first_seen
        - last_evidence_at
        - expires_at
        - confidence
        - active
      title: TraitOut
      type: object
    ObjectRef:
      additionalProperties: false
      description: >-
        A business object in a system of record, e.g. `invoice` / `erp` /
        `0823`.
      properties:
        id:
          maxLength: 512
          minLength: 1
          title: Id
          type: string
          description: The id in that system.
        namespace:
          maxLength: 256
          minLength: 1
          title: Namespace
          type: string
          description: The system it lives in, such as `erp`.
        type:
          maxLength: 256
          minLength: 1
          title: Type
          type: string
          description: Object type, such as `invoice`, `order` or `ticket`.
      required:
        - type
        - namespace
        - id
      title: ObjectRef
      type: object
    Origin:
      additionalProperties: false
      description: >-
        Provenance of an item: the event it came from, its source (agent or
        system), channel and time.
      properties:
        at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: At
        channel:
          anyOf:
            - type: string
            - type: 'null'
          title: Channel
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation Id
        event_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Id
        kind:
          anyOf:
            - $ref: '#/components/schemas/EventKind'
            - type: 'null'
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Id
        speaker:
          anyOf:
            - $ref: '#/components/schemas/Speaker'
            - type: 'null'
        task_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Task Id
      title: Origin
      type: object
    Sensitivity:
      enum:
        - normal
        - restricted
        - sensitive
      title: Sensitivity
      type: string
    FactStatus:
      enum:
        - active
        - expired
        - quarantined
        - retracted
      title: FactStatus
      type: string
    OpenItemStatus:
      enum:
        - open
        - resolved
        - overdue
      title: OpenItemStatus
      type: string
    TraitEvidenceOut:
      additionalProperties: false
      properties:
        id:
          title: Id
          type: string
        kind:
          description: '`episode`, `event`, `action` or `open_item`.'
          title: Kind
          type: string
        origin:
          anyOf:
            - $ref: '#/components/schemas/Origin'
            - type: 'null'
      required:
        - kind
        - id
      title: TraitEvidenceOut
      type: object
    EventKind:
      enum:
        - message
        - system_event
        - action
      title: EventKind
      type: string
      description: >-
        What an event records: something said, a change in a system of record,
        or what an agent did in a system.
    Speaker:
      enum:
        - customer
        - ai_agent
        - human_agent
        - system
      title: Speaker
      type: string
      description: Who produced the event.
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...
    personToken:
      type: http
      scheme: bearer
      bearerFormat: JWT

````