---
title: "Create technique"
method: PUT
path: "/techniques"
tags: ["Techniques"]
---

# Create technique

`PUT /techniques`

Create a new technique in Rudder from a technique in the technique editor

## Request body

- EditorTechnique[]
  - `id` string — Technique id
  - `name` string — Technique name
  - `version` string — version of this technique
  - `category` string — category of this technique
  - `description` string — description of this technique
  - `source` string — Source of the technique, always editor here
  - `parameters` TechniqueParameter[] — Parameters for this technique
    - `id` string — parameter id
    - `name` string — Parameter name
    - `description` string — description of this parameter
    - `mayBeEmpty` boolean — May the value given when creating a directive be empty
  - `resources` TechniqueResource[] — Resources for this technique
    - `name` string — resource name. this is the relative path to the resource
    - `state` string — State of the resource file. it can be a value between new, modified, deleted, untouched
  - `calls` union[] — Method and blocks contained by this technique
    - union
      - TechniqueMethodCall
        - `id` string — Method call id
        - `component` string — Component is used in reporting to identify this method call. You can see it as a name
        - `method` string — Id of the method called
        - `condition` string — Condition to run this method.
        - `disableReporting` boolean — Should the reporting of this method be disabled
        - `parameters` object[] — Parameters for this method call
          - `name` string — Parameter name
          - `value` string — Parameter value
      - TechniqueBlock
        - `id` string — Method call id
        - `component` string — Component is used in reporting to identify this method call. You can see it as a name
        - `condition` string — Condition to run this method.
        - `calls` union[] — Method and blocks contained by this block
          - union
            - TechniqueMethodCall
              - …
            - TechniqueBlock — recursive
        - `reportingLogic` object
          - `type` 'worst' | 'focus' | 'worst-case-weighted-one' | 'worst-case-weighted-sum' — Kind of reporting logic
          - `value` string — reporting value used for some reporting logic (i.e. focus)

## Response `200`

Versions information

- object
  - `result` 'success' | 'error', required — Result of the request
  - `action` 'listTechniques', required — The id of the action
  - `data` object, required
    - `techniques` object, required
      - `technique` EditorTechnique, required
        - `id` string — Technique id
        - `name` string — Technique name
        - `version` string — version of this technique
        - `category` string — category of this technique
        - `description` string — description of this technique
        - `source` string — Source of the technique, always editor here
        - `parameters` TechniqueParameter[] — Parameters for this technique
          - `id` string — parameter id
          - `name` string — Parameter name
          - `description` string — description of this parameter
          - `mayBeEmpty` boolean — May the value given when creating a directive be empty
        - `resources` TechniqueResource[] — Resources for this technique
          - `name` string — resource name. this is the relative path to the resource
          - `state` string — State of the resource file. it can be a value between new, modified, deleted, untouched
        - `calls` union[] — Method and blocks contained by this technique
          - union
            - TechniqueMethodCall
              - …
            - TechniqueBlock
              - …

---

[API](https://skmtc.net/rudder/apis/rudder-api.md) · [All operations](https://skmtc.net/rudder/apis/rudder-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rudder/rudder-api/versions/eab988254fba/schema)
