---
title: "Decide typed questions from store evidence"
method: POST
path: "/v1/stores/decide"
tags: ["stores"]
---

# Decide typed questions from store evidence

`POST /v1/stores/decide`

## Request

- Base URL: `https://api.mixedbread.com`
- URL: `https://api.mixedbread.com/v1/stores/decide`
- Auth: HTTP bearer

Answer typed questions about a state, grounded in the stores' contents.

## Request body

- StoreDecisionParams: Typed questions about a state, answered from the stores' contents.
  - `store_identifiers` union[], required: IDs or names of stores
    - union
      - string
      - string, uuid
  - `top_k` integer: Number of chunks retrieved for each question
  - `filters` union: Optional filter conditions
    - SearchFilterInput: Represents a filter with AND, OR, and NOT conditions.
      - `all` union[], nullable: List of conditions or filters to be ANDed together
        - union
          - SearchFilterInput (recursive)
          - SearchFilterCondition: Represents a condition with a field, operator, and value.
            - `key` string, required: The field to apply the condition on
            - `value` string, required: The value to compare against
            - `operator` 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'like' | 'contains' | 'starts_with' | 'not_like' | 'regex', required: Operator for a filter condition.
      - `any` union[], nullable: List of conditions or filters to be ORed together
        - union
          - SearchFilterInput (recursive)
          - SearchFilterCondition: Represents a condition with a field, operator, and value.
            - `key` string, required: The field to apply the condition on
            - `value` string, required: The value to compare against
            - `operator` 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'like' | 'contains' | 'starts_with' | 'not_like' | 'regex', required: Operator for a filter condition.
      - `none` union[], nullable: List of conditions or filters to be NOTed
        - union
          - SearchFilterInput (recursive)
          - SearchFilterCondition: Represents a condition with a field, operator, and value.
            - `key` string, required: The field to apply the condition on
            - `value` string, required: The value to compare against
            - `operator` 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'like' | 'contains' | 'starts_with' | 'not_like' | 'regex', required: Operator for a filter condition.
    - SearchFilterCondition: Represents a condition with a field, operator, and value.
      - `key` string, required: The field to apply the condition on
      - `value` string, required: The value to compare against
      - `operator` 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'like' | 'contains' | 'starts_with' | 'not_like' | 'regex', required: Operator for a filter condition.
    - union[]
      - union
        - SearchFilterInput: Represents a filter with AND, OR, and NOT conditions.
          - `all` union[], nullable: List of conditions or filters to be ANDed together
            - union
              - …
          - `any` union[], nullable: List of conditions or filters to be ORed together
            - union
              - …
          - `none` union[], nullable: List of conditions or filters to be NOTed
            - union
              - …
        - SearchFilterCondition: Represents a condition with a field, operator, and value.
          - `key` string, required: The field to apply the condition on
          - `value` string, required: The value to compare against
          - `operator` 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'like' | 'contains' | 'starts_with' | 'not_like' | 'regex', required: Operator for a filter condition.
  - `file_ids` union: Optional list of file IDs to filter chunks by (inclusion filter)
    - unknown[]
      - unknown
    - string[]
  - `search_options` StoreChunkSearchOptions: Options for configuring store chunk searches.
    - `score_threshold` number: Minimum similarity score threshold
    - `rewrite_query` boolean: Whether to rewrite the query. Ignored when agentic is enabled (the agent handles query decomposition).
    - `rerank` union: Whether to rerank results and optional reranking configuration. Ignored when agentic is enabled (the agent handles ranking).
      - boolean
      - RerankConfig: Represents a reranking configuration.
        - `model` string: The name of the reranking model
        - `with_metadata` union: Whether to include metadata in the reranked results
          - boolean
          - string[]
        - `top_k` integer, nullable: Maximum number of results to return after reranking. If None, returns all reranked results.
    - `agentic` union: Whether to use agentic multi-query search with automatic query decomposition and ranking. When enabled, rewrite_query and rerank options are ignored.
      - boolean
      - AgenticSearchConfig: Configuration for agentic multi-query search.
        - `max_rounds` integer: Maximum number of search rounds
        - `queries_per_round` integer: Maximum queries per round
        - `strict_top_k` boolean: Whether the agent fills the final ranking to top_k chunks from what it retrieved, capped at top_k, instead of returning only the chunks it judged relevant
        - `media_content` 'auto' | 'never' | 'always': Controls when retrieved image content is provided to the agent. `auto` sends images only when no OCR text or summary is available, `never` disables image content, and `always` sends image content when available. Currently not forwarded: the search agent runs without image content.
        - `instructions` string, nullable: Additional custom instructions (followed only when not in conflict with existing rules)
        - `verbose` boolean: Internal: when set, the response includes a `trace` field with the full tool-call timeline. Used by the Mixedbread playground; not part of the documented public API.
    - `lsf` boolean, nullable: Whether to apply the learned scoring function to second-stage scoring. Requires weights configured for the searched stores; silently skipped otherwise.
    - `return_metadata` boolean: Whether to return file metadata
  - `state` union: Optional context shared by all questions, such as the subject they are about; it also steers the search
    - string
    - object
    - string[]
  - `questions` object, required: The questions, keyed by name

## Response `200`

The answers, keyed by question name

- StoreDecisionResponse
  - `answers` object, required: The answers, keyed by question name
  - `usage` Usage, required
    - `prompt_tokens` integer, required: The number of tokens used for the prompt
    - `total_tokens` integer, required: The total number of tokens used
    - `completion_tokens` integer, nullable: The number of tokens used for the completion

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-03** `da24b4f7e983`: 1 warning
  - removed the request property `search_options/apply_search_rules`
- **2026-10-31** `9179fec93d29`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mixedbread/apis/mxbai-omni/changes/v1/stores/decide/post.md)

---

[API](https://skmtc.dev/mixedbread/apis/mxbai-omni.md) - [All operations](https://skmtc.dev/mixedbread/apis/mxbai-omni/llms.txt) - [OpenAPI document](https://skmtc.dev/mixedbread/apis/mxbai-omni/revisions/da24b4f7e983?raw)
