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

# Apply a template handler

> **Required scope:** write

**Required scope:** `write`

### Path parameters

<ParamField path="slug" type="string" required>
  Template slug
</ParamField>

### Query parameters

<ParamField query="mode" type="string">
  additive or replace
</ParamField>

### Response

`ApplyTemplateResponse`

<ResponseField name="entities_created" type="integer" required />

<ResponseField name="entities_skipped" type="integer" required />

<ResponseField name="errors" type="string[]" required />

<ResponseField name="input_predicates" type="string[]">
  The facts this rulebook now needs to reach a verdict — supply these (per decision via `facts`, or as KB triples) to drive it. Closes the apply→supply→decide loop so the caller isn't left guessing.
</ResponseField>

<ResponseField name="mode" type="string" required />

<ResponseField name="rules_created" type="integer" required />

<ResponseField name="rules_skipped" type="integer" required />

<ResponseField name="template_slug" type="string" required />

### Status codes

| Code  | Meaning                                            |
| ----- | -------------------------------------------------- |
| `200` | Template applied; returns per-item counts          |
| `401` | Unauthorized — missing or invalid credentials      |
| `402` | Quota exceeded                                     |
| `403` | Forbidden — the key/token lacks the required scope |
| `404` | Template not found                                 |
| `429` | Rate limited — see Retry-After / X-RateLimit-Reset |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.nsr.stateset.com/api/v1/templates/{slug}/apply' \
    --header 'X-API-Key: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "entities_created": 1,
    "entities_skipped": 1,
    "errors": [
      "string"
    ],
    "input_predicates": [
      "string"
    ],
    "mode": "string",
    "rules_created": 1,
    "rules_skipped": 1,
    "template_slug": "string"
  }
  ```
</ResponseExample>
