> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trychannel3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Filters

**Filters** are hard catalog rules for **this turn only** — in-stock, a set of retailers, a price range. They use the same `SearchFilters` shape as the [Search API](/guides/search). They do not stick across turns.

<CodeGroup>
  ```typescript TypeScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const stream = await client.conversations.createTurnStream({
    message: {
      role: "user",
      parts: [{ type: "text", text: "in brown instead" }],
    },
    conversation_id: conversationId,
    filters: { availability: ["InStock"], website_ids: ["nordstrom.com"] },
  });
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  stream = client.conversations.create_turn_stream(
      message={
          "role": "user",
          "parts": [{"type": "text", "text": "in brown instead"}],
      },
      conversation_id=conversation_id,
      filters={"availability": ["InStock"], "website_ids": ["nordstrom.com"]},
  )
  ```

  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -N -X POST https://api.trychannel3.com/v1/conversations \
    -H "Authorization: Bearer c3_ct_..." \
    -H "Content-Type: application/json" \
    -d '{
      "message": {
        "role": "user",
        "parts": [{"type": "text", "text": "in brown instead"}]
      },
      "conversation_id": "conv_REPLACE_ME",
      "filters": {
        "availability": ["InStock"],
        "website_ids": ["nordstrom.com"]
      }
    }'
  ```
</CodeGroup>

For shopper preferences and app notes that should last the whole conversation, use [context](/conversations/context).
