# Build conversation context from per-source specs **POST /api/v1/projects/{id}/memory/retrieval/context-from-sources** Assembles conversation context from an explicit, per-source-configured set of sources — each source declares its own retrieval mode (text, semantic, hybrid), metadata filter, and candidate count. Results are merged and de-duplicated across sources, optionally reranked, then formatted and budgeted like build_context. The project scope is carried by the route id path parameter and the org is derived from that project. Provide a non-empty query, the user_id whose memory to assemble, and a non-empty sources list. ## Servers - https://agentengine.mongodb.com: https://agentengine.mongodb.com () ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **id** (string) Project ID ### Body: application/json (object) Per-source context build request - **format_style** (string) - **include_memories** (boolean) - **max_tokens** (integer) MaxTokens is the gross context-construction budget (not a fetch cost), interpreted like build_context: the server subtracts a 500-token formatting reserve, then greedily selects whole memory chunks that fit. - **model_type** (string) - **query** (string) - **query_embedding** (array[number]) - **rerank** (boolean) Rerank reorders the merged results by a relevance rerank when available. - **session_id** (string) - **sources** (array[object]) Sources is the explicit, per-source-configured set to search; the memory server enforces the count bounds (1..MAX_CONTEXT2_SOURCES), each source's top_k bounds, and the no-duplicate-source rule. - **user_id** (string) - **visibility** (string) ## 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 Assembled context payload with per-source metadata #### Body: application/json (object) object ### 400 Invalid request body or missing user_id/query/sources #### 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 read access to the project #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 500 Internal error #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 502 Memory service unreachable #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) [Powered by Bump.sh](https://bump.sh)