---
title: "POST /memories/create"
method: POST
path: "/memories/create"
---

# POST /memories/create

`POST /memories/create`

Creates a new Amazon Bedrock AgentCore Memory resource.

## Request body

- object
  - `clientToken` string — A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request but does not return an error.
  - `name` string, required — The name of the memory. The name must be unique within your account.
  - `description` string, password — The description of the memory.
  - `encryptionKeyArn` string — The Amazon Resource Name (ARN) of the KMS key used to encrypt the memory data.
  - `memoryExecutionRoleArn` string — The Amazon Resource Name (ARN) of the IAM role that provides permissions for the memory to access Amazon Web Services services.
  - `eventExpiryDuration` integer, required — The duration after which memory events expire. Specified as an ISO 8601 duration.
  - `memoryStrategies` MemoryStrategyInput[] — The memory strategies to use for this memory. Strategies define how information is extracted, processed, and consolidated.
    - `semanticMemoryStrategy` object — Input for creating a semantic memory strategy.
      - `name` string, required — The name of the semantic memory strategy.
      - `description` string, password — The description of the semantic memory strategy.
      - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces associated with the semantic memory strategy.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[] — The namespaceTemplates associated with the semantic memory strategy.
      - `memoryRecordSchema` MemoryRecordSchema — Schema for metadata on memory records generated by a strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
    - `summaryMemoryStrategy` object — Input for creating a summary memory strategy.
      - `name` string, required — The name of the summary memory strategy.
      - `description` string, password — The description of the summary memory strategy.
      - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces associated with the summary memory strategy.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[] — The namespaceTemplates associated with the summary memory strategy.
      - `memoryRecordSchema` object — Schema for metadata fields on records generated by this strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
    - `userPreferenceMemoryStrategy` object — Input for creating a user preference memory strategy.
      - `name` string, required — The name of the user preference memory strategy.
      - `description` string, password — The description of the user preference memory strategy.
      - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces associated with the user preference memory strategy.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[] — The namespaceTemplates associated with the user preference memory strategy.
      - `memoryRecordSchema` object — Schema for metadata fields on records generated by this strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
    - `customMemoryStrategy` object — Input for creating a custom memory strategy.
      - `name` string, required — The name of the custom memory strategy.
      - `description` string, password — The description of the custom memory strategy.
      - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces associated with the custom memory strategy.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[] — The namespaceTemplates associated with the custom memory strategy.
      - `configuration` object — The configuration for the custom memory strategy.
        - `semanticOverride` object — The semantic override configuration for a custom memory strategy.
          - `extraction` object — The extraction configuration for a semantic override.
            - `appendToPrompt` string, password, required — The text to append to the prompt for semantic extraction.
            - `modelId` string, required — The model ID to use for semantic extraction.
          - `consolidation` object — The consolidation configuration for a semantic override.
            - `appendToPrompt` string, password, required — The text to append to the prompt for semantic consolidation.
            - `modelId` string, required — The model ID to use for semantic consolidation.
        - `summaryOverride` object — The summary override configuration for a custom memory strategy.
          - `consolidation` object — The consolidation configuration for a summary override.
            - `appendToPrompt` string, password, required — The text to append to the prompt for summary consolidation.
            - `modelId` string, required — The model ID to use for summary consolidation.
        - `userPreferenceOverride` object — The user preference override configuration for a custom memory strategy.
          - `extraction` object — The extraction configuration for a user preference override.
            - `appendToPrompt` string, password, required — The text to append to the prompt for user preference extraction.
            - `modelId` string, required — The model ID to use for user preference extraction.
          - `consolidation` object — The consolidation configuration for a user preference override.
            - `appendToPrompt` string, password, required — The text to append to the prompt for user preference consolidation.
            - `modelId` string, required — The model ID to use for user preference consolidation.
        - `episodicOverride` object — The episodic memory strategy override configuration for a custom memory strategy.
          - `extraction` object — Contains configurations for overriding the extraction step of the episodic memory strategy.
            - `appendToPrompt` string, password, required — The text to append to the prompt for the extraction step of the episodic memory strategy.
            - `modelId` string, required — The model ID to use for the extraction step of the episodic memory strategy.
          - `consolidation` object — Contains configurations for overriding the consolidation step of the episodic memory strategy.
            - `appendToPrompt` string, password, required — The text to append to the prompt for the consolidation step of the episodic memory strategy.
            - `modelId` string, required — The model ID to use for the consolidation step of the episodic memory strategy.
          - `reflection` object — Contains configurations for overriding the reflection step of the episodic memory strategy.
            - `appendToPrompt` string, password, required — The text to append to the prompt for reflection step of the episodic memory strategy.
            - `modelId` string, required — The model ID to use for the reflection step of the episodic memory strategy.
            - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces to use for episodic reflection. Can be less nested than the episodic namespaces.Use namespaceTemplates instead
            - `namespaceTemplates` Namespace[] — The namespaceTemplates to use for episodic reflection. Can be less nested than the episodic namespaces.
            - `memoryRecordSchema` object — Schema for metadata fields on records generated by this reflection override.
              - …
        - `selfManagedConfiguration` object — The self managed configuration for a custom memory strategy.
          - `triggerConditions` TriggerConditionInput[] — A list of conditions that trigger memory processing.
            - `messageBasedTrigger` object — Message based trigger configuration.
              - …
            - `tokenBasedTrigger` object — Token based trigger configuration.
              - …
            - `timeBasedTrigger` object — Time based trigger configuration.
              - …
          - `invocationConfiguration` object, required — Configuration to invoke a self-managed memory processing pipeline with.
            - `topicArn` string, required — The ARN of the SNS topic for job notifications.
            - `payloadDeliveryBucketName` string, required — The S3 bucket name for event payload delivery.
          - `historicalContextWindowSize` integer — Number of historical messages to include in processing context.
      - `memoryRecordSchema` object — Schema for metadata fields on records generated by this strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
    - `episodicMemoryStrategy` object — Input for creating an episodic memory strategy
      - `name` string, required — The name of the episodic memory strategy.
      - `description` string, password — The description of the episodic memory strategy.
      - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces for which to create episodes.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[] — The namespaceTemplates for which to create episodes.
      - `reflectionConfiguration` object — The configuration for the reflections created with the episodic memory strategy.
        - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces over which to create reflections. Can be less nested than episode namespaces.Use namespaceTemplates instead
        - `namespaceTemplates` Namespace[] — The namespaceTemplates over which to create reflections. Can be less nested than episode namespaces.
        - `memoryRecordSchema` object — Schema for metadata fields on records generated by reflections.
          - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
            - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
            - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
            - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
            - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
              - …
      - `memoryRecordSchema` object — Schema for metadata fields on records generated by this strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
  - `indexedKeys` IndexedKey[] — Metadata keys to index for filtering. Once declared, indexed keys cannot be removed.
    - `key` string, required — The metadata key name to index.
    - `type` 'STRING' | 'STRINGLIST' | 'NUMBER', required — The data type of the indexed key.
  - `streamDeliveryResources` object — Configuration for streaming memory record data to external resources.
    - `resources` StreamDeliveryResource[] — List of stream delivery resource configurations.
      - `kinesis` object — Kinesis Data Stream configuration.
        - `dataStreamArn` string, required — ARN of the Kinesis Data Stream.
        - `contentConfigurations` ContentConfiguration[], required — Content configurations for stream delivery.
          - `type` 'MEMORY_RECORDS', required — Type of content to stream.
          - `level` 'METADATA_ONLY' | 'FULL_CONTENT' — Level of detail for streamed content.
  - `tags` object — A map of tag keys and values to assign to an AgentCore Memory. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.

