Get project memory configuration

GET /api/v1/projects/{id}/memory/config

Returns the current project-level memory server configuration. The project scope is carried by the route id path parameter and the org is derived from that project.

Path parameters

  • id string Required

    Project ID

Responses

  • Unsupported or malformed API version, an operation unavailable in the selected published contract, or an unacceptable representation (including unsupported media-type parameters or excluded SSE). Existing authentication, authorization, and rate-limit failures take precedence.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Optional validation details defined by the standard error schema; API negotiation errors do not emit this field.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Fields with validation failures.

        Hide fields attributes Show fields attributes object

        A field and its validation failure.

        • description string Required

          Human-readable validation failure.

        • field string Required

          Name or path of the invalid request field.

    • detail string Required

      Human-readable error details.

    • error integer Required

      HTTP status code.

    • errorCode string Required

      Machine-readable error code.

    • parameters array[string]

      Request parameter names associated with the error; omitted when none apply.

    • reason string Required

      HTTP status reason phrase.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Optional validation details defined by the standard error schema; API negotiation errors do not emit this field.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Fields with validation failures.

        Hide fields attributes Show fields attributes object

        A field and its validation failure.

        • description string Required

          Human-readable validation failure.

        • field string Required

          Name or path of the invalid request field.

    • detail string Required

      Human-readable error details.

    • error integer Required

      HTTP status code.

    • errorCode string Required

      Machine-readable error code.

    • parameters array[string]

      Request parameter names associated with the error; omitted when none apply.

    • reason string Required

      HTTP status reason phrase.

  • 200

    OK

    Hide response attributes Show response attributes object
    • config object
      Hide config attributes Show config attributes object
      • background_extraction object
        Hide background_extraction attribute Show background_extraction attribute object
        • snapshot object
          Hide snapshot attributes Show snapshot attributes object
          • delete_promoted boolean
          • embed_stm_before_promotion boolean
          • max_messages integer
          • stale_minutes integer
          • topic_shift_enabled boolean
          • topic_shift_threshold number
          • ttl_days integer
      • capacity object

        Capacity sets memory-server's replica count for this project. Infra-only: never mounted into the memory-server container itself.

        Hide capacity attributes Show capacity attributes object
        • max_replicas integer

          Minimum value is 1, maximum value is 10.

        • min_replicas integer

          Minimum value is 1, maximum value is 10.

      • custom_memory_types array[object]

        CustomMemoryTypes declares user-defined memory types the memory server provisions. Create-only: the gateway rejects edits or removals of previously accepted declarations. The count limit is enforced by ValidateCustomMemoryTypes, not a struct tag, so the constant stays the single source of truth. The binding:"max" tag is doc-only — the handler decodes with json.Decoder, not gin binding, so it has no runtime effect; it exists solely to surface the limit in the generated OpenAPI spec.

        Not more than 5 elements.

        Hide custom_memory_types attributes Show custom_memory_types attributes object
        • collection string Required
        • name string Required
        • tags array[object]

          Not more than 10 elements.

          Hide tags attribute Show tags attribute object
          • name string
      • extraction object
        Hide extraction attributes Show extraction attributes object
        • enabled array[string]

          Enabled lists which extraction types to run. Each element must be one of: semantic, episodic, taxonomic, preferences, procedural.

        • episodic object
          Hide episodic attribute Show episodic attribute object
          • prompt string

            Maximum length is 4096.

        • preferences object
          Hide preferences attribute Show preferences attribute object
          • prompt string

            Maximum length is 4096.

        • procedural object
          Hide procedural attribute Show procedural attribute object
          • prompt string

            Maximum length is 4096.

        • semantic object
          Hide semantic attribute Show semantic attribute object
          • prompt string

            Maximum length is 4096.

        • taxonomic object
          Hide taxonomic attribute Show taxonomic attribute object
          • prompt string

            Maximum length is 4096.

      • extraction_llm object
        Hide extraction_llm attributes Show extraction_llm attributes object
        • api_key_secret string

          APIKeySecret is the project-scoped secret name that holds the extraction credential. One of: LLM_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, CEREBRAS_API_KEY. Omit to auto-detect from those env vars.

          Values are LLM_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, or CEREBRAS_API_KEY.

        • auth_header string

          AuthHeader is the HTTP header the gateway expects for the API key. "authorization" sends Bearer auth (LiteLLM default). "api-key" sends the Azure / Grove style header. Omit for the provider default.

          Values are authorization or api-key.

        • base_url string

          BaseURL is an optional gateway endpoint. HTTPS is required except for loopback HTTP. Userinfo (embedded credentials) is rejected. When set, extraction calls this URL instead of the public provider API.

          Maximum length is 2048.

        • model string

          Maximum length is 256.

        • provider string

          Provider must be one of: openai, anthropic, gemini, cerebras.

          Values are openai, anthropic, gemini, or cerebras.

      • log_level string

        LogLevel sets the memory-server root log level for the project. One of: debug, info, warning, error, critical. Omit the field to leave the server default (info); an explicit empty string is rejected.

        Values are debug, info, warning, error, or critical.

      • metadata_partition_index object

        MetadataPartitionIndex selects, per in-scope memory type, which search index legs carry the partition filter fields: "vector", "text", or "both". A type omitted from the map defaults to the vector leg only. Freely mutable — it only affects which legs newly-provisioned indexes get.

        Hide metadata_partition_index attribute Show metadata_partition_index attribute object
        • * array[string] Additional properties
      • metadata_partition_key array[object]

        MetadataPartitionKey declares filterable metadata attributes that every in-scope memory type (semantic, episodic, procedural, short_term) indexes as a partition filter field. Create-only: the gateway rejects removing or retyping a previously accepted key (adds are allowed). The count limit is enforced by ValidateMetadataPartition, not a struct tag, so the constant stays the single source of truth. The binding:"max" tag is doc-only — the handler decodes with json.Decoder, not gin binding, so it has no runtime effect; it exists solely to surface the limit in the OpenAPI spec.

        Not more than 10 elements.

        Hide metadata_partition_key attributes Show metadata_partition_key attributes object
        • name string Required
        • type string Required
      • short_term object
        Hide short_term attribute Show short_term attribute object
        • embed_on_write boolean

          EmbedOnWrite makes the memory server embed a turn's content synchronously at write time when the caller supplies no embedding, so the turn is searchable by relevance immediately instead of waiting for background embedding. Defaults to false (fast write path). Distinct from SnapshotConfig.EmbedSTMBeforePromotion, which batch-embeds in the worker before a promotion check.

      • tasks object

        Tasks tunes the memory server's background task processing.

        Hide tasks attribute Show tasks attribute object
        • legacy_retry boolean

          LegacyRetry reverts task-failure settlement to the legacy bounded retry budget (three retries, then dead-letter) instead of retrying transient failures until task expiry. Emergency brake: enabling it can mass-terminalize an accumulated retry backlog. Defaults to false.

      • voyage object
        Hide voyage attributes Show voyage attributes object
        • dimension integer
        • model string

          Maximum length is 256.

    • generation integer
    • received_generation integer
    • updated_at string
    Hide response attributes Show response attributes object
    • config object
      Hide config attributes Show config attributes object
      • background_extraction object
        Hide background_extraction attribute Show background_extraction attribute object
        • snapshot object
          Hide snapshot attributes Show snapshot attributes object
          • delete_promoted boolean
          • embed_stm_before_promotion boolean
          • max_messages integer
          • stale_minutes integer
          • topic_shift_enabled boolean
          • topic_shift_threshold number
          • ttl_days integer
      • capacity object

        Capacity sets memory-server's replica count for this project. Infra-only: never mounted into the memory-server container itself.

        Hide capacity attributes Show capacity attributes object
        • max_replicas integer

          Minimum value is 1, maximum value is 10.

        • min_replicas integer

          Minimum value is 1, maximum value is 10.

      • custom_memory_types array[object]

        CustomMemoryTypes declares user-defined memory types the memory server provisions. Create-only: the gateway rejects edits or removals of previously accepted declarations. The count limit is enforced by ValidateCustomMemoryTypes, not a struct tag, so the constant stays the single source of truth. The binding:"max" tag is doc-only — the handler decodes with json.Decoder, not gin binding, so it has no runtime effect; it exists solely to surface the limit in the generated OpenAPI spec.

        Not more than 5 elements.

        Hide custom_memory_types attributes Show custom_memory_types attributes object
        • collection string Required
        • name string Required
        • tags array[object]

          Not more than 10 elements.

          Hide tags attribute Show tags attribute object
          • name string
      • extraction object
        Hide extraction attributes Show extraction attributes object
        • enabled array[string]

          Enabled lists which extraction types to run. Each element must be one of: semantic, episodic, taxonomic, preferences, procedural.

        • episodic object
          Hide episodic attribute Show episodic attribute object
          • prompt string

            Maximum length is 4096.

        • preferences object
          Hide preferences attribute Show preferences attribute object
          • prompt string

            Maximum length is 4096.

        • procedural object
          Hide procedural attribute Show procedural attribute object
          • prompt string

            Maximum length is 4096.

        • semantic object
          Hide semantic attribute Show semantic attribute object
          • prompt string

            Maximum length is 4096.

        • taxonomic object
          Hide taxonomic attribute Show taxonomic attribute object
          • prompt string

            Maximum length is 4096.

      • extraction_llm object
        Hide extraction_llm attributes Show extraction_llm attributes object
        • api_key_secret string

          APIKeySecret is the project-scoped secret name that holds the extraction credential. One of: LLM_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, CEREBRAS_API_KEY. Omit to auto-detect from those env vars.

          Values are LLM_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, or CEREBRAS_API_KEY.

        • auth_header string

          AuthHeader is the HTTP header the gateway expects for the API key. "authorization" sends Bearer auth (LiteLLM default). "api-key" sends the Azure / Grove style header. Omit for the provider default.

          Values are authorization or api-key.

        • base_url string

          BaseURL is an optional gateway endpoint. HTTPS is required except for loopback HTTP. Userinfo (embedded credentials) is rejected. When set, extraction calls this URL instead of the public provider API.

          Maximum length is 2048.

        • model string

          Maximum length is 256.

        • provider string

          Provider must be one of: openai, anthropic, gemini, cerebras.

          Values are openai, anthropic, gemini, or cerebras.

      • log_level string

        LogLevel sets the memory-server root log level for the project. One of: debug, info, warning, error, critical. Omit the field to leave the server default (info); an explicit empty string is rejected.

        Values are debug, info, warning, error, or critical.

      • metadata_partition_index object

        MetadataPartitionIndex selects, per in-scope memory type, which search index legs carry the partition filter fields: "vector", "text", or "both". A type omitted from the map defaults to the vector leg only. Freely mutable — it only affects which legs newly-provisioned indexes get.

        Hide metadata_partition_index attribute Show metadata_partition_index attribute object
        • * array[string] Additional properties
      • metadata_partition_key array[object]

        MetadataPartitionKey declares filterable metadata attributes that every in-scope memory type (semantic, episodic, procedural, short_term) indexes as a partition filter field. Create-only: the gateway rejects removing or retyping a previously accepted key (adds are allowed). The count limit is enforced by ValidateMetadataPartition, not a struct tag, so the constant stays the single source of truth. The binding:"max" tag is doc-only — the handler decodes with json.Decoder, not gin binding, so it has no runtime effect; it exists solely to surface the limit in the OpenAPI spec.

        Not more than 10 elements.

        Hide metadata_partition_key attributes Show metadata_partition_key attributes object
        • name string Required
        • type string Required
      • short_term object
        Hide short_term attribute Show short_term attribute object
        • embed_on_write boolean

          EmbedOnWrite makes the memory server embed a turn's content synchronously at write time when the caller supplies no embedding, so the turn is searchable by relevance immediately instead of waiting for background embedding. Defaults to false (fast write path). Distinct from SnapshotConfig.EmbedSTMBeforePromotion, which batch-embeds in the worker before a promotion check.

      • tasks object

        Tasks tunes the memory server's background task processing.

        Hide tasks attribute Show tasks attribute object
        • legacy_retry boolean

          LegacyRetry reverts task-failure settlement to the legacy bounded retry budget (three retries, then dead-letter) instead of retrying transient failures until task expiry. Emergency brake: enabling it can mass-terminalize an accumulated retry backlog. Defaults to false.

      • voyage object
        Hide voyage attributes Show voyage attributes object
        • dimension integer
        • model string

          Maximum length is 256.

    • generation integer
    • received_generation integer
    • updated_at string
  • 401

    Missing or invalid credentials

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
  • 403

    Caller lacks read permission

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
  • 404

    No config stored for project

    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
    Hide response attributes Show response attributes object
    • code string
    • error string
    • success boolean
