> ## 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 rule's results

> Lists the per-record outcome of a rule, one entry per record it evaluated. Defaults to the rule's latest version.



## OpenAPI

````yaml GET /projects/{project_id}/rules/{rule_id}/results
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}/rules/{rule_id}/results:
    get:
      summary: List a rule's results
      description: >-
        Lists the per-record outcome of a rule, one entry per record it
        evaluated. Defaults to the rule's latest version.
      operationId: list-project-rule-results
      parameters:
        - name: project_id
          in: path
          schema:
            type: string
          required: true
        - name: rule_id
          in: path
          schema:
            type: string
          required: true
        - name: status
          in: query
          description: >-
            Filter to one outcome. On a substitute rule a successful correction
            is recorded as a pass, so `fail` returns the records it fired on and
            did not correct, and `pass` mixes the records that never matched
            with the corrected ones. Read `corrected` per record to tell those
            apart. The app's Substituted and Measured filters map the other way
            round.
          schema:
            type: string
            enum:
              - pass
              - fail
              - dismissed
        - name: version
          in: query
          description: Read an earlier version of the rule instead of the latest.
          schema:
            type: integer
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: page_size
          in: query
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    data:
                      - id: dpres_8XF1QtGs79oX9A6k
                        status: pass
                        entered_value: '13.75'
                        corrected: false
                        rule_id: rule_Qb3k9TzdL0pWnXyz
                        rule_version: 1
                        rule_name: Negative Temp Alert
                        data_point_id: in_JuGzRS08MbVSEkCj
                        data_point_slug: ambient-temperature-c
                        dismissed_at: null
                        dismissed_by: null
                        dismissal_reason: null
                        evaluated_at: '2026-08-14T23:01:46.637Z'
                    info:
                      items: 1
                      page_size: 10
                      total_items: 15
                      current_page: 1
                      next_page: 2
                      previous_page: null
                      total_pages: 2
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: >-
                            Rule-result friendly ID (`dpres_...` or
                            `mrres_...`).
                        status:
                          type: string
                          enum:
                            - pass
                            - fail
                            - dismissed
                        corrected:
                          type: boolean
                          description: >-
                            Data point results only. True where the version
                            being read resolved a replacement for this record. A
                            record can be both corrected and `fail`, where a
                            later edit put the corrected value back in breach.
                        entered_value:
                          type: string
                        rule_id:
                          type: string
                        rule_version:
                          type: integer
                        rule_name:
                          type: string
                        data_point_id:
                          type: string
                        data_point_slug:
                          type: string
                        dismissed_at:
                          type: string
                          format: date-time
                          nullable: true
                        dismissed_by:
                          type: string
                          nullable: true
                        dismissal_reason:
                          type: string
                          nullable: true
                        evaluated_at:
                          type: string
                          format: date-time
                  info:
                    type: object
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````