# Tableau Extensions API enums

> Every enum in the Tableau Extensions API with its members and string values: FilterType, MarkType, PeriodType, DateRangeType, and more.

Canonical: https://ext.tableauops.com/knowledge/extensions-api-enums
Updated: 2026-09-18
Author: Eric Summers

The Tableau Extensions API uses string enums for filter types, mark types, date periods, and more. Passing a string that is not a member throws at runtime. These tables are transcribed from the vendored API library, so they match what your Tableau actually accepts.

## AnnotationType

| Member | Value |
| --- | --- |
| `Area` | `area` |
| `Mark` | `mark` |
| `Point` | `point` |

## ClassNameKey

| Member | Value |
| --- | --- |
| `ColumnDividers` | `tableau-column-dividers` |
| `DashboardTitle` | `tableau-dashboard-title` |
| `Pane` | `tableau-pane` |
| `RowDividers` | `tableau-row-dividers` |
| `StoryTitle` | `tableau-story-title` |
| `Tooltip` | `tableau-tooltip` |
| `Worksheet` | `tableau-worksheet` |
| `WorksheetTitle` | `tableau-worksheet-title` |

## ColumnType

| Member | Value |
| --- | --- |
| `Continuous` | `continuous` |
| `Discrete` | `discrete` |
| `Unknown` | `unknown` |

## DashboardObjectType

| Member | Value |
| --- | --- |
| `Blank` | `blank` |
| `Extension` | `extension` |
| `Image` | `image` |
| `Legend` | `legend` |
| `PageFilter` | `page-filter` |
| `ParameterControl` | `parameter-control` |
| `QuickFilter` | `quick-filter` |
| `Text` | `text` |
| `Title` | `title` |
| `WebPage` | `web-page` |
| `Worksheet` | `worksheet` |

## DataType

| Member | Value |
| --- | --- |
| `Bool` | `bool` |
| `Date` | `date` |
| `DateTime` | `date-time` |
| `Float` | `float` |
| `Int` | `int` |
| `Spatial` | `spatial` |
| `String` | `string` |
| `Unknown` | `unknown` |

## DateRangeType

| Member | Value |
| --- | --- |
| `Current` | `current` |
| `Last` | `last` |
| `LastN` | `lastN` |
| `Next` | `next` |
| `NextN` | `nextN` |
| `ToDate` | `toDate` |

## DialogStyle

| Member | Value |
| --- | --- |
| `Modal` | `modal` |
| `Modeless` | `modeless` |
| `Window` | `window` |

## EncodingType

| Member | Value |
| --- | --- |
| `Angle` | `angle` |
| `Color` | `color` |
| `Column` | `column` |
| `Custom` | `custom` |
| `Detail` | `detail` |
| `Filter` | `filter` |
| `Geometry` | `geometry` |
| `Label` | `label` |
| `MarksType` | `marks-type` |
| `MeasureValues` | `measure-values` |
| `Page` | `page` |
| `Path` | `path` |
| `Row` | `row` |
| `Shape` | `shape` |
| `Size` | `size` |
| `Tooltip` | `tooltip` |

## ExportedMediaType

| Member | Value |
| --- | --- |
| `Excel` | `excel` |
| `Html` | `html` |
| `Image` | `image` |
| `Pdf` | `pdf` |
| `PowerPoint` | `powerpoint` |
| `Svg` | `svg` |

## ExtensionContext

| Member | Value |
| --- | --- |
| `Cloud` | `cloud` |
| `Desktop` | `desktop` |
| `PublicDesktop` | `public-desktop` |
| `PublicWeb` | `public-web` |
| `Server` | `server` |
| `Unknown` | `unknown` |

## FieldAggregationType

| Member | Value |
| --- | --- |
| `Attr` | `attr` |
| `Avg` | `avg` |
| `Collect` | `collect` |
| `Count` | `count` |
| `Countd` | `countd` |
| `Day` | `day` |
| `End` | `end` |
| `Hour` | `hour` |
| `InOut` | `in-out` |
| `Kurtosis` | `kurtosis` |
| `Max` | `max` |
| `Mdy` | `mdy` |
| `Median` | `median` |
| `Min` | `min` |
| `Minute` | `minute` |
| `Month` | `month` |
| `MonthYear` | `month-year` |
| `None` | `none` |
| `Qtr` | `qtr` |
| `Quart1` | `quart1` |
| `Quart3` | `quart3` |
| `Second` | `second` |
| `Skewness` | `skewness` |
| `Stdev` | `stdev` |
| `Stdevp` | `stdevp` |
| `Sum` | `sum` |
| `TruncDay` | `trunc-day` |
| `TruncHour` | `trunc-hour` |
| `TruncMinute` | `trunc-minute` |
| `TruncMonth` | `trunc-month` |
| `TruncQtr` | `trunc-qtr` |
| `TruncSecond` | `trunc-second` |
| `TruncWeek` | `trunc-week` |
| `TruncYear` | `trunc-year` |
| `User` | `user` |
| `Var` | `var` |
| `Varp` | `varp` |
| `Week` | `week` |
| `Weekday` | `weekday` |
| `Year` | `year` |

