# Create an item family

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


[Idempotency Supported](/docs/api/idempotency)

This endpoint creates an item family for your product line or service.

## Sample Request

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/item_families \
     -u {site_api_key}:\
     -d id="acme-inc" \
     -d description="Acme Inc Family" \
     -d name="Acme Inc Family"
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = ItemFamily.Create()
		.Id("acme-inc")
		.Description("Acme Inc Family")
		.Name("Acme Inc Family")
		.Request();

ItemFamily itemFamily = result.ItemFamily;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    itemfamilyAction "github.com/chargebee/chargebee-go/v3/actions/itemfamily"
    "github.com/chargebee/chargebee-go/v3/models/itemfamily"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := itemfamilyAction.Create(&itemfamily.CreateRequestParams{
        Id : "acme-inc",
        Description : "Acme Inc Family",
        Name : "Acme Inc Family",
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        ItemFamily := res.ItemFamily
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.ItemFamilyCreateRequest{
    Id : "acme-inc",
    Description : "Acme Inc Family",
    Name : "Acme Inc Family",
}
  res, err := client.ItemFamily.Create(req)
      if err != nil {
        fmt.Println(err)
    } else {
        ItemFamily := res.ItemFamily
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = ItemFamily.create()
            .id("acme-inc")
            .description("Acme Inc Family")
            .name("Acme Inc Family")
            .request();

        ItemFamily itemFamily = result.itemFamily();
    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.itemFamily.ItemFamily;
import com.chargebee.v4.models.itemFamily.params.ItemFamilyCreateParams;
import com.chargebee.v4.models.itemFamily.responses.ItemFamilyCreateResponse;

public class ItemFamilyCreate {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        ItemFamilyCreateParams params = ItemFamilyCreateParams.builder()
            .id("acme-inc")
            .description("Acme Inc Family")
            .name("Acme Inc Family")
            .build();

        ItemFamilyCreateResponse response = client.itemFamilies().create(params);

        ItemFamily itemFamily = response.getItemFamily();
    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.itemFamily.create({
        id: "acme-inc",
        description: "Acme Inc Family",
        name: "Acme Inc Family"
    });

    console.log(result);
    const itemFamily = result.item_family;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->itemFamily()->create([
    "id" => "acme-inc",
    "description" => "Acme Inc Family",
    "name" => "Acme Inc Family"
]);
$itemFamily = $result->item_family;
```

#### Python

```python
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.ItemFamily.create(
    cb_client.ItemFamily.CreateParams(
        id="acme-inc",
        description="Acme Inc Family",
        name="Acme Inc Family"
    )
)
item_family = response.item_family
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::ItemFamily.create({
  :id => "acme-inc",
  :description => "Acme Inc Family",
  :name => "Acme Inc Family"
})

item_family = result.item_family
```

## Sample Response

```json
{
  "item_family": {
    "description": "Acme Inc Family",
    "id": "acme-inc",
    "name": "Acme Inc Family",
    "resource_version": 1576400459324,
    "updated_at": 1576400459
  }
}
```

## URL Format

**POST** https://[site].chargebee.com/api/v2/item_families

## Input Parameters

- `id` (required, string, max chars=50)
  The identifier for the item family. Must be unique and is immutable.

- `name` (required, string, max chars=50)
  The display name for the item family. Must be unique. This is visible only in Chargebee and not to customers.

- `description` (optional, string, max chars=500)
  Description of the item family. This is visible only in Chargebee and not to customers.

- `business_entity_id` (optional, string, max chars=50)
  The unique ID of the [business entity](/docs/api/business_entities) for this `item_family`. This is applicable only when multiple business entities have been created for the site. When provided, the operation will read or write data associated with the specified business entity. If not provided, the resource will be created at the site level, and the `business_entity_id` will not be included in the API response.
  
  **Note** An alternative way of passing this parameter is by means of a [custom HTTP header](/docs/api/advanced-features#mbe-header-main).

## Returns

- `item_family` (Item family object)
  Resource object representing item\_family
