# Set project memory configuration **PUT /api/v1/projects/{id}/memory/config** Stores the project-level memory server configuration (voyage, extraction, snapshot settings). The project scope is carried by the route id path parameter and the org is derived from that project. Takes effect after the next memory-config sync. ## Servers - https://agentengine.mongodb.com: https://agentengine.mongodb.com () ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **id** (string) Project ID ### Body: application/json (object) Typed JSON config - **background_extraction** (object) - **capacity** (object) Capacity sets memory-server's replica count for this project. Infra-only: never mounted into the memory-server container itself. - **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. - **extraction** (object) - **extraction_llm** (object) - **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. - **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. - **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. - **short_term** (object) - **tasks** (object) Tasks tunes the memory server's background task processing. - **voyage** (object) ## Responses ### 406 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. #### Body: application/json (object) - **badRequestDetail** (object) Optional validation details defined by the standard error schema; API negotiation errors do not emit this field. - **detail** (string) Human-readable error details. - **error** (integer) HTTP status code. - **errorCode** (string) Machine-readable error code. - **parameters** (array[string]) Request parameter names associated with the error; omitted when none apply. - **reason** (string) HTTP status reason phrase. ### 200 OK #### Body: application/json (object) - **config** (object) - **generation** (integer) - **updated_at** (string) ### 400 Invalid config: unknown field, wrong type, or invalid enum value #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 401 Missing or invalid credentials #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 403 Caller lacks deployment-management permission #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 413 Config exceeds 64 KB #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) [Powered by Bump.sh](https://bump.sh)