GET /api/v1/projects/{id}/memory/config
curl \
 --request GET 'https://agentengine.mongodb.com/api/v1/projects/{id}/memory/config' \
 --header "Authorization: $API_KEY"
Response examples (406)
{
  "detail": "This operation is not available in API version 2026-09-20-preview.",
  "error": 406,
  "errorCode": "OPERATION_NOT_IN_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
{
  "detail": "This operation supports text/event-stream, which the Accept header excludes. Remove unsupported media-type parameters or accept this type with a positive q value.",
  "error": 406,
  "errorCode": "UNACCEPTABLE_MEDIA_TYPE",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
{
  "detail": "The requested API version is not supported. Supported versions: 2026-09-20-preview.",
  "error": 406,
  "errorCode": "UNSUPPORTED_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
Response examples (406)
{
  "detail": "This operation is not available in API version 2026-09-20-preview.",
  "error": 406,
  "errorCode": "OPERATION_NOT_IN_API_VERSION",
  "parameters": [
    "Accept"
  ],
  "reason": "Not Acceptable"
}
Response examples (200)
{
  "config": {
    "background_extraction": {
      "snapshot": {
        "delete_promoted": true,
        "embed_stm_before_promotion": true,
        "max_messages": 42,
        "stale_minutes": 42,
        "topic_shift_enabled": true,
        "topic_shift_threshold": 42.0,
        "ttl_days": 42
      }
    },
    "capacity": {
      "max_replicas": 42,
      "min_replicas": 42
    },
    "custom_memory_types": [
      {
        "collection": "string",
        "name": "string",
        "tags": [
          {
            "name": "string"
          }
        ]
      }
    ],
    "extraction": {
      "enabled": [
        "string"
      ],
      "episodic": {
        "prompt": "string"
      },
      "preferences": {
        "prompt": "string"
      },
      "procedural": {
        "prompt": "string"
      },
      "semantic": {
        "prompt": "string"
      },
      "taxonomic": {
        "prompt": "string"
      }
    },
    "extraction_llm": {
      "api_key_secret": "LLM_API_KEY",
      "auth_header": "authorization",
      "base_url": "string",
      "model": "string",
      "provider": "openai"
    },
    "log_level": "debug",
    "metadata_partition_index": {
      "additionalProperty1": [
        "string"
      ],
      "additionalProperty2": [
        "string"
      ]
    },
    "metadata_partition_key": [
      {
        "name": "string",
        "type": "string"
      }
    ],
    "short_term": {
      "embed_on_write": true
    },
    "tasks": {
      "legacy_retry": true
    },
    "voyage": {
      "dimension": 42,
      "model": "string"
    }
  },
  "generation": 42,
  "received_generation": 42,
  "updated_at": "string"
}
Response examples (200)
{
  "config": {
    "background_extraction": {
      "snapshot": {
        "delete_promoted": true,
        "embed_stm_before_promotion": true,
        "max_messages": 42,
        "stale_minutes": 42,
        "topic_shift_enabled": true,
        "topic_shift_threshold": 42.0,
        "ttl_days": 42
      }
    },
    "capacity": {
      "max_replicas": 42,
      "min_replicas": 42
    },
    "custom_memory_types": [
      {
        "collection": "string",
        "name": "string",
        "tags": [
          {
            "name": "string"
          }
        ]
      }
    ],
    "extraction": {
      "enabled": [
        "string"
      ],
      "episodic": {
        "prompt": "string"
      },
      "preferences": {
        "prompt": "string"
      },
      "procedural": {
        "prompt": "string"
      },
      "semantic": {
        "prompt": "string"
      },
      "taxonomic": {
        "prompt": "string"
      }
    },
    "extraction_llm": {
      "api_key_secret": "LLM_API_KEY",
      "auth_header": "authorization",
      "base_url": "string",
      "model": "string",
      "provider": "openai"
    },
    "log_level": "debug",
    "metadata_partition_index": {
      "additionalProperty1": [
        "string"
      ],
      "additionalProperty2": [
        "string"
      ]
    },
    "metadata_partition_key": [
      {
        "name": "string",
        "type": "string"
      }
    ],
    "short_term": {
      "embed_on_write": true
    },
    "tasks": {
      "legacy_retry": true
    },
    "voyage": {
      "dimension": 42,
      "model": "string"
    }
  },
  "generation": 42,
  "received_generation": 42,
  "updated_at": "string"
}
Response examples (401)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (401)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (403)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (403)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (404)
{
  "code": "string",
  "error": "string",
  "success": true
}
Response examples (404)
{
  "code": "string",
  "error": "string",
  "success": true
}