---
title: "Create report"
method: POST
path: "/reports"
tags: ["reports"]
---

# Create report

`POST /reports`

Creates a new report from scratch in the specified destination, using the provided scope, columns and report definition.

## Request body

- CreateReport
  - `name` string, required — Report name.
  - `columns` ReportColumn[], required — List of columns to be included in the report. **Matching Columns:** The source sheet columns are matched in these ways: - [`type`, `title`] for **regular columns** - [`type`, `systemColumnType`] for **system columns** - [`type=TEXT_NUMBER`, `primary=true`] for the **primary** column - [`type=TEXT_NUMBER`, `sheetNameColumn=true`] for the special **sheet name report column** **Note:** All indexes of the columns must be unique. **Note:** You can combine multiple `CHECKBOX` columns or multiple `PICKLIST` columns from different sheets into a single report column, even if their underlying symbols differ. However, you can't combine a `CHECKBOX` column with a `PICKLIST` column, because they're different types. **Note:** The system column type `AUTO_NUMBER` is matched together with columns having the same `title` and `type=TEXT_NUMBER`. **Note:** For row reports, exactly one column must have `primary=true` and it matches to the primary column of each source sheet. **Note:** For summary reports, exactly one of the columns must have a `sheetNameColumn=true`.
    - union
      - object
        - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
        - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
        - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
        - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
        - `primary` boolean — Set this to `true` to match the primary column.
        - `virtualId` integer — The virtual ID of this report column.
        - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
        - `hidden` boolean — Indicates whether the column is hidden.
        - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
        - `width` integer — Display width of the column in pixels.
        - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
        - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
          - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
          - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
          - `startingNumber` number — The starting number for the auto-ID.
          - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
      - object
        - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
        - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
        - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
        - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
        - `primary` boolean — Set this to `true` to match the primary column.
        - `virtualId` integer — The virtual ID of this report column.
        - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
        - `hidden` boolean — Indicates whether the column is hidden.
        - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
        - `width` integer — Display width of the column in pixels.
        - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
        - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
          - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
          - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
          - `startingNumber` number — The starting number for the auto-ID.
          - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
      - object
        - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
        - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
        - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
        - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
        - `primary` boolean, required — Set this to `true` to match the primary column.
        - `virtualId` integer — The virtual ID of this report column.
        - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
        - `hidden` boolean — Indicates whether the column is hidden.
        - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
        - `width` integer — Display width of the column in pixels.
        - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
        - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
          - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
          - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
          - `startingNumber` number — The starting number for the auto-ID.
          - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
      - object
        - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
        - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
        - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
        - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
        - `primary` boolean — Set this to `true` to match the primary column.
        - `virtualId` integer — The virtual ID of this report column.
        - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
        - `hidden` boolean — Indicates whether the column is hidden.
        - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
        - `width` integer — Display width of the column in pixels.
        - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
        - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
          - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
          - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
          - `startingNumber` number — The starting number for the auto-ID.
          - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
  - `scope` ReportScope[], required — An array of objects representing sheets and/or workspaces for adding source sheets to the report.
    - `assetType` 'sheet' | 'workspace', required — The asset's type.
    - `assetId` integer, required — The ID of the asset according to its `assetType`.
  - `reportDefinition` ReportDefinition — The report definition contains `filters`, `grouping` and `sorting` properties of the report. **Note:** When groupingCriteria is defined the primary column of the report will move to the index 0 when it is first rendered by the app.
    - `filters` ReportFilterExpression — An expression to filter on report columns. It is a recursive object that allows at most three levels. It must include `operator` and at least one of the following: `criteria` or `nestedCriteria` Here is a two-level example: ```json { "operator": "OR", "nestedCriteria": [ { "operator": "AND", "criteria": [ { "column": { "title": "Price", "type": "TEXT_NUMBER" }, "operator": "GREATER_THAN", "values": ["11"] }, { "column": { "primary": true }, "operator": "CONTAINS", "values": ["PROJ-1"] } ] }, { "operator": "AND", "criteria": [ { "column": { "title": "Quantity", "type": "TEXT_NUMBER" }, "operator": "LESS_THAN", "values": ["12"] }, { "column": { "title": "Sold Out", "type": "CHECKBOX" }, "operator": "IS_CHECKED" } ] } ] } ``` It's equivalent to the following pseudo logic: ``` ("Price" > 11 AND "Primary" CONTAINS "PROJ-1") OR ("Quantity" < 12 AND "Sold Out" IS_CHECKED) ```
      - `operator` 'AND' | 'OR', required — The boolean operator to apply to the list of `criteria` and `nestedCriteria`.
      - `nestedCriteria` ReportFilterExpression[] — A recursive list of report filter expressions. Each item is joined to the filter expression with the AND/OR operator defined on this level.
      - `criteria` object[] — Criteria objects specifying custom criteria against which to match cell values. Each item is joined to the filter expression with the AND/OR operator defined on this level.
        - `column` union, required — An object for matching a source sheet column for a report. It requires one of: - [`type`, `title`] for **regular columns** - [`type`, `systemColumnType`] for **system columns** - [`type=TEXT_NUMBER`, `primary=true`] for the **primary column** - [`type=TEXT_NUMBER`, `sheetNameColumn=true`] for the special **sheet name report column** **Note:** You can combine multiple `CHECKBOX` columns or multiple `PICKLIST` columns from different sheets into a single report column, even if their underlying symbols differ. However, you can't combine a `CHECKBOX` column with a `PICKLIST` column, because they're different types. **Note:** The system column type `AUTO_NUMBER` is matched together with columns having the same `title` and `type=TEXT_NUMBER`. Therefore, `title` is a required property in this case.
          - object
            - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
            - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
            - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
            - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
            - `primary` boolean — Set this to `true` to match the primary column.
          - object
            - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
            - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
            - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
            - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
            - `primary` boolean — Set this to `true` to match the primary column.
          - object
            - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
            - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
            - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
            - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
            - `primary` boolean, required — Set this to `true` to match the primary column.
          - object
            - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
            - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
            - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
            - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
            - `primary` boolean — Set this to `true` to match the primary column.
        - `operator` 'EQUAL' | 'NOT_EQUAL' | 'GREATER_THAN' | 'LESS_THAN' | 'CONTAINS' | 'BETWEEN' | 'TODAY' | 'PAST' | 'FUTURE' | 'LAST_N_DAYS' | 'NEXT_N_DAYS' | 'IS_BLANK' | 'IS_NOT_BLANK' | 'IS_NUMBER' | 'IS_NOT_NUMBER' | 'IS_DATE' | 'IS_NOT_DATE' | 'IS_CHECKED' | 'IS_UNCHECKED' | 'IS_ONE_OF' | 'IS_NOT_ONE_OF' | 'LESS_THAN_OR_EQUAL' | 'GREATER_THAN_OR_EQUAL' | 'DOES_NOT_CONTAIN' | 'NOT_BETWEEN' | 'NOT_TODAY' | 'NOT_PAST' | 'NOT_FUTURE' | 'NOT_LAST_N_DAYS' | 'NOT_NEXT_N_DAYS' | 'HAS_ANY_OF' | 'HAS_NONE_OF' | 'HAS_ALL_OF' | 'NOT_ALL_OF' | 'MULTI_IS_EQUAL' | 'MULTI_IS_NOT_EQUAL', required — Condition operator.
        - `values` union[] — List of filter values.
          - union
            - string, nullable
            - number
            - DateObjectValue — Object representing a date
              - …
            - CurrentUserObjectValue — Object representing the current user filter
              - …
    - `groupingCriteria` ReportGroupingCriterion[] — List of report grouping criteria.
      - `column` union, required — An object for matching a source sheet column for a report. It requires one of: - [`type`, `title`] for **regular columns** - [`type`, `systemColumnType`] for **system columns** - [`type=TEXT_NUMBER`, `primary=true`] for the **primary column** - [`type=TEXT_NUMBER`, `sheetNameColumn=true`] for the special **sheet name report column** **Note:** You can combine multiple `CHECKBOX` columns or multiple `PICKLIST` columns from different sheets into a single report column, even if their underlying symbols differ. However, you can't combine a `CHECKBOX` column with a `PICKLIST` column, because they're different types. **Note:** The system column type `AUTO_NUMBER` is matched together with columns having the same `title` and `type=TEXT_NUMBER`. Therefore, `title` is a required property in this case.
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean, required — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
      - `sortingDirection` 'ASCENDING' | 'DESCENDING', required — Sorting direction within the group.
      - `isExpanded` boolean — Indicates whether the group is expanded in the UI.
    - `summarizingCriteria` ReportSummarizingCriterion[] — List of report summarizing criteria.
      - `column` union, required — An object for matching a source sheet column for a report. It requires one of: - [`type`, `title`] for **regular columns** - [`type`, `systemColumnType`] for **system columns** - [`type=TEXT_NUMBER`, `primary=true`] for the **primary column** - [`type=TEXT_NUMBER`, `sheetNameColumn=true`] for the special **sheet name report column** **Note:** You can combine multiple `CHECKBOX` columns or multiple `PICKLIST` columns from different sheets into a single report column, even if their underlying symbols differ. However, you can't combine a `CHECKBOX` column with a `PICKLIST` column, because they're different types. **Note:** The system column type `AUTO_NUMBER` is matched together with columns having the same `title` and `type=TEXT_NUMBER`. Therefore, `title` is a required property in this case.
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean, required — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
      - `aggregationType` 'SUM' | 'AVG' | 'MIN' | 'MAX' | 'COUNT' | 'FIRST' | 'LAST', required — Type of aggregation.
    - `sortingCriteria` ReportSortingCriterion[] — List of report sorting criteria.
      - `column` union, required — An object for matching a source sheet column for a report. It requires one of: - [`type`, `title`] for **regular columns** - [`type`, `systemColumnType`] for **system columns** - [`type=TEXT_NUMBER`, `primary=true`] for the **primary column** - [`type=TEXT_NUMBER`, `sheetNameColumn=true`] for the special **sheet name report column** **Note:** You can combine multiple `CHECKBOX` columns or multiple `PICKLIST` columns from different sheets into a single report column, even if their underlying symbols differ. However, you can't combine a `CHECKBOX` column with a `PICKLIST` column, because they're different types. **Note:** The system column type `AUTO_NUMBER` is matched together with columns having the same `title` and `type=TEXT_NUMBER`. Therefore, `title` is a required property in this case.
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean, required — Set this to `true` to match the primary column.
        - object
          - `title` string — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
      - `sortingDirection` 'ASCENDING' | 'DESCENDING', required — Sorting direction.
  - `isSummaryReport` boolean — It is `true` if the report is a sheet summary; otherwise it is a row report.
  - `destination` ContainerDestinationForCreate, required
    - `destinationId` number, required — The ID of the destination container.
    - `destinationType` 'folder' | 'workspace', required — Type of destination container.

