> ## 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.

# Reject a proposed correction

> Closes a proposed correction without writing it. The data point keeps its measured value, and the reason is stored against the result as `rejection_reason`. Only a result whose `approval_state` is `pending` can be rejected, and a decision is final. Requires corrections to be enabled on the account and a token with Data Rules write permission.



## OpenAPI

````yaml POST /projects/{project_id}/rule_results/{id}/reject
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}/rule_results/{id}/reject:
    post:
      summary: Reject a proposed correction
      description: >-
        Closes a proposed correction without writing it. The data point keeps
        its measured value, and the reason is stored against the result as
        `rejection_reason`. Only a result whose `approval_state` is `pending`
        can be rejected, and a decision is final. Requires corrections to be
        enabled on the account and a token with Data Rules write permission.
      operationId: reject-rule-result
      parameters:
        - name: project_id
          in: path
          schema:
            type: string
          required: true
        - name: id
          in: path
          description: >-
            Rule-result friendly ID in the `dpres_XXXX` syntax, from the rule's
            results list.
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - reason
              properties:
                reason:
                  type: string
                  minLength: 1
                  description: >-
                    Why the proposal should not be applied. Stored on the
                    result.
            examples:
              Request Example:
                value:
                  reason: Meter was offline; the zero is real
      responses:
        '200':
          description: The rejected result.
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      id: dpres_AbCd1234567890Ef
                      status: pass
                      entered_value: '0.0'
                      corrected: null
                      rule_id: rule_Qb3k9TzdL0pWnXyz
                      rule_version: 1
                      rule_name: Fill ambient temperature dropouts
                      data_point_id: in_AbCd1234567890Ef
                      data_point_slug: ambient-temperature-c
                      dismissed_at: null
                      dismissed_by: null
                      dismissal_reason: null
                      rejected_at: '2026-09-03T08:20:00.000Z'
                      rejected_by: Sam Okonkwo
                      rejection_reason: Meter was offline; the zero is real
                      approval_state: rejected
                      proposed_correction: null
                      evaluated_at: '2026-09-03T08:20:00.000Z'
        '403':
          description: >-
            Corrections are not enabled on the account, the token lacks Data
            Rules write permission, or the token's user does not have write
            access on the account.
          content:
            application/json:
              examples:
                Not an approver:
                  value:
                    errors:
                      - code: not_approver
                        message: You are not permitted to reject this correction.
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: Record not found
        '422':
          description: >-
            The proposal cannot be rejected. `code` is `reason_required` or
            `not_pending`.
          content:
            application/json:
              examples:
                No reason given:
                  value:
                    errors:
                      - code: reason_required
                        message: A rejection reason is required.
                Already decided:
                  value:
                    errors:
                      - code: not_pending
                        message: This correction is no longer waiting on approval.
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````