> For the complete documentation index, see [llms.txt](https://docs.pptxbuilder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pptxbuilder.com/api-reference/json-pptx/request-data/columns.md).

# Columns

This page describes how to define and control the columns in you json payload.

You have the ability to control columns data and which are selected by default when the project is loaded in [PPTX Builder](https://pptxbuilder.com). By default, the first column is selected in the PPTX Builder platform.

The columns section in the payload is defined as an `Array`. All parent columns have to have at least 1 item (sub-column).

#### Column fields

| Name     | Type    | Required | Description                                                                                                        |
| -------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
| text     | String  | true     | The name for the parent column.                                                                                    |
| items    | Array   | true     | An `Array` containing the sub columns.                                                                             |
| selected | Boolean | false    | This value defines if the column is selected by default. (You need to set the `selected` flag for all sub-columns) |

#### Items array

| Name     | Type    | Required | Description                                                                                                              |
| -------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
| text     | String  | true     | The name of the sub-column.                                                                                              |
| base     | Float   | true     | The base value for this column.                                                                                          |
| data     | Array   | true     | The data values for each row. This should reflect the same order as the `Array` of rows defined in the `chart settings.` |
| selected | Boolean | false    | This value defines if the sub-column is selected by default.                                                             |

#### Example in `JSON`

> In this example we have can see how to selected the second parent column and its children by default.&#x20;

```javascript
{
  "columns": [{
    "text": "Total",
    "items": [{
      "text": "Total",
      "base": 1949.0,
      "data": [106.0, 105.0, 26.0, 43.0, 55.0, 136.0]
    }],
  }, {
    "text": "ITS WITH SKY TV",
    "items": [{
        "text": "ITS 1-3",
        "base": 175.0,
        "data": [0, 105.0, 26.0, 43.0, 0, 0],
        "selected": true
      },
      {
        "text": "ITS 6-10",
        "base": 1476.0,
        "data": [0, 0, 0, 0, 0, 0],
        "selected": true
      }
    ],
    "selected": true
  }]
}

```

{% hint style="warning" %}
If you want to provide columns and items with unique IDs, then all chart columns their items and rows must contain unique IDs.
{% endhint %}
