---
title: "POST /recipes"
method: POST
path: "/recipes"
tags: ["recipes"]
---

# POST /recipes

`POST /recipes`

## Request

- Base URL: `https://api.propstack.de/v2`
- URL: `https://api.propstack.de/v2/recipes`
- Auth: API key in header `X-Api-Key`

Create an automation

## Request body

- PostRecipes: Create an automation
  - `title` string: Automation title; null clears it
  - `live` boolean: Whether the automation runs; defaults to false on creation
  - `changed_attribute` string: Only run when this attribute changes; null clears it
  - `iteration_key` string: Runtime array variable to iterate over; null clears it
  - `webhook_url` string: Target URL for send_webhook; null clears it
  - `schedule_type` string: Optional yearly recurrence; null clears it
  - `trigger` object, required
    - `type` string, required: Stable trigger identifier, e.g. MESSAGE_CREATED; null permits subsequent-only execution
  - `conditions` object[]
    - `field` string, required: Runtime variable key, e.g. client__id
    - `operator` 'exact' | 'not-exact' | 'text-match' | 'not-text-match' | 'include' | 'exclude' | 'in' | 'not-in' | 'gt' | 'lt' | 'exists' | 'missing' | 'future' | 'past' | 'today', required: Machine-readable comparison operator, e.g. exact
    - `value` string: Literal JSON value or runtime variable key
  - `action` object, required
    - `type` 'create_note' | 'create_todo' | 'create_decision' | 'create_cancellation' | 'create_message' | 'create_client' | 'update_client' | 'update_property' | 'update_message' | 'create_deal' | 'send_webhook' | 'update_project' | 'forward_message' | 'send_superchat_message' | 'resend_message_if_lp_not_visited' | 'call_proppi', required: Action identifier, e.g. send_webhook
    - `options` unknown
  - `schedule` object
    - `raw` string: Chronic schedule string, e.g. in 5 seconds; null clears it
  - `next_automation_ids` integer[]: Subsequent automation IDs in this shop; null clears to []

## Response `201`

Create an automation

- RecipeEntity: RecipeEntity model
  - `id` integer
  - `title` string: Automation title
  - `live` boolean: Whether the automation runs
  - `changed_attribute` string: Attribute that must change to run
  - `iteration_key` string: Runtime array variable to iterate over
  - `webhook_url` string: Target URL for send_webhook
  - `schedule_type` string: Optional yearly recurrence
  - `trigger` object: Trigger configuration
  - `conditions` RecipesRecipeConditionsEntity[]: List of conditions
    - `field` string: Field on which condition is evaluated
    - `operator` string: Comparison operator
    - `value` string: Value to compare against
  - `action` object: Action to be executed
  - `schedule` RecipesRecipeScheduleEntity
    - `raw` string: Raw schedule string
    - `parsed_at` string: Parsed schedule time (ISO8601)
  - `next_automation_ids` integer[]: IDs of next automations to be triggered
  - `created_at` string
  - `updated_at` string

## Other responses

- `400`: validation_error
- `401`: authentication_error
- `403`: authorization_error
- `404`: not_found_error
- `422`: validation_error
- `429`: rate_limit_exceeded
- `500`: internal_server_error

## Changes

- **2026-11-04** `b68ea1933caa`: 1 info
  - added the non-success response with the status `429`
- **2026-10-13** `3bcc30cd7c06`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/propstack/apis/propstack-api-v2-beta/changes/recipes/post.md)

---

[API](https://skmtc.dev/propstack/apis/propstack-api-v2-beta.md) - [All operations](https://skmtc.dev/propstack/apis/propstack-api-v2-beta/llms.txt) - [OpenAPI document](https://skmtc.dev/propstack/apis/propstack-api-v2-beta/revisions/b68ea1933caa?raw)
