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

# Evaluate conversation rule

> Run one rule against an existing conversation and return the evaluated rule-node results.

Evaluates a rule against the context already stored on one conversation. Use this when you want to debug or preview how a rule resolves for a real conversation record without constructing the input context yourself.

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `write` scope.
</ParamField>

## Path parameters

<ParamField path="id" type="string" required>
  Conversation ID.
</ParamField>

<ParamField path="ruleId" type="string" required>
  Rule ID to evaluate.
</ParamField>

## Response

Returns an array of rule-node evaluation results. Each item describes how a node resolved while the rule was evaluated against the conversation.

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api-prod.usefini.com/v2/hc-interactions/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/evaluate-rule/b8b8d87b-2f0c-47f6-8a8a-546da73e0820/public' \
    --header 'Authorization: Bearer fini_your_api_key'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api-prod.usefini.com/v2/hc-interactions/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/evaluate-rule/b8b8d87b-2f0c-47f6-8a8a-546da73e0820/public', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer fini_your_api_key'
    }
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api-prod.usefini.com/v2/hc-interactions/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/evaluate-rule/b8b8d87b-2f0c-47f6-8a8a-546da73e0820/public",
      headers={"Authorization": "Bearer fini_your_api_key"},
  )

  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "a5221094-72d4-4b9c-8d30-2f785b108bd9",
    "botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
    "status": "resolved",
    "source": "widget",
    "user": {
      "name": "Sam Lee",
      "email": "customer@example.com"
    },
    "messages": [
      {
        "role": "user",
        "content": "How do refunds work?",
        "createdAt": "2026-07-28T08:55:32.000Z"
      },
      {
        "role": "assistant",
        "content": "Refunds are available within 30 days.",
        "createdAt": "2026-07-28T08:55:40.000Z"
      }
    ],
    "createdAt": "2026-07-28T08:55:32.000Z",
    "updatedAt": "2026-07-28T09:10:18.000Z"
  }
  ```
</ResponseExample>

<Note>
  This is a diagnostic execution route. It evaluates the rule and returns node results; it does not send a reply to the customer.
</Note>
