chart

Hierarchy: presentation > slides > shapes

A chart shape is used to render data in a graphical form. All chart types provided by PowerPoint are supported.

Parameter
Type
Input
Description

name

String

[required if shapeId not provided] Name of shape to update/manipulate. Find shape names herearrow-up-right.

shapeId

Integer

[required if name not provided] A unique identifier of a given shape. This ID is not displayed in the document, it's hidden in the xml.

data

Object

[optional] Data to populate a chart's cellrange. See data object for more information.

additional_data

Object

[optional] Data to populate specific cells, inside or outside a chart's cellrange. See additional_data object for more information.

overlays

Object

[optional] Enrich data labels on a chart by adding custom strings alongside the original label value. See overlays object for more information.

settings

Object

[optional] An array of shape-level settings. See settings object for more information.

is_hidden

Boolean

true; false

[optional] Hide shape

remove

Boolean

true; false

[optional] Delete shape

JSON payload

"shapes": [
  {
    "name": "string",
    "data": [],
    "additional_data": [],
    "overlays": [],
    "settings": [],
    "is_hidden": boolean,
    "remove": boolean
   },
  {
    "name": "string",
    "data": [],
    "additional_data": [],
    "overlays": [],
    "settings": [],
    "is_hidden": boolean,
    "remove": boolean
   } 
]

Data Object

The data object is used to populate a chart' cellrange - a specific contiguous cell range which acts as the chart's data source.

The data is organized as an array of arrays, where each inner array represents a different dimension of the data.

In the example payload below, the matrix would be of size 4x2, where there are 4 columns (series) and 2 rows (categories). The first column of the matrix would contain the values for the "series 1", the second column would contain the values for the "series 2", and so on. Similarly, the first row of the matrix would contain the values for the "category 1", the second row would contain the values for the "category 2".

JSON payload


Additional_data Object

The additional_data parameter allows you to provide extra sets of data for specific locations (cells) in a shape, separate from the main data array.

It’s useful when you want to:

  • Fill in specific parts of a chart or table without changing the entire dataset.

  • Inject supplementary information, like labels, notes, or reference values, that the main data array doesn’t cover.

  • Target exact cells in a PowerPoint shape for fine-grained control.

Think of it as a “data override” or “cell-level customization” mechanism.

JSON payload


Overlays Object

The overlays property lets you add custom symbols or text to existing chart labels, useful for highlighting specific points (e.g., arrows, icons, or annotations) without changing the actual data.

It’s organized as an array of arrays: each inner array represents a series, and each element inside corresponds to a data point within that series.

For example, if your data grid is 5×5 (5 categories × 5 series), your overlays must also contain 10 arrays (one per data point), even if most are empty.

Each overlay can define properties like color, font size, or position. In the example below, a magenta “▲” symbol appears to the right of the first data point in the first series.

JSON payload


Settings Object

The settings parameters below are specific to chart shapes only. Chart shape consists of several different elements, like plot area, legend and so on, we have grouped the settings to match these elements below.

Chart Area

Parameter
Type
Input
Description

title

String

[optional] Shorthand way of adding text to a chart's title

chartFont

String

[optional] The text font applies to all text in the chart shape

chartFontSize

Integer

1 to 4000

[optional] The text font size applies to all text in the chart shape

fill_color

String

[optional] Chart background fill color

JSON payload

Legend

Parameter
Type
Input
Description

chartShowLegend

Boolean

true, false

[optional] Enable/disable legend

chartLegendPosition

String (Enum)

Left,

Right,

Bottom,

Top,

Topright,

None

[optional] Set Chart series label / legend display position, if visible

chartLegendFontColor

String

[optional] Set chart legend color – applies all legend items i.e. not individual series, if visible

isChartLegendBold

Boolean

true, false

[optional] Enable/disable chart legend text bold, if visible

JSON payload

Data labels

Parameter
Type
Input
Description

isChartLabelValueVisible

Boolean

true, false

[optional] Enable/ disable data label

chartDataLabelPosition

String (Enum)

Left,

Right,

Top,

Bottom,

Center,

InsideBase,

InsideEnd,

OutsideEnd,

BestFit

[optional] Set data label position, if enabled

chartDataLabelFontSize

Integer

1 to 4000

[optional] Set data label's font size, if data label visible

chartDataLabelFont

String

[optional] Set data label's font, if data label visible

isDataLabelBold

Boolean

true, false

[optional] Enable/ disable chart data value label bold, if data label visible

chartDataLabelColor

String

[optional] Chart data value label color, if data label visible

JSON payload

Category axis

Parameter
Type
Input
Description

categoryTitle

String

[optional] Shorthand way of adding text to a chart's category axis title

chartCategoryAxisFont

String

[optional] Set axis font type

chartCategoryAxisFontSize

Integer

1 to 4000

[optional] Set axis font size

isCategoryAxisBold

Boolean

true, false

[optional] Enable/ disable bold

chartCategoryAxisColor

String

[optional] Set axis text color

chartCategoryAxisPosition

String (Enum)

nextToAxis,

high,

low,

none

[optional] Set axis position

chartCategoryAxisMax

String

[optional] Set axis maximum value

chartCategoryAxisMin

String

[optional] Set axis maximum value

JSON payload

Value axis

Parameter
Type
Input
Description

valueTitle

String

[optional] Shorthand way of adding text to a chart's value axis title

chartValueAxisFont

String

[optional] Set axis font type

chartValueAxisFontSize

Integer

1 to 4000

[optional] Set axis font size

isValueAxisBold

Boolean

true, false

[optional] Enable/ Disable bold

chartValueAxisColor

String

[optional] Set axis font color

chartValueAxisPosition

String (Enum)

nextToAxis,

high,

low,

none

[optional] Set axis position

chartValueAxisMax

String

[optional] Set axis maximum value

chartValueAxisMin

String

[optional] Set axis minimum value

JSON payload

Plot area

Name
Type
Input
Description

isLabelValueVisible

Boolean

true, false

[optional] Enable/ disable data labels

showChartVerticalGridLines

Boolean

true, false

[optional] Enable/ disable vertical grid lines

showChartHorizantalGridLines

Boolean

true, false

[optional] Enable/ disable horizontal grid lines

chartOverlap

Integer

-100 to 100

[optional] Set series overlap

chartGapWidth

Integer

0 to 500

[optional] Set series gap width

JSON payload

Size & Position

Parameter
Type
Input
Description

width

Integer,

Float

0 to 5963.92

[optional] Set shape width

height

Integer,

Float

0 to 5963.92

[optional] Set shape height

left

Integer,

Float

-5963.92 to 5963.92

[optional] Set left position

top

Integer,

Float

-5963.92 to 5963.92

[optional] Set top position

unit

String (Enum)

cm,

pt,

points (default value if ‘unit’ field is not specified)

[optional] Set unit of measurement for shape width, height, left, top

JSON payload

Last updated