Validate a configuration (dry run)

Runs the full validation rule set against a configuration document without writing anything, returning { "valid": true } or { "valid": false, "errors": [...] }. These are the same checks create and replace apply. Always returns 200 — a failed validation is reported in the body, not as an error status.

Required scope: intelligence:write

Body·
required
application/json

A configuration as a single document of operators and actions.

  • name
    Type: string · Name
    required

    Human label for the configuration, unique within your account.

  • actions
    Type: array object[] · Actions

    The actions that fire when operator results meet their conditions.

    A delivery instruction that fires when operator results meet its condition.

  • description
    Type: string · Descriptionnullable

    Optional human-readable description.

  • operators
    Type: array object[] · Operators

    The operators this configuration runs, each with its granularity and context settings.

    A reference to an operator within a configuration, with its deployment-time settings.

  • template_id
    Type: integer · Template Idnullable

    Optional id of the template this was derived from. Recorded for lineage only; never merged.

Responses
  • application/json
  • application/json
  • application/json
Request Example for post/configurations/validate
curl https://api.simwood.com/intelligence/v1/configurations/validate \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "name": "",
  "description": "",
  "template_id": 1,
  "operators": [
    {
      "name": "",
      "version": 1,
      "granularity": {
        "on": "turn",
        "every": 1,
        "until_match": true
      },
      "context_window": 1,
      "include_prior_results": false,
      "prior_results_window": 3,
      "include_operator_results": [
        ""
      ],
      "operator_results_window": 1,
      "parameters": {
        "additionalProperty": ""
      }
    }
  ],
  "actions": [
    {
      "type": "webhook",
      "trigger": "operator_result",
      "once_per_session": false,
      "webhook_url": "",
      "webhook_headers": {
        "additionalProperty": "anything"
      },
      "whisper_channel": "caller",
      "content": {
        "additionalProperty": "anything"
      },
      "condition": {
        "operator": "",
        "expression": "",
        "all": [
          {
            "operator": "",
            "expression": ""
          }
        ],
        "any": [
          {
            "operator": "",
            "expression": ""
          }
        ]
      }
    }
  ]
}'
{
  "valid": true,
  "errors": [
    "string"
  ]
}