## Response `202`

Success

- CreateMemoryOutput
  - `memory` object — The details of the created memory, including its ID, ARN, name, description, and configuration settings.
    - `arn` string, required — The Amazon Resource Name (ARN) of the memory.
    - `id` string, required — The unique identifier of the memory.
    - `name` string, required — The name of the memory.
    - `description` string, password — The description of the memory.
    - `encryptionKeyArn` string — The ARN of the KMS key used to encrypt the memory.
    - `memoryExecutionRoleArn` string — The ARN of the IAM role that provides permissions for the memory.
    - `eventExpiryDuration` integer, required — The number of days after which memory events will expire.
    - `status` 'CREATING' | 'ACTIVE' | 'FAILED' | 'DELETING' | 'UPDATING', required — The current status of the memory.
    - `failureReason` string — The reason for failure if the memory is in a failed state.
    - `createdAt` string, date-time, required — The timestamp when the memory was created.
    - `updatedAt` string, date-time, required — The timestamp when the memory was last updated.
    - `strategies` MemoryStrategy[] — The list of memory strategies associated with this memory.
      - `strategyId` string, required — The unique identifier of the memory strategy.
      - `name` string, required — The name of the memory strategy.
      - `description` string, password — The description of the memory strategy.
      - `configuration` object — The configuration of the memory strategy.
        - `type` 'SEMANTIC_OVERRIDE' | 'SUMMARY_OVERRIDE' | 'USER_PREFERENCE_OVERRIDE' | 'SELF_MANAGED' | 'EPISODIC_OVERRIDE' — The type of override for the strategy configuration.
        - `extraction` object — The extraction configuration for the memory strategy.
          - `customExtractionConfiguration` object — The custom extraction configuration.
            - `semanticExtractionOverride` object — The semantic extraction override configuration.
              - …
            - `userPreferenceExtractionOverride` object — The user preference extraction override configuration.
              - …
            - `episodicExtractionOverride` object — The configurations to override the default extraction step for the episodic memory strategy.
              - …
        - `consolidation` object — The consolidation configuration for the memory strategy.
          - `customConsolidationConfiguration` object — The custom consolidation configuration.
            - `semanticConsolidationOverride` object — The semantic consolidation override configuration.
              - …
            - `summaryConsolidationOverride` object — The summary consolidation override configuration.
              - …
            - `userPreferenceConsolidationOverride` object — The user preference consolidation override configuration.
              - …
            - `episodicConsolidationOverride` object — The configurations to override the default consolidation step for the episodic memory strategy.
              - …
        - `reflection` object — The reflection configuration for the memory strategy.
          - `customReflectionConfiguration` object — The configuration for a custom reflection strategy.
            - `episodicReflectionOverride` object — The configuration for a reflection strategy to override the default one.
              - …
          - `episodicReflectionConfiguration` object — The configuration for the episodic reflection strategy.
            - `namespaces` Namespace[] — This is a legacy parameter, use <code>namespaceTemplates</code>. The namespaces for which to create reflections. Can be less nested than the episodic namespaces.Use namespaceTemplates instead
            - `namespaceTemplates` Namespace[] — The namespaceTemplates for which to create reflections. Can be less nested than the episodic namespaces.
            - `memoryRecordSchema` object — "Schema for metadata fields on records generated by reflections.
              - …
        - `selfManagedConfiguration` object — Self-managed configuration settings.
          - `triggerConditions` TriggerCondition[], required — A list of conditions that trigger memory processing.
            - `messageBasedTrigger` object — Message based trigger configuration.
              - …
            - `tokenBasedTrigger` object — Token based trigger configuration.
              - …
            - `timeBasedTrigger` object — Time based trigger configuration.
              - …
          - `invocationConfiguration` object, required — The configuration to use when invoking memory processing.
            - `topicArn` string, required — The ARN of the SNS topic for job notifications.
            - `payloadDeliveryBucketName` string, required — The S3 bucket name for event payload delivery.
          - `historicalContextWindowSize` integer, required — The number of historical messages to include in processing context.
      - `type` 'SEMANTIC' | 'SUMMARIZATION' | 'USER_PREFERENCE' | 'CUSTOM' | 'EPISODIC', required — The type of the memory strategy.
      - `namespaces` Namespace[], required — This is a legacy parameter. The namespaces associated with the memory strategy.Use namespaceTemplates instead
      - `namespaceTemplates` Namespace[], required — The namespaceTemplates associated with the memory strategy.
      - `createdAt` string, date-time — The timestamp when the memory strategy was created.
      - `updatedAt` string, date-time — The timestamp when the memory strategy was last updated.
      - `status` 'CREATING' | 'ACTIVE' | 'DELETING' | 'FAILED' — The current status of the memory strategy.
      - `memoryRecordSchema` object — Schema for metadata fields on records generated by this strategy.
        - `metadataSchema` MetadataSchemaEntry[] — The metadata field definitions for this strategy.
          - `key` string, required — The metadata field name. Must match an indexed key to be queryable via metadata filters.
          - `type` 'STRING' | 'STRINGLIST' | 'NUMBER' — The MetadataValueType.
          - `extractionType` 'LLM_INFERRED' | 'STRICTLY_CONSISTENT' — Specifies whether the metadata value is extracted by the LLM or passed through deterministically from the event.
          - `extractionConfig` object — Configuration for extracting this metadata value from conversational content. Applicable only if extractionType is LLM inferred.
            - `llmExtractionConfig` object — Model-based extraction using a definition and instructions.
              - …
    - `indexedKeys` IndexedKey[] — The indexed metadata keys for this memory. Only indexed keys can be used in metadata filters.
      - `key` string, required — The metadata key name to index.
      - `type` 'STRING' | 'STRINGLIST' | 'NUMBER', required — The data type of the indexed key.
    - `streamDeliveryResources` object — Configuration for streaming memory record data to external resources.
      - `resources` StreamDeliveryResource[], required — List of stream delivery resource configurations.
        - `kinesis` object — Kinesis Data Stream configuration.
          - `dataStreamArn` string, required — ARN of the Kinesis Data Stream.
          - `contentConfigurations` ContentConfiguration[], required — Content configurations for stream delivery.
            - `type` 'MEMORY_RECORDS', required — Type of content to stream.
            - `level` 'METADATA_ONLY' | 'FULL_CONTENT' — Level of detail for streamed content.
    - `managedByResourceArn` string — ARN of the resource managing this memory (e.g. a harness). When set, strategy modifications and deletion are only allowed through the managing resource.

## Other responses

- `480` — ServiceQuotaExceededException
- `481` — ServiceException
- `482` — ValidationException
- `483` — AccessDeniedException
- `484` — ConflictException
- `485` — ResourceNotFoundException
- `486` — ThrottledException

---

[API](https://skmtc.net/aws/apis/bedrock-agentcore-control.md) · [All operations](https://skmtc.net/aws/apis/bedrock-agentcore-control/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/bedrock-agentcore-control/versions/0ebde766792b/schema)