## Response `200`

Returns [Result object](/api/smartsheet/openapi/schemas/result) containing a [Report object](/api/smartsheet/openapi/schemas/createreportresult) corresponding to the newly created report.

- object
  - `message` 'PARTIAL_SUCCESS' | 'SUCCESS' — Message that indicates the outcome of the request. (One of `SUCCESS` or `PARTIAL_SUCCESS`.)
  - `resultCode` 0 | 3 — * '0' Success * '3' Partial Success of Bulk Operation
  - `result` CreateReportResult
    - `id` number — The report's unique identifier.
    - `name` string — The report's name.
    - `accessLevel` 'ADMIN' | 'COMMENTER' | 'EDITOR' | 'EDITOR_SHARE' | 'OWNER' | 'VIEWER'
    - `permalink` string — URL to the report in Smartsheet.
    - `isSummaryReport` boolean — It is `true` if the report is a sheet summary; otherwise it is a row report.
    - `columns` ReportColumn[]
      - union
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
          - `virtualId` integer — The virtual ID of this report column.
          - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
          - `hidden` boolean — Indicates whether the column is hidden.
          - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
          - `width` integer — Display width of the column in pixels.
          - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
          - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
            - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
            - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
            - `startingNumber` number — The starting number for the auto-ID.
            - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER', required — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
          - `virtualId` integer — The virtual ID of this report column.
          - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
          - `hidden` boolean — Indicates whether the column is hidden.
          - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
          - `width` integer — Display width of the column in pixels.
          - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
          - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
            - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
            - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
            - `startingNumber` number — The starting number for the auto-ID.
            - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean, required — Set this to `true` to match the primary column.
          - `virtualId` integer — The virtual ID of this report column.
          - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
          - `hidden` boolean — Indicates whether the column is hidden.
          - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
          - `width` integer — Display width of the column in pixels.
          - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
          - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
            - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
            - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
            - `startingNumber` number — The starting number for the auto-ID.
            - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
        - object
          - `title` string, required — Title of a column to match. **Note:** If you specified `primary=true` to match primary columns, you can set the resulting report column title to this value.
          - `type` 'CHECKBOX' | 'DATE' | 'DATETIME' | 'DURATION' | 'CONTACT_LIST' | 'MULTI_CONTACT_LIST' | 'PICKLIST' | 'MULTI_PICKLIST' | 'PREDECESSOR' | 'TEXT_NUMBER', required — Type of column to match. See [Column Types](/api/smartsheet/openapi/columns).
          - `systemColumnType` 'CREATED_BY' | 'CREATED_DATE' | 'MODIFIED_BY' | 'MODIFIED_DATE' | 'AUTO_NUMBER' — System column type to match. See [System Columns](/api/smartsheet/openapi/columns).
          - `sheetNameColumn` boolean, required — Set this to `true` to match the special "Sheet Name" report column.
          - `primary` boolean — Set this to `true` to match the primary column.
          - `virtualId` integer — The virtual ID of this report column.
          - `index` integer, required — Column index or position. This number is zero-based. Indicates the position of the column in the generated report.
          - `hidden` boolean — Indicates whether the column is hidden.
          - `version` 0 | 1 | 2 — * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER. * `1`: MULTI_CONTACT_LIST. * `2`: MULTI_PICKLIST.
          - `width` integer — Display width of the column in pixels.
          - `validation` boolean — Indicates whether validation has been enabled for the column (value = **true**).
          - `autoNumberFormat` object — Specifies how to format values for an auto-generated numbers column.
            - `fill` string — Indicates zero-padding. It must be between 0 and 10 "0" (zero) characters.
            - `prefix` string — The prefix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}
            - `startingNumber` number — The starting number for the auto-ID.
            - `suffix` string — The suffix. Can include these date tokens: * {DD} * {MM} * {YY} * {YYYY}

