---
title: "Rule definitions (write — POST)"
method: POST
path: "/api/rule-definitions"
tags: ["Rules"]
---

# Rule definitions (write — POST)

`POST /api/rule-definitions`

## Request

- Base URL: `https://api.kiloiot.io`
- URL: `https://api.kiloiot.io/api/rule-definitions`
- Auth: API key in header `X-API-Key` and API key in header `X-Organization-Id`

Create and action rule definitions. Endpoints: POST /api/rule-definitions (create), POST /api/rule-definitions/provision (one-click provision), POST /api/rule-definitions/{id}/clone (clone), POST /api/rule-definitions/{id}/lock (lock for editing), POST /api/rule-definitions/{id}/force-unlock (admin force unlock), POST /api/rule-definitions/{id}/restore (restore from trash), POST /api/rule-definitions/{id}/restore-version (restore historical version), POST /api/rule-definitions/{id}/deploy (deploy rule), POST /api/rule-definitions/{id}/stop (stop rule).

**Required scope:** `rules:write`

## Request body

- object
  - `name` string, required
  - `description` string
  - `organizationId` string, required
  - `bpmnXml` string: Base64-encoded BPMN XML diagram

## Response `200`

Created

- object
  - `ruleDefinition` object
    - `id` string
    - `name` string
    - `description` string
    - `organizationId` string
    - `authorId` string
    - `version` integer
    - `createdAt` string
    - `updatedAt` string

## Other responses

- `401`: Missing or invalid API key
- `403`: Insufficient permissions (missing required scope)

---

[API](https://skmtc.dev/kiloiot/apis/kiloiot-public-api.md) · [All operations](https://skmtc.dev/kiloiot/apis/kiloiot-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kiloiot/apis/kiloiot-public-api/revisions/faf39bde186c?raw)
