[comment]: # translation:outdated

[comment]: # ({450c25c2-450c25c2})
# itemprototype.create

[comment]: # ({/450c25c2-450c25c2})

[comment]: # ({74ae8b8a-74ae8b8a})
### Description

`object itemprototype.create(object/array itemPrototypes)`

This method allows to create new item prototypes.

[comment]: # ({/74ae8b8a-74ae8b8a})

[comment]: # ({5e08f1b5-af502f9d})
### Parameters

`(object/array)` Item prototype to create.

Additionally to the [standard item prototype
properties](object#item_prototype), the method accepts the following
parameters.

|Parameter|Type|Description|
|---------|----|-----------|
|**ruleid**<br>(required)|string|ID of the LLD rule that the item belongs to.|
|applications|array|IDs of applications to be assigned to the discovered items.|
|applicationPrototypes|array|Names of application prototypes to be assigned to the item prototype.|
|preprocessing|array|Item prototype preprocessing options.|

[comment]: # ({/5e08f1b5-af502f9d})

[comment]: # ({4682a6ee-4682a6ee})
### Return values

`(object)` Returns an object containing the IDs of the created item
prototypes under the `itemids` property. The order of the returned IDs
matches the order of the passed item prototypes.

[comment]: # ({/4682a6ee-4682a6ee})

[comment]: # ({b41637d2-b41637d2})
### Examples

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({aa701fab-9956fee4})
#### Creating an item prototype

Create an item prototype to monitor free disc space on a discovered file
system. Discovered items should be numeric Zabbix agent items updated
every 30 seconds.

Request:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "name": "Free disk space on $1",
        "key_": "vfs.fs.size[{#FSNAME},free]",
        "hostid": "10197",
        "ruleid": "27665",
        "type": 0,
        "value_type": 3,
        "interfaceid": "112",
        "delay": "30s"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Response:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "27666"
        ]
    },
    "id": 1
}
```

[comment]: # ({/aa701fab-9956fee4})

[comment]: # ({f18db28d-e3d55ca4})
#### Creating an item prototype with preprocessing

Create an item using change per second and a custom multiplier as a
second step.

Request:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "name": "Incoming network traffic on $1",
        "key_": "net.if.in[{#IFNAME}]",
        "hostid": "10001",
        "ruleid": "27665",
        "type": 0,
        "value_type": 3,
        "delay": "60s",
        "units": "bps",
        "interfaceid": "1155",
        "preprocessing": [
            {
                "type": "10",
                "params": ""
            },
            {
                "type": "1",
                "params": "8"
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Response:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "44211"
        ]
    },
    "id": 1
}
```

[comment]: # ({/f18db28d-e3d55ca4})

[comment]: # ({76dad6d6-76dad6d6})
#### Creating dependent item prototype

Create Dependent item prototype for Master item prototype with ID 44211.
Only dependencies on same host (template/discovery rule) are allowed,
therefore Master and Dependent item should have same hostid and ruleid.

Request:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
      "hostid": "10001",
      "ruleid": "27665",
      "name": "Dependent test item prototype",
      "key_": "dependent.prototype",
      "type": "18",
      "master_itemid": "44211",
      "value_type": "3"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Response:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "44212"
        ]
    },
    "id": 1
}
```

[comment]: # ({/76dad6d6-76dad6d6})

[comment]: # ({94e7709f-94e7709f})
#### Create HTTP agent item prototype

Create item prototype with URL using user macro, query fields and custom
headers.

Request:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "type": "19",
        "hostid": "10254",
        "ruleid":"28256",
        "interfaceid":"2",
        "name": "api item prototype example",
        "key_": "api_http_item",
        "value_type": "3",
        "url": "{$URL_PROTOTYPE}",
        "query_fields": [
            {
                "min": "10"
            },
            {
                "max": "100"
            }
        ],
        "headers": {
            "X-Source": "api"
        },
        "delay":"35"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Response:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28305"
        ]
    },
    "id": 1
}
```

[comment]: # ({/94e7709f-94e7709f})

[comment]: # ({7e17a762-7e17a762})
### Source

CItemPrototype::create() in
*frontends/php/include/classes/api/services/CItemPrototype.php*.

[comment]: # ({/7e17a762-7e17a762})