## Other responses

- `400` — This can be caused by the following situations: - A source workspace does not exist. Example response: ```json { "errorCode": 1008, "message": "Unable to parse request. The following error occurred: Source workspace 123456789 not found.", "refId": "abcd1234" } ``` - No primary column specified for a row report. Example response: ```json { "errorCode": 1055, "message": "One and only one column must be primary.", "refId": "abcd1234" } ``` - No sheet name column specified for a sheet summary report. Example response: ```json { "errorCode": 1371, "message": "Summary reports require a sheet name column. Use sheetNameColumn=true to add it.", "refId": "abcd1234" } ``` - Destination workspace does not exist. Example response: ```json { "errorCode": 1008, "message": "Unable to parse request. The following error occurred: Destination with type WORKSPACE and id 123456789 not found.", "refId": "abcd1234" } ``` - Invalid inputs for columns, filters, summarizing criteria and grouping criteria
- `403` — This can be caused by the following situations: - Calling user is not allowed to create assets in the destination workspace. ```json { "errorCode": 1004, "message": "You are not authorized to perform this action.", "refId": "abcd1234" } ```
- `default` — Generic Error Payload

---

[API](https://skmtc.net/smartsheet/apis/smartsheet-openapi-reference.md) · [All operations](https://skmtc.net/smartsheet/apis/smartsheet-openapi-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smartsheet/smartsheet-openapi-reference/versions/b4afda95fb51/schema)
