> ## 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 proposed corrections in bulk

> Rejects up to 100 proposed corrections in one call with one reason, as [Reject a proposed correction](/api-reference/data-rules/reject) does for one. Each result is decided on its own, so one that cannot be rejected is reported in `errors` and the rest still go through. A caller without approval rights gets a 200 with every ID in `errors` under the code `not_approver`, not a 403. Requires corrections to be enabled on the account and a token with Data Rules write permission.



## OpenAPI

````yaml POST /projects/{project_id}/rule_results/bulk_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/bulk_reject:
    post:
      summary: Reject proposed corrections in bulk
      description: >-
        Rejects up to 100 proposed corrections in one call with one reason, as
        [Reject a proposed correction](/api-reference/data-rules/reject) does
        for one. Each result is decided on its own, so one that cannot be
        rejected is reported in `errors` and the rest still go through. A caller
        without approval rights gets a 200 with every ID in `errors` under the
        code `not_approver`, not a 403. Requires corrections to be enabled on
        the account and a token with Data Rules write permission.
      operationId: bulk-reject-rule-results
      parameters:
        - name: project_id
          in: path
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - result_ids
                - reason
              properties:
                result_ids:
                  type: array
                  minItems: 1
                  maxItems: 100
                  items:
                    type: string
                  description: >-
                    Rule-result friendly IDs in the `dpres_XXXX` syntax, from a
                    rule's results list. Between 1 and 100 unique IDs.
                reason:
                  type: string
                  minLength: 1
                  description: >-
                    Why the proposals should not be applied. Stored on each
                    result.
            examples:
              Request Example:
                value:
                  result_ids:
                    - dpres_AbCd1234567890Ef
                    - dpres_EfGh1234567890Ij
                  reason: Meter was offline; the zeros are real
      responses:
        '200':
          description: >-
            The results that were rejected, and an entry in `errors` for each
            one that was not. A 200 can carry failures, so check `errors`.
          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 zeros are real
                        approval_state: rejected
                        proposed_correction: null
                        evaluated_at: '2026-09-03T08:20:00.000Z'
                    errors:
                      - id: dpres_EfGh1234567890Ij
                        code: not_pending
                        message: This correction is no longer waiting on approval.
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        code:
                          type: string
                        message:
                          type: string
        '403':
          description: >-
            Corrections are not enabled on the account, or the token lacks Data
            Rules write permission.
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: Corrections are not enabled
        '404':
          description: An ID is unknown or belongs to another project. Nothing is decided.
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: Record not found
        '422':
          description: >-
            The request is malformed, or `reason` is missing or blank. Nothing
            is decided.
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: result_ids must contain between 1 and 100 unique IDs
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````