## FieldRoleType

| Member | Value |
| --- | --- |
| `Dimension` | `dimension` |
| `Measure` | `measure` |
| `Unknown` | `unknown` |

## FilterType

| Member | Value |
| --- | --- |
| `Categorical` | `categorical` |
| `Hierarchical` | `hierarchical` |
| `Range` | `range` |
| `RelativeDate` | `relativeDate` |

## FilterUpdateType

| Member | Value |
| --- | --- |
| `Add` | `add` |
| `All` | `all` |
| `Remove` | `remove` |
| `Replace` | `replace` |

## MarkType

| Member | Value |
| --- | --- |
| `Area` | `area` |
| `Bar` | `bar` |
| `Circle` | `circle` |
| `GanttBar` | `gantt-bar` |
| `Heatmap` | `heatmap` |
| `Line` | `line` |
| `Map` | `map` |
| `Pie` | `pie` |
| `Polygon` | `polygon` |
| `Shape` | `shape` |
| `Square` | `square` |
| `Text` | `text` |
| `VizExtension` | `viz-extension` |

## PeriodType

| Member | Value |
| --- | --- |
| `Days` | `days` |
| `Hours` | `hours` |
| `IsoQuarters` | `iso-quarters` |
| `IsoWeeks` | `iso-weeks` |
| `IsoYears` | `iso-years` |
| `Minutes` | `minutes` |
| `Months` | `months` |
| `Quarters` | `quarters` |
| `Seconds` | `seconds` |
| `Weeks` | `weeks` |
| `Years` | `years` |

## SelectOptions

| Member | Value |
| --- | --- |
| `Menu` | `select-options-menu` |
| `Range` | `select-options-range` |
| `Search` | `select-options-search` |
| `Simple` | `select-options-simple` |
| `Toggle` | `select-options-toggle` |

## SelectionUpdateType

| Member | Value |
| --- | --- |
| `Add` | `select-add` |
| `Remove` | `select-remove` |
| `Replace` | `select-replace` |

## TableauEventType

| Member | Value |
| --- | --- |
| `CustomMarkContextMenuEvent` | `custommarkcontextmenu` |
| `CustomViewLoaded` | `customviewloaded` |
| `CustomViewRemoved` | `customviewremoved` |
| `CustomViewSaved` | `customviewsaved` |
| `CustomViewSetDefault` | `customviewsetdefault` |
| `DashboardLayoutChanged` | `dashboard-layout-changed` |
| `DialogMessageReceived` | `dialog-message-received` |
| `EditButtonClicked` | `editbuttonclicked` |
| `EditInDesktopButtonClicked` | `editindesktopbuttonclicked` |
| `FilterChanged` | `filter-changed` |
| `FirstInteractive` | `firstinteractive` |
| `FirstPulseMetricSizeKnown` | `firstpulsemetricsizeknown` |
| `FirstVizSizeKnown` | `firstvizsizeknown` |
| `IframeSrcUpdated` | `iframesrcupdated` |
| `MarkSelectionChanged` | `mark-selection-changed` |
| `ParameterChanged` | `parameter-changed` |
| `PulseError` | `pulseerror` |
| `PulseFiltersChanged` | `pulsefilterschanged` |
| `PulseInsightDiscovered` | `pulseinsightdiscovered` |
| `PulseMetricSizeChanged` | `pulsemetricsizechanged` |
| `PulseTimeDimensionChanged` | `pulsetimedimensionchanged` |
| `PulseUrlChanged` | `pulseurlchanged` |
| `ReadyToReceiveAuthToken` | `readytoreceiveauthtoken` |
| `SettingsChanged` | `settings-changed` |
| `StoryPointSwitched` | `storypointswitched` |
| `SummaryDataChanged` | `summary-data-changed` |
| `TabSwitched` | `tabswitched` |
| `ToolbarStateChanged` | `toolbarstatechanged` |
| `UrlAction` | `urlaction` |
| `VizLoadError` | `vizloaderror` |
| `WorkbookFormattingChanged` | `workbook-formatting-changed` |
| `WorkbookPublished` | `workbookpublished` |
| `WorkbookPublishedAs` | `workbookpublishedas` |
| `WorkbookReadyToClose` | `workbookreadytoclose` |
| `WorksheetFormattingChanged` | `worksheet-formatting-changed` |


---
Try it live: Build one free in Studio — https://ext.tableauops.com/studio
