> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangrovesystems.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List a data point's corrections

> Lists the corrections recorded on one data point, oldest first, giving the audit trail behind its current value. Reverts appear as their own entries with `method: revert`. Corrections written by a data rule carry the rule that produced them.

The response is paginated and carries the standard `info` envelope. Sort with `sort` on `id`, `created_at`, `stage` or `source`, and filter with `filter` on `id`, `stage`, `source` or `method`. See [Pagination](/api-reference/pagination).



## OpenAPI

````yaml GET /projects/{project_id}/events/{event_id}/data_points/{slug}/corrections
openapi: 3.1.0
info:
  title: Mangrove - API
  version: 1.1.0
servers:
  - url: https://app.gomangrove.com/api/v1
security:
  - sec0: []
paths:
  /projects/{project_id}/events/{event_id}/data_points/{slug}/corrections:
    get:
      summary: List a data point's corrections
      description: >-
        Lists the corrections recorded on one data point, oldest first, giving
        the audit trail behind its current value. Reverts appear as their own
        entries with `method: revert`. Corrections written by a data rule carry
        the rule that produced them.


        The response is paginated and carries the standard `info` envelope. Sort
        with `sort` on `id`, `created_at`, `stage` or `source`, and filter with
        `filter` on `id`, `stage`, `source` or `method`. See
        [Pagination](/api-reference/pagination).
      operationId: list-data-point-corrections
      parameters:
        - name: project_id
          in: path
          schema:
            type: string
          required: true
        - name: event_id
          in: path
          schema:
            type: string
          required: true
          description: >-
            Unique ID of the event in the `evt_XXXX` syntax. For example:
            `evt_DLnYvzbjSujNAvXE`
        - name: slug
          in: path
          schema:
            type: string
          required: true
          description: >-
            Data point type slug on the event's event type. For example:
            `ambient-temperature-c`
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      - id: sub_9TnpQxL2mKdRvWs4
                        data_point_id: in_kiIuaGIUqRxWUmTY
                        stage: ingestion
                        source: api
                        method: manual_entry
                        origin: substituted
                        from_value: 14.9
                        to_value: 12.4
                        notes: Sensor drift confirmed against the calibration log.
                        rule: null
                        created_by: Aaron Rosenberg
                        created_at: '2026-07-21T14:02:55.000Z'
                      - id: sub_Kz4mRt7QpLdNvXb8
                        data_point_id: in_kiIuaGIUqRxWUmTY
                        stage: ingestion
                        source: api
                        method: revert
                        origin: reverted
                        from_value: 12.4
                        to_value: 14.9
                        notes: null
                        rule: null
                        created_by: Aaron Rosenberg
                        created_at: '2026-07-22T09:15:30.000Z'
                    info:
                      items: 2
                      page_size: 10
                      total_items: 2
                      current_page: 1
                      next_page: null
                      previous_page: null
                      total_pages: 1
                      sort: []
                      filter: []
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataPointCorrection'
                  info:
                    type: object
                    description: Standard pagination envelope.
        '403':
          description: >-
            Corrections are not enabled on the account, or the token does not
            have Data Collection read permission.
          content:
            application/json:
              examples:
                Corrections not enabled:
                  value:
                    errors:
                      - message: Corrections are not enabled
                Insufficient permission:
                  value:
                    errors:
                      - message: You are not authorized to perform this action
        '422':
          description: '422'
          content:
            application/json:
              examples:
                Unknown slug:
                  value:
                    errors:
                      - message: Unknown data point type 'ambient-temp'
      deprecated: false
components:
  schemas:
    DataPointCorrection:
      type: object
      description: One entry in a data point's correction history.
      properties:
        id:
          type: string
          description: Correction friendly ID.
          example: sub_9TnpQxL2mKdRvWs4
        data_point_id:
          type: string
          description: Friendly ID of the corrected data point.
          example: in_kiIuaGIUqRxWUmTY
        stage:
          type: string
          enum:
            - ingestion
            - value_stream
          description: >-
            `ingestion` corrections change the data point's value, which every
            model and report reads. Corrections written through this API are
            always `ingestion`. `value_stream` corrections are overrides scoped
            to a single value stream and leave the shared value untouched; they
            cannot be created here.
        source:
          type: string
          enum:
            - manual
            - api
            - rule
            - transformation
          description: >-
            Where the correction came from. Corrections written through this API
            are `api`.
        method:
          type: string
          description: >-
            How the value was arrived at, as supplied by the caller. Reverts are
            recorded with the reserved method `revert`.
          example: manual_entry
        origin:
          type: string
          enum:
            - substituted
            - imputed
            - reverted
          description: >-
            `substituted` changed an existing reading. `imputed` set a value
            where none was recorded, and is the case the Events table calls
            **Value was missing**. `reverted` restored the previous value.
        from_value:
          description: The value before this entry. Null when no reading existed.
          oneOf:
            - type: number
            - type: string
            - type: boolean
            - type: 'null'
        to_value:
          description: The value after this entry.
          oneOf:
            - type: number
            - type: string
            - type: boolean
            - type: 'null'
        notes:
          type:
            - string
            - 'null'
        rule:
          type:
            - object
            - 'null'
          description: >-
            The data rule that wrote this correction. Null for manual and API
            corrections.
          properties:
            name:
              type: string
            friendly_id:
              type: string
        created_by:
          type:
            - string
            - 'null'
          description: Name of the user the correction is attributed to.
        created_at:
          type: string
          format: date-time
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````