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

# List reporters

> Lists the reporters a reporter config can name for the scoped project, with whether each can post: the organization's registered Slack channels, the GitHub check and PR comment with the repositories the GitHub Reporter app covers, the email report, and the run-only Slack DM to whoever starts the run (whose status depends on the caller). Use the Slack channel ids and repositories here when setting an environment's `reporter_config` or a run's `reporters`.



## OpenAPI

````yaml /api-reference/openapi.generated.json get /api/reporters
openapi: 3.1.0
info:
  title: Empirical API
  version: 1.0.0
  description: Programmatic access to Empirical test runs, snoozes, and more.
  contact:
    name: Empirical
    url: https://empirical.run
servers:
  - url: https://api.empirical.run
security:
  - Bearer: []
tags:
  - name: Test Runs
    description: Trigger, list, and inspect end-to-end test runs.
  - name: Test Cases
    description: >-
      Browse the Playwright test cases synced from a project's repository and
      manage their tags.
  - name: Environments
    description: >-
      Named deployment targets (slug + Playwright project filters) a project's
      tests run against.
  - name: Snoozes
    description: Temporarily suppress known test failures for specific Playwright tests.
  - name: Analytics
    description: Aggregated test-run, test-count and test-case analytics for a project.
  - name: Badges
    description: Public README status badge images (SVG) for project environments.
  - name: Failure Groups
    description: >-
      Durable, cross-run identities for failure modes, carrying the latest
      triage diagnosis.
  - name: Files
    description: >-
      Upload files of any type and get a link to use in tasks, sessions and
      messages. Agents should use the `upload_file` tool, which returns a
      project-wide `file@<id>` handle (`<id>` is the file `id` below).
  - name: Reporter Configuration
    description: Reporters a project can use in environment and run reporter configs.
paths:
  /api/reporters:
    get:
      tags:
        - Reporter Configuration
      summary: List reporters
      description: >-
        Lists the reporters a reporter config can name for the scoped project,
        with whether each can post: the organization's registered Slack
        channels, the GitHub check and PR comment with the repositories the
        GitHub Reporter app covers, the email report, and the run-only Slack DM
        to whoever starts the run (whose status depends on the caller). Use the
        Slack channel ids and repositories here when setting an environment's
        `reporter_config` or a run's `reporters`.
      operationId: listReporters
      responses:
        '200':
          description: Reporters for the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportersResponse'
        '400':
          description: Missing project scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Project not found or not accessible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ListReportersResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            reporters:
              type: array
              items:
                $ref: '#/components/schemas/AvailableReporter'
              description: >-
                Every reporter a reporter config can name (Slack run status,
                GitHub check, GitHub PR comment, email report and, for runs, the
                Slack DM), with whether it can post for this project.
          required:
            - reporters
          description: Response payload.
      required:
        - data
    ErrorResponse:
      type: object
      properties:
        data:
          nullable: true
          description: Always null for error responses.
        error:
          type: object
          properties:
            message:
              type: string
              description: Human-readable error message.
          required:
            - message
          description: Error details.
      required:
        - data
        - error
    AvailableReporter:
      oneOf:
        - type: object
          properties:
            reporter_type:
              type: string
              enum:
                - slack_run_status
              description: Posts run status updates to Slack channels.
            status:
              type: string
              enum:
                - available
                - not_connected
              description: >-
                `available` when the organization has at least one registered
                Slack channel; otherwise `not_connected`.
            slack_channels:
              type: array
              items:
                $ref: '#/components/schemas/ReporterSlackChannel'
              description: >-
                The organization's registered, unarchived Slack channels a
                reporter config can name.
          required:
            - reporter_type
            - status
            - slack_channels
        - type: object
          properties:
            reporter_type:
              type: string
              enum:
                - github_check
              description: Posts a GitHub check run on the build commit.
            status:
              type: string
              enum:
                - available
                - not_installed
                - install_requested
                - missing_permission
              description: >-
                `available`: the GitHub Reporter app is installed with the
                permission this reporter needs. `not_installed`: no install for
                the organization. `install_requested`: an install is waiting for
                a GitHub owner's approval. `missing_permission`: installed, but
                without the permission this reporter needs (`checks` for check
                runs, `pull_requests` for PR comments).
            repositories:
              type: array
              items:
                type: string
              description: >-
                Repositories (`owner/name`) the install covers. The reporter
                posts only for runs whose `build.repo` is one of these.
          required:
            - reporter_type
            - status
            - repositories
        - type: object
          properties:
            reporter_type:
              type: string
              enum:
                - github_pr_comment
              description: >-
                Posts (and updates) a comment on the pull request for the build
                branch.
            status:
              type: string
              enum:
                - available
                - not_installed
                - install_requested
                - missing_permission
              description: >-
                `available`: the GitHub Reporter app is installed with the
                permission this reporter needs. `not_installed`: no install for
                the organization. `install_requested`: an install is waiting for
                a GitHub owner's approval. `missing_permission`: installed, but
                without the permission this reporter needs (`checks` for check
                runs, `pull_requests` for PR comments).
            repositories:
              type: array
              items:
                type: string
              description: >-
                Repositories (`owner/name`) the install covers. The reporter
                posts only for runs whose `build.repo` is one of these.
          required:
            - reporter_type
            - status
            - repositories
        - type: object
          properties:
            reporter_type:
              type: string
              enum:
                - email_run_report
              description: >-
                Emails a report when the run ends to every user whose email
                domain is one of the organization's email domains.
            status:
              type: string
              enum:
                - available
              description: Always `available`.
          required:
            - reporter_type
            - status
        - type: object
          properties:
            reporter_type:
              type: string
              enum:
                - slack_creator_dm
              description: >-
                Sends a Slack DM to whoever started the run when it ends. Runs
                only: environments cannot hold it.
            status:
              type: string
              enum:
                - available
                - not_linked
                - no_creator
              description: >-
                For runs triggered by the caller: `available` when the person
                the run would be attributed to (the signed-in user, or an agent
                session's creator) has a linked Slack account; `not_linked` when
                they have none; `no_creator` for callers such as project API
                keys, whose runs have no one to DM.
          required:
            - reporter_type
            - status
    ReporterSlackChannel:
      type: object
      properties:
        id:
          type: integer
          description: >-
            Registered channel id, as used in `slack_channel_ids` of a reporter
            config.
        channel_id:
          type: string
          description: >-
            Slack channel id (`C…`), as used in `slack_channels` of a reporter
            config.
        name:
          type: string
          nullable: true
          description: Channel name without the `#`, if known.
      required:
        - id
        - channel_id
        - name
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.