# List cell history

Gets the cell modification history.

> Note: Fetching cell history is resource-intensive and is limited to 30 requests per minute per API token. For details, see Rate limiting.

> Note: For pagination guidance, refer to Pagination.

Endpoint: GET /sheets/{sheetId}/rows/{rowId}/columns/{columnId}/history
Version: 2.0.0
Security: APIToken, OAuth2

## Path parameters:

  - `sheetId` (number, required)
    ID of the sheet being accessed.

  - `rowId` (number, required)
    ID of the sheet row being accessed.

  - `columnId` (number, required)
    ID of the sheet column being accessed.

## Header parameters:

  - `Authorization` (string)
    API Access Token used to authenticate requests to Smartsheet APIs.

  - `smartsheet-integration-source` (string)
    Uses the following metadata to distinguish between human-initiated API requests and third-party service-initiated calls by AI Connectors or ITSM:

- Integration source type
- Organization name
- Integration source name 

Format:


TYPE,OrgName,SourceName


Examples: 

AI,SampleOrg,My-AI-Connector-v2

SCRIPT,SampleOrg2,Accounting-updater-script

APPLICATION,SampleOrg3,SheetUpdater
    Example: "AI,SampleOrg,My-AI-Connector-v2"

## Query parameters:

  - `include` (string)
    A comma-separated list of elements to copy:
  * columnType - includes the columnType attribute for each Cell object
  * objectValue - when used in combination with a level query parameter, includes the email addresses for a multi-contact cell.
    Enum: "columnType", "objectValue"

  - `pageSize` (number)
    The maximum number of items to return per page. Unless otherwise stated for a specific endpoint, defaults to 100. If only page is specified, defaults to a page size of 100. For reports, the default is 100 rows. If you need larger sets of data from your report, returns a maximum of 10,000 rows per request.

  - `page` (number)
    Which page to return. Defaults to 1 if not specified. If you specify a value greater than the total number of pages, the last page of results is returned.

  - `level` (integer)
    Specifies whether object data types, such as multi-contact data are returned in a backwards-compatible, text format in text/number columns.  - Set level=0 (default) to use text/number columns for multi-contact data and multi-picklist data.  - Set level=1 to use multiple-entry contact list columns for multi-contact data; multi-picklist data is returned in text/number columns.  - Set level=2 to use multiple-entry contact list columns for multi-contact data and use multiple-entry picklist columns for multi-picklist data.

## Response 200 fields (application/json):

  - `pageNumber` (number)
    The current page in the full result set that the data array represents. NOTE when a page number greater than totalPages is requested, the last page is instead returned.
    Example: 1

  - `pageSize` (number,null)
    The number of items in a page. Omitted if there is no limit to page size (and hence, all results are included). Unless otherwise specified, this defaults to 100 for most endpoints.
    Example: 50

  - `totalPages` (number)
    The total number of pages in the full result set.
    Example: 25

  - `totalCount` (number)
    The total number of items in the full result set.
    Example: 136

  - `data` (array)
    List of cell history objects

  - `data.modifiedAt` (any)

  - `data.modifiedBy` (object)
    User object containing the name and email of the user that made the change.

  - `data.modifiedBy.email` (string)
    Example: "jane.doe@smartsheet.com"

  - `data.modifiedBy.name` (string)
    Example: "Jane Doe"

  - `data.columnId` (number)
    The ID of the column that the cell is located in.

  - `data.columnType` (string)
    Only returned if the include query string parameter contains columnType.

  - `data.conditionalFormat` (string)
    The format descriptor describing this cell's conditional format. Only returned if the include query string parameter contains format and this cell has a conditional format applied.

  - `data.displayValue` (string)
    Visual representation of cell contents, as presented to the user in the UI.

  - `data.format` (string)
    The format descriptor. Only returned if the include query string parameter contains format and this cell has a non-default format applied.

  - `data.formula` (string)
    The formula for a cell, if set, for instance =COUNTM([Assigned To]3). Note that calculation errors or problems with a formula do not cause the API call to return an error code. Instead, the response contains the same value as in the UI, such as cell.value = "#CIRCULAR REFERENCE".

  - `data.hyperlink` (object)

  - `data.hyperlink.reportId` (number)
    If non-null, this hyperlink is a link to the report with this ID.

  - `data.hyperlink.sheetId` (number)
    If non-null, this hyperlink is a link to the sheet with this ID.

  - `data.hyperlink.sightId` (number)
    If non-null, this hyperlink is a link to the dashboard with this ID.

  - `data.hyperlink.url` (string)
    When the hyperlink is a URL link, this property contains the URL value. When the hyperlink is a dashboard/report/sheet link (that is, dashboardId, reportId, or sheetId is non-null), this property contains the permalink to the dashboard, report, or sheet.

  - `data.image` (object)

  - `data.image.altText` (string)
    Alternate text for the image.

  - `data.image.height` (number)
    Original height (in pixels) of the uploaded image.

  - `data.image.id` (string)
    Image ID.

  - `data.image.width` (number)
    Original width (in pixels) of the uploaded image.

  - `data.linkInFromCell` (object)

  - `data.linkInFromCell.columnId` (number)
    Column ID of the linked cell.

  - `data.linkInFromCell.rowId` (number)
    Row ID of the linked cell.

  - `data.linkInFromCell.sheetId` (number)
    Sheet ID of the sheet that the linked cell belongs to.

  - `data.linkInFromCell.sheetName` (string)
    Sheet name of the linked cell.

  - `data.linkInFromCell.status` (string)
    * BLOCKED One of several other values indicating unusual error conditions.
* BROKEN The row or sheet linked to was deleted.
* CIRCULAR One of several other values indicating unusual error conditions.
* DISABLED One of several other values indicating unusual error conditions.
* INACCESSIBLE The sheet linked to cannot be viewed by this user.
* INVALID One of several other values indicating unusual error conditions.
* NOT_SHARED One of several other values indicating unusual error conditions.
* OK The link is in a good state.
    Enum: "BLOCKED", "BROKEN", "CIRCULAR", "DISABLED", "INACCESSIBLE", "INVALID", "NOT_SHARED", "OK"

  - `data.linksOutToCells` (array)

  - `data.objectValue` (any) — one of:
    - Abstract datetime object value:
      - `objectType` (string)
        Enum: "ABSTRACT_DATETIME"
      - `value` (string)
        Datetime, in the date-time format defined by RFC 3339, section 5.6
    - Contact object value:
      - `objectType` (string)
        Enum: "CONTACT"
      - `email` (string)
        Email address of the Contact
        Example: "john.doe@acme.com"
      - `name` (string)
        Name of the Contact
        Example: "John Doe"
      - `imageId` (string)
        ID of an image associated with the Contact
        Example: "1234!_qwer!_5667zxcvQWER!_ASDF"
      - `emailId` (string)
        ID of the email address
        Example: "23456789"
      - `userId` (string)
        User ID of the contact
        Example: "12345678"
      - `lookUpName` (boolean)
        Whether or not to look up the contact's name based on their email address.
        Example: true
    - Date object value:
      - `objectType` (string)
        Enum: "DATE"
      - `value` (string)
        Date in the full-date format defined by RFC 3339, section 5.6
    - Datetime object value:
      - `objectType` (string)
        Enum: "DATETIME"
      - `value` (string)
        Datetime, in the date-time format defined by RFC 3339, section 5.6
    - Duration object value:
      - `objectType` (string)
        Enum: "DURATION"
      - `days` (number)
        Number of days
    - Multi-contact object value:
      - `objectType` (string)
        Enum: "MULTI_CONTACT"
      - `value` (array)
        List of Contacts
      - `value.objectType` (string)
        Enum: same as `objectType` in "Contact object value" (1 values)
      - `value.email` (string)
        Email address of the Contact
        Example: "john.doe@acme.com"
      - `value.name` (string)
        Name of the Contact
        Example: "John Doe"
      - `value.imageId` (string)
        ID of an image associated with the Contact
        Example: "1234!_qwer!_5667zxcvQWER!_ASDF"
      - `value.emailId` (string)
        ID of the email address
        Example: "23456789"
      - `value.userId` (string)
        User ID of the contact
        Example: "12345678"
      - `value.lookUpName` (boolean)
        Whether or not to look up the contact's name based on their email address.
        Example: true
    - Multi-picklist object value:
      - `objectType` (string)
        Enum: "MULTI_PICKLIST"
      - `values` (array)
        List of strings to choose from
    - Predecessor list object value:
      - `objectType` (string)
        Enum: "PREDECESSOR_LIST"
      - `predecessors` (array)
        List of references to rows on which the current row depends
        Example: [{"rowId":1234567890123456,"rowNumber":2,"type":"FS","inCriticalPath":true}]
      - `predecessors.rowId` (number)
        The ID of the predecessor row.
        Example: 1234567890123456
      - `predecessors.type` (string)
        Type of the predecessor:
 * FF (Finish-to-Finish) - finish at the same time the predecessor finishes.
 * FS (Finish-to-Start) - start after the predecessor finishes.
 * SF (Start-to-Finish) - finish before the predecessor starts.
 * SS (Start-to-Start) - start at the same time the predecessor starts.
        Enum: "FF", "FS", "SF", "SS"
      - `predecessors.inCriticalPath` (boolean)
        True if this predecessor is in the critical path.
        Example: true
      - `predecessors.invalid` (boolean)
        True if the row referenced by rowId is not a valid row in this sheet, or there is a circular reference (displayed in the Smartsheet app as "#REF") Omitted if false.
      - `predecessors.lag` (object)
        In a project sheet, represents a value in a duration cell, or a lag value of a predecessor.
      - `predecessors.lag.days` (number)
        The number of days for this duration.
      - `predecessors.lag.elapsed` (boolean)
        If true, indicates this duration represents elapsed time, which ignores non-working time.
      - `predecessors.lag.hours` (number)
        The number of hours for this duration.
      - `predecessors.lag.milliseconds` (number)
        The number of milliseconds for this duration.
      - `predecessors.lag.minutes` (number)
        The number of minutes for this duration.
      - `predecessors.lag.negative` (boolean)
        When used as a predecessor's lag value, indicates whether the lag is negative (if true), or positive (false). The individual duration values themselves (for example, days, hours, or minutes) is always positive.
      - `predecessors.lag.objectType` (string)
        Enum: same as `objectType` in "Duration object value" (1 values)
      - `predecessors.lag.seconds` (number)
        The number of seconds for this duration.
      - `predecessors.lag.weeks` (number)
        The number of weeks for this duration.
      - `predecessors.rowNumber` (number)
        The row number of the predecessor row. Omitted if invalid is true.
        Example: 2

  - `data.overrideValidation` (boolean)
    (Admin only) Indicates whether the cell value can contain a value outside of the validation limits (value = true). When using this parameter, you must also set strict to false to bypass value type checking. This property is honored for POST or PUT actions that update rows.

  - `data.strict` (boolean)
    Set to false to enable lenient parsing. Defaults to true. You can specify this attribute in a request, but it is never present in a response.

  - `data.value` (any)
    A string, number, or a Boolean value -- depending on the cell type and the data in the cell. Cell values larger than 4000 characters are silently truncated. An empty cell returns no value.

## Response default fields (application/json):

  - `refId` (string)
    The ID of the specific error occurrence. Please include this information when contacting Smartsheet support.

  - `errorCode` (number)
    Custom error code from Smartsheet. See the complete [Error Code List](/api/smartsheet/error-codes).

  - `message` (string)
    Descriptive error message.


