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

# Add memories

> Add facts to a container — from another memory system, a CRM, or by hand. Each entry is one fact; a multi-line string becomes one memory per line. Facts already in the container (ignoring case, spacing and bullets) are skipped, so re-running an import is harmless.



## OpenAPI

````yaml POST /memories
openapi: 3.0.0
info:
  title: WaterrAI API
  version: 1.0.0
  description: >-
    REST API for the WaterrAI meeting platform — create scenarios, spin up
    AI-driven meetings, fetch transcripts and analyses.
  contact:
    name: Support
    email: harshit@waterr.ai
servers:
  - url: https://api.waterr.ai/v1
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Users
  - name: Personas
  - name: Voices
  - name: Scenarios
  - name: Goals
  - name: Meetings
  - name: Analyses
  - name: Recordings
  - name: Transcripts
  - name: Tools
    description: >-
      Account-scoped custom function (tool) definitions the LLM can call
      mid-meeting.
  - name: Scenario Tools
    description: >-
      Per-scenario attachments linking a scenario to one or more tool
      definitions.
  - name: Guardrails
    description: >-
      Account-scoped named prompt fragments appended to a scenario's system
      prompt.
  - name: Scenario Guardrails
    description: Per-scenario attachments linking a scenario to one or more guardrails.
  - name: Meeting Skills
    description: Account-scoped invokable instruction packs the agent loads mid-meeting.
  - name: Scenario Meeting Skills
    description: Per-scenario attachments linking a scenario to one or more skills.
  - name: Memories
    description: >-
      Facts your agents remember, in containers named by user_memory_tag and
      shared across agents.
paths:
  /memories:
    post:
      tags:
        - Memories
      summary: Add memories
      description: >-
        Add facts to a container — from another memory system, a CRM, or by
        hand. Each entry is one fact; a multi-line string becomes one memory per
        line. Facts already in the container (ignoring case, spacing and
        bullets) are skipped, so re-running an import is harmless.
      operationId: ImportMemories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user_memory_tag
                - memories
              properties:
                user_memory_tag:
                  type: string
                  maxLength: 128
                  pattern: ^[A-Za-z0-9][A-Za-z0-9._:@+\-/|=]{0,127}$
                scenario_id:
                  type: string
                  format: uuid
                  description: >-
                    Attribute the facts to one of your agents, so they are
                    listed under it.
                memories:
                  type: array
                  maxItems: 500
                  items:
                    oneOf:
                      - type: string
                        maxLength: 1000
                      - type: object
                        required:
                          - content
                        properties:
                          content:
                            type: string
                            maxLength: 1000
                          external_id:
                            type: string
                            maxLength: 255
                          created_at:
                            type: string
                            format: date-time
            example:
              user_memory_tag: crm_48213
              memories:
                - Founder of a B2B logistics startup called Shipwise
                - content: Prefers calls after 6pm IST
                  external_id: note_91
                  created_at: '2026-05-01T00:00:00Z'
      responses:
        '201':
          description: The memories that were added, and how many were already known.
          content:
            application/json:
              schema:
                type: object
                properties:
                  user_memory_tag:
                    type: string
                  created:
                    type: array
                    items:
                      $ref: '#/components/schemas/Memory'
                  skipped:
                    type: integer
        '400':
          description: Invalid tag or memories.
        '401':
          description: Unauthorized — missing or invalid API key.
        '404':
          description: scenario_id is not one of your agents.
      security:
        - apiKeyAuth: []
components:
  schemas:
    Memory:
      type: object
      description: >-
        One remembered fact, held in the container named by its user_memory_tag.
        Every agent with memory on that runs a call under that tag is told it at
        the start of the call.
      properties:
        id:
          type: string
          format: uuid
          example: 452f76ca-c6cd-4ab9-9beb-ded26e54d903
        user_memory_tag:
          type: string
          example: crm_48213
        content:
          type: string
          description: One fact, one line.
          example: Prefers calls after 6pm IST
        token_estimate:
          type: integer
          example: 7
        source:
          type: string
          enum:
            - meeting
            - import
            - api
          description: '`meeting` = learned on a call, `import` = added via POST /memories.'
        source_scenario_id:
          type: string
          format: uuid
          nullable: true
          description: The agent that learned it, or that an import was attributed to.
        source_meeting_id:
          type: string
          format: uuid
          nullable: true
        external_id:
          type: string
          nullable: true
          description: The fact's id in the system it was imported from.
          example: note_91
        created_at:
          type: string
          format: date-time
          example: '2026-05-01T00:00:00.000Z'
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: wai_...
      description: >-
        API key from waterr.ai/settings?tab=api-keys. Send as `Authorization:
        Bearer wai_<your_key>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.