AppOmni Compliance and Reports API

Evaluate compliance controls against detected issues and generate, list, download and delete AppOmni reports covering posture, compliance and threat activity.

Operations 9

GET /api/v1/reports/list/list_reports/ List available reports #
GET /api/v1/reports/list/report_categories List report categories #
GET /api/v1/reports/request/report Generate a single report #
POST /api/v1/reports/request/report Generate a single report #
GET /api/v1/reports/group List report groups #
POST /api/v1/reports/group Create a report group #
GET /api/v1/reports/group/{group_id} Report group details #
PATCH /api/v1/reports/group/{group_id} Update report group details #
GET /api/v1/reports/request/group/ Run a report group #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appomni-compliance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appomni-compliance-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AppOmni Compliance and Reports API
  description: 'Compliance control evaluation and report generation, retrieval and download.


    Derived faithfully from the AppOmni public Postman collection published by AppOmni at https://api.appomni.com/
    — every path, method, parameter, request body and example response below is taken verbatim from that
    collection. No operation was invented.'
  version: 1.0.0
  contact:
    name: AppOmni
    url: https://appomni.com/support/
  license:
    name: Proprietary
    url: https://appomni.com/terms-of-service/
  x-generated-from: AppOmni public Postman collection (publishedId 2sBXc7Mjib, published 2026-02-04)
  x-generated-source: https://api.appomni.com/api/collections/45135595/2sBXc7Mjib?segregateAuth=true&versionTag=latest
  x-generated-method: derived
  x-generated-date: '2026-09-04'
servers:
- url: https://{instance}.appomni.com
  description: AppOmni tenant. Replace {instance} with your AppOmni subdomain — e.g. `acme` if you log
    in at acme.appomni.com.
  variables:
    instance:
      default: example
      description: Your AppOmni tenant subdomain
security:
- bearerAuth: []
tags:
- name: Reports
paths:
  /api/v1/reports/list/list_reports/:
    get:
      operationId: listAvailableReports
      summary: List available reports
      tags:
      - Reports
      description: "Returns a list of reports which a user can run.\n\n To list report groups, see /reports/group\
        \ \n\n accepted_parameters can be passed when requesting a report.\n\n Response Fields\n\n Field\
        \ \n Data Type \n Description \n Example \n\n report_package \n String \n The name of the app\
        \ the report being requested is defined in \n core \n\n report_pretty_name \n String \n Human-readable\
        \ name \n All Issues Export Report \n\n report_description \n String \n Detailed report description\
        \ \n Report on all issues \n\n report_class \n String \n The name of the actual class in code\
        \ defining this report. Used as a unique identifier for the report \n AllIssuesExportReport \n\
        \n report_types \n Array[String] \n Possible output file types which can be specified when generating\
        \ the report \n [\"xlsx\", \"csv\", \"json\"] \n\n service_type \n String \n Service type \n core\
        \ \n\n accepted_parameters \n Array[Object] \n If the report generation can be changed according\
        \ to certain parameters, they are listed here \n See accepted_parameters fields below \n\n category\
        \ \n String \n Report category. See /report_categories for list of possible values \n summary\
        \ \n\n is_internal \n Boolean \n Whether the report is for internal use only \n false \n\n accepted_parameters\
        \ Fields\n\n Field \n Data Type \n Description \n Example \n\n name \n String \n Parameter name\
        \ \n pk__in \n\n type \n String \n Parameter data type \n int \n\n required \n Boolean \n Whether\
        \ the parameter is required \n false \n\n md_version \n Integer \n Metadata version \n 1 \n\n\
        \ md_kind \n String \n Metadata kind \n reports.report.acceptedparameter"
      responses:
        '200':
          description: List Available Reports
          content:
            text/plain:
              schema:
                type: string
              example: "[\n    {\n        \"report_package\": \"core\",\n        \"report_pretty_name\"\
                : \"All Issues Export Report\",\n        \"report_description\": \"Report on all issues\"\
                ,\n        \"report_class\": \"AllIssuesExportReport\",\n        \"report_types\": [\n\
                \            \"xlsx\",\n            \"csv\",\n            \"json\"\n        ],\n     \
                \   \"service_type\": \"core\",\n        \"accepted_parameters\": [\n            {\n \
                \               \"name\": \"pk__in\",\n                \"type\": \"int\",\n          \
                \      \"required\": false,\n                \"md_version\": 1,\n                \"md_kind\"\
                : \"reports.report.acceptedparameter\"\n            },\n            {\n              \
                \  \"name\": \"unique_id__in\",\n                \"type\": \"str\",\n                \"\
                required\": false,\n                \"md_version\": 1,\n                \"md_kind\": \"\
                reports.report.acceptedparameter\"\n            },\n            {\n                \"\
                name\": \"pk\",\n                \"type\": \"int\",\n                \"required\": false,\n\
                \                \"md_version\": 1,\n                \"md_kind\": \"reports.report.acceptedparameter\"\
                \n            },\n            {\n                \"name\": \"service_org_id\",\n     \
                \           \"type\": \"int\",\n                \"required\": false,\n               \
                \ \"md_version\": 1,\n                \"md_kind\": \"reports.report.acceptedparameter\"\
                \n            },\n            {\n                \"name\": \"instance_id__in\",\n    \
                \            \"type\": \"str\",\n                \"required\": false,\n              \
                \  \"md_version\": 1,\n                \"md_kind\": \"reports.report.acceptedparameter\"\
                \n            "
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/list/report_categories:
    get:
      operationId: listReportCategories
      summary: List report categories
      tags:
      - Reports
      description: "Returns a list of all available report categories\n\n Response Fields\n\n Field \n\
        \ Data Type \n Description \n Example \n\n category \n String \n The category identifier \n summary\
        \ \n\n description \n String \n Human-readable description of the category \n Summary reports"
      responses:
        '200':
          description: List Report Categories
          content:
            application/json:
              schema:
                type: object
              examples:
                ListReportCategories:
                  summary: List Report Categories
                  value:
                    access: Access
                    compliance: Compliance
                    summary: Summary
                    connected_apps: Connected Apps
                    setup_changes: Setup Changes
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/request/report:
    get:
      operationId: generateASingleReport
      summary: Generate a single report
      tags:
      - Reports
      description: "Creates a request to generate a single report, which will be created as the desired\
        \ file type. This will be queued up and processed by at a later time; most likely immediately.)\n\
        \n- In addition to the required parameters ( report_package , report_type , report_class , and\
        \ in most cases, monitored_service_id ), additional parameters may be provided as required by\
        \ the individual report. Parameters that are not needed by the individual report will be ignored.\n\
        \n- report_class and report_package , along with the supported file types, and any required additional\
        \ parameters, can be found from the List Available Reports endpoint.\n\n- POST operation is available:\n\
        \n- Certain reports contain data in the params, such as long lists of GUIDs, that cause length\
        \ issues with the URLs if that data is encoded into the URL as a query string.\n\n- AppOmni accepts\
        \ POST as an alternative, where the data is instead sent via the body of the request.\n\n Response\
        \ Fields\n\n Field \n Data Type \n Description \n Example \n\n request_id \n String (UUID) \n\
        \ Unique identifier for the request \n 5071137b-1e9a-4697-bb0c-c28128b7cbc8 \n\n report_status\
        \ \n String \n Status of the report \n requested \n\n pending_report_id \n Integer \n ID of the\
        \ pending report \n 8"
      parameters:
      - name: report_type
        in: query
        required: false
        description: Query parameter report_type
        schema:
          type: string
        example: xlsx
      responses:
        '202':
          description: Generate Single XLSX Report
          content:
            application/json:
              schema:
                type: object
              examples:
                GenerateSingleXLSXReport:
                  summary: Generate Single XLSX Report
                  value:
                    request_id: 5071137b-1e9a-4697-bb0c-c28128b7cbc8
                    report_status: requested
                    pending_report_id: 8
                GenerateSingleCSVReport:
                  summary: Generate Single CSV Report
                  value:
                    request_id: 5071137b-1e9a-4697-bb0c-c28128b7cbc8
                    report_status: requested
                    pending_report_id: 8
                GenerateSingleJSONReport:
                  summary: Generate Single JSON Report
                  value:
                    request_id: 5071137b-1e9a-4697-bb0c-c28128b7cbc8
                    report_status: requested
                    pending_report_id: 8
                GenerateSingleReportwithacceptedparameters:
                  summary: Generate Single Report with accepted parameters
                  value:
                    request_id: 5071137b-1e9a-4697-bb0c-c28128b7cbc8
                    report_status: requested
                    pending_report_id: 8
        '200':
          description: Generate Single Report
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: generateASingleReport2
      summary: Generate a single report
      tags:
      - Reports
      description: "Creates a request to generate a single report using POST method. This is useful when\
        \ report parameters contain long lists that would exceed URL length limits.\n\n Request Body\n\
        \n Field \n Data Type \n Required \n Description \n Example \n\n report_params \n Object \n Yes\
        \ \n Container for all report parameters \n See nested fields below \n\n report_params.report_name\
        \ \n String \n No \n Custom name for the report \n test \n\n report_params.report_package \n String\
        \ \n Yes \n The app targeted by the report \n core \n\n report_params.report_class \n String \n\
        \ Yes \n Name of the Python class underlying the report \n AllIssuesExportReport \n\n report_params.report_type\
        \ \n String \n Yes \n The output format for the created report file \n csv \n\n report_params.monitored_service_id\
        \ \n Integer \n No \n Monitored service to run report against \n 36887 \n\n report_params.notify_external_emails\
        \ \n Array[String] \n No \n Email addresses for report recipients without AppOmni accounts \n\
        \ [\" user@example.com \"] \n\n Response Fields\n\n Field \n Data Type \n Description \n Example\
        \ \n\n request_id \n String (UUID) \n Unique identifier for the request \n 5071137b-1e9a-4697-bb0c-c28128b7cbc8\
        \ \n\n report_status \n String \n Status of the report \n requested \n\n pending_report_id \n\
        \ Integer \n ID of the pending report \n 8"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              report_params:
                report_name: test
                report_package: core
                report_class: AllIssuesExportReport
                report_type: csv
                monitored_service_id: 36887
                notify_external_emails:
                - user@example.com
      responses:
        '200':
          description: Successful response
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/group:
    get:
      operationId: listReportGroups
      summary: List report groups
      tags:
      - Reports
      description: "Returns a list of report groups configured in the system.\n\n Response Fields\n\n\
        \ Field \n Data Type \n Description \n Example \n\n id \n Integer \n Unique identifier for the\
        \ group \n 10239 \n\n created \n String (ISO datetime) \n Time group was created \n 2025-04-09T02:11:54.681071Z\
        \ \n\n modified \n String (ISO datetime) \n Time group was last modified \n 2025-04-11T16:02:40.471780Z\
        \ \n\n external_id \n String or null \n Unused externally \n null \n\n created_by \n Integer \n\
        \ User ID of the report creator \n 1 \n\n modified_by \n Integer \n User ID of the last user to\
        \ modify the group \n 1 \n\n owner \n Integer \n User ID of the report owner. Defaults to report\
        \ creator \n 1 \n\n name \n String \n Report group name \n abcde \n\n report_configs \n Array[Object]\
        \ \n Configuration for each individual report \n See report_configs fields below \n\n schedule_start_date\
        \ \n String or null \n Date when scheduled reports start \n null \n\n last_run_date \n String\
        \ or null \n Date when the group was last run \n null \n\n next_run_date \n String or null \n\
        \ Date when the group will next run \n null \n\n schedule_interval \n String \n Schedule interval\
        \ (daily, weekly, monthly, quarterly, or empty string) \n \"\" \n\n notify_external_emails \n\
        \ Array[String] \n Email addresses for report recipients without AppOmni accounts \n [] \n\n notify_internal_users\
        \ \n Array[Integer] \n List of AppOmni user IDs for report recipients \n [1] \n\n report_configs\
        \ Fields\n\n Field \n Data Type \n Description \n Example \n\n report_package \n String \n The\
        \ app targeted by the report \n core \n\n report_class \n String \n Name of the Python class underlying\
        \ the report \n InsightsReport \n\n report_type \n String \n Output file format \n csv \n\n monitored_service_id\
        \ \n Integer or null \n Monitored service to run report against \n null \n\n report_name \n String\
        \ \n Human readable report name \n All Insights \n\n parameters \n Object \n Parameters to change\
        \ report contents \n {} \n\n md_version \n Integer \n Metadata version \n 1 \n\n md_kind \n String\
        \ \n Metadata kind \n reports.report.config_data"
      responses:
        '200':
          description: List Available Report Groups
          content:
            text/plain:
              schema:
                type: string
              example: "[\n    {\n        \"id\": 9905,\n        \"created\": \"2025-01-15T20:29:52.541539Z\"\
                ,\n        \"modified\": \"2025-01-15T20:29:52.541555Z\",\n        \"external_id\": null,\n\
                \        \"created_by\": 1,\n        \"modified_by\": null,\n        \"owner\": 1,\n \
                \       \"name\": \"asd\",\n        \"report_configs\": [\n            {\n           \
                \     \"report_package\": \"core\",\n                \"report_class\": \"UnifiedIdentityExportReport\"\
                ,\n                \"report_type\": \"json\",\n                \"monitored_service_id\"\
                : null,\n                \"report_name\": \"All AppOmni Unified Identities\",\n      \
                \          \"parameters\": {},\n                \"md_version\": 1,\n                \"\
                md_kind\": \"reports.report.config_data\"\n            }\n        ],\n        \"schedule_start_date\"\
                : null,\n        \"last_run_date\": null,\n        \"next_run_date\": null,\n        \"\
                schedule_interval\": \"\",\n        \"notify_external_emails\": [],\n        \"notify_internal_users\"\
                : [\n            1\n        ]\n    },"
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createAReportGroup
      summary: Create a report group
      tags:
      - Reports
      description: "Creates a report group, with the option to generate the reports in the group on a\
        \ schedule.\n\n Request Body\n\n Field \n Data Type \n Required \n Description \n Example \n\n\
        \ name \n String \n Yes \n Desired name for the report group \n My Report Group \n\n notify_external_emails\
        \ \n Array[String] \n No \n Email addresses for report recipients without AppOmni accounts \n\
        \ [\" user1@example.com \",\" user2@example.com \"] \n\n notify_internal_users \n Array[Integer]\
        \ \n No \n List of AppOmni user ids for report recipients. The user's email will be looked up\
        \ during report generation \n [1] \n\n report_configs \n Array[Object] \n Yes \n Configuration\
        \ for each individual report \n See nested fields below \n\n report_configs.monitored_service_id\
        \ \n Integer \n No \n Available from the /monitoredservice endpoint \n 15033 \n\n report_configs.parameters\
        \ \n Object \n No \n Parameters to change report contents. These vary between reports. The list\
        \ of possible parameters is shown in the accepted_parameters report attribute returned from the\
        \ list_reports endpoint \n {} \n\n report_configs.report_class \n String \n Yes \n Name of the\
        \ Python class underlying the report (unique identifier). Must match a report_class from the list_reports\
        \ endpoint \n GithubUsersByRepositoryReport \n\n report_configs.report_name \n String \n Yes \n\
        \ Human readable report name \n GitHub Users by Repository \n\n report_configs.report_package\
        \ \n String \n Yes \n The app targeted by the report. Must match the report_package returned by\
        \ the list_reports endpoint \n github \n\n report_configs.report_type \n String \n Yes \n Output\
        \ file format (csv, json, xlsx, etc.) \n csv \n\n schedule_interval \n String \n No \n One of:\
        \ \"daily\", \"weekly\", \"monthly\", \"quarterly\" \n daily \n\n schedule_start_date \n String\
        \ \n No \n In the format YYYY-MM-DD, e.g. \"2025-04-01\" \n 2025-04-01 \n\n Response Fields\n\n\
        \ Field \n Data Type \n Description \n Example \n\n id \n Integer \n Unique identifier for the\
        \ group \n 10239 \n\n created \n String (ISO datetime) \n Time group was created \n 2025-04-09T02:11:54.681071Z\
        \ \n\n modified \n String (ISO datetime) \n Time group was last modified \n 2025-04-11T16:02:40.471780Z\
        \ \n\n external_id \n String or null \n Unused externally \n null \n\n created_by \n Integer \n\
        \ User ID of the report creator \n 1 \n\n modified_by \n Integer \n User ID of the last user to\
        \ modify the group \n 1 \n\n owner \n Integer \n User ID of the report owner. Defaults to report\
        \ creator. Unused \n 1 \n\n name \n String \n Report group name \n My Report Group \n\n report_configs\
        \ \n Array[Object] \n See explanation in request section above \n See report_configs fields below"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: My Report Group
              notify_external_emails:
              - user1@example.com
              - user2@example.com
              notify_internal_users:
              - 1
              report_configs:
              - monitored_service_id: 15033
                parameters: {}
                report_class: GithubUsersByRepositoryReport
                report_name: GitHub Users by Repository
                report_package: github
                report_type: csv
              - monitored_service_id: 67953
                parameters: {}
                report_class: SNOWISOComplianceReport
                report_name: ServiceNow ISO 27001 Compliance Report
                report_package: snow
                report_type: json
              schedule_interval: daily
              schedule_start_date: '2025-04-01'
      responses:
        '200':
          description: Create a Report Group
          content:
            application/json:
              schema:
                type: object
              examples:
                CreateaReportGroup:
                  summary: Create a Report Group
                  value:
                    id: 10206
                    created: '2025-04-01T22:47:38.632762Z'
                    modified: '2025-04-01T22:47:38.644764Z'
                    external_id: null
                    created_by: 21946
                    modified_by: 21946
                    owner: 21946
                    name: My Report Group
                    report_configs:
                    - report_package: github
                      report_class: GithubUsersByRepositoryReport
                      report_type: csv
                      monitored_service_id: 15033
                      report_name: GitHub Users by Repository
                      parameters: {}
                      md_version: 1
                      md_kind: reports.report.config_data
                    - report_package: snow
                      report_class: SNOWISOComplianceReport
                      report_type: json
                      monitored_service_id: 67953
                      report_name: ServiceNow ISO 27001 Compliance Report
                      parameters: {}
                      md_version: 1
                      md_kind: reports.report.config_data
                    schedule_start_date: '2025-04-01'
                    last_run_date: null
                    next_run_date: '2025-04-01T00:00:00Z'
                    schedule_interval: daily
                    notify_external_emails: []
                    notify_internal_users:
                    - 1
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/reports/group/{group_id}:
    get:
      operationId: reportGroupDetails
      summary: Report group details
      tags:
      - Reports
      description: "Returns the details for a single specified report group.\n\n Response Fields\n\n Field\
        \ \n Data Type \n Description \n Example \n\n id \n Integer \n Unique identifier for the group\
        \ \n 10239 \n\n created \n String (ISO datetime) \n Time group was created \n 2025-04-09T02:11:54.681071Z\
        \ \n\n modified \n String (ISO datetime) \n Time group was last modified \n 2025-04-11T16:02:40.471780Z\
        \ \n\n external_id \n String or null \n Unused externally \n null \n\n created_by \n Integer \n\
        \ User ID of the report creator \n 1 \n\n modified_by \n Integer \n User ID of the last user to\
        \ modify the group \n 1 \n\n owner \n Integer \n User ID of the report owner. Defaults to report\
        \ creator \n 1 \n\n name \n String \n Report group name \n abcde \n\n report_configs \n Array[Object]\
        \ \n Configuration for each individual report \n See report_configs fields below \n\n schedule_start_date\
        \ \n String or null \n Date when scheduled reports start \n null \n\n last_run_date \n String\
        \ or null \n Date when the group was last run \n null \n\n next_run_date \n String or null \n\
        \ Date when the group will next run \n null \n\n schedule_interval \n String \n Schedule interval\
        \ (daily, weekly, monthly, quarterly, or empty string) \n \"\" \n\n notify_external_emails \n\
        \ Array[String] \n Email addresses for report recipients without AppOmni accounts \n [] \n\n notify_internal_users\
        \ \n Array[Integer] \n List of AppOmni user IDs for report recipients \n [1] \n\n report_configs\
        \ Fields\n\n Field \n Data Type \n Description \n Example \n\n report_package \n String \n The\
        \ app targeted by the report \n core \n\n report_class \n String \n Name of the Python class underlying\
        \ the report \n InsightsReport \n\n report_type \n String \n Output file format \n csv \n\n monitored_service_id\
        \ \n Integer or null \n Monitored service to run report against \n null \n\n report_name \n String\
        \ \n Human readable report name \n All Insights \n\n parameters \n Object \n Parameters to change\
        \ report contents \n {} \n\n md_version \n Integer \n Metadata version \n 1 \n\n md_kind \n String\
        \ \n Metadata kind \n reports.report.config_data"
      parameters:
      - name: group_id
        in: path
        required: true
        description: Path parameter group_id
        schema:
          type: string
      responses:
        '200':
          description: Report Group Details
          content:
            application/json:
              schema:
                type: object
              examples:
                ReportGroupDetails:
                  summary: Report Group Details
                  value:
                    id: 10239
                    created: '2025-04-09T02:11:54.681071Z'
                    modified: '2025-04-11T16:02:40.471780Z'
                    external_id: null
                    created_by: 21946
                    modified_by: 21946
                    owner: 21946
                    name: abcde
                    report_configs:
                    - report_package: core
                      report_class: InsightsReport
                      report_type: csv
                      monitored_service_id: null
                      report_name: All Insights
                      parameters: {}
                      md_version: 1
                      md_kind: reports.report.config_data
                    - report_package: core
                      report_class: AllFindingsExportReport
                      report_type: csv
                      monitored_service_id: null
                      report_name: All Findings
                      parameters: {}
                      md_version: 1
                      md_kind: reports.report.config_data
                    schedule_start_date: null
                    last_run_date: null
                    next_run_date: null
                    schedule_interval: ''
                    notify_external_emails: []
                    notify_internal_users:
                    - 1
        '401':
          description: Unauthorized — missing or invalid AppOmni API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — the token lacks permission for this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      operationId: updateReportGroupDetails
      summary: Update report group details
      tags:
      - Reports
      description: "Updates the details for a single specified report group.\n\n Request Body\n\n Note:\
        \ The \"/\" utilized in the below report_configs entries denotes nesting. See the example request\
        \ body.\n\n Field \n Data Type \n Required \n Description \n Example \n\n name \n String \n Yes\
        \ \n Desired name for the report group \n abcde \n\n notify_external_emails \n Array[String] \n\
        \ No \n Email addresses for report recipients without AppOmni accounts \n [] \n\n notify_internal_users\
        \ \n Array[Integer] \n No \n List of AppOmni user ids for report recipients. The user's email\
        \ will be looked up during report generation \n [] \n\n report_configs \n Array[Object] \n Yes\
        \ \n Configuration for each individual report \n See nested fields below \n\n report_configs/md_version\
        \ \n Integer \n No \n Metadata version \n 1 \n\n report_configs/monitored_service_id \n Integer\
        \ \n No \n Available from the /monitoredservice endpoint \n 15033 \n\n report_configs/parameters\
        \ \n Object \n No \n Parameters to change report contents. These vary between reports. The list\
        \ of possible parameters is shown in the accepted_parameters report attribute returned from the\
        \ list_reports endpoint \n {\"object\": \"account\"} \n\n report_configs/report_class \n String\
        \ \n Yes \n Name of the Python class underlying the report (unique identifier). Must match a report_class\
        \ from the list_reports endpoint \n GithubUsersByRepositoryReport \n\n report_configs/report_name\
        \ \n String \n Yes \n Human readable report name \n GitHub Users by Repository \n\n report_configs/report_package\
        \ \n String \n Yes \n The app targeted by the report. Must match the report_package returned by\
        \ the list_reports endpoint \n github \n\n report_configs/report_type \n String \n Yes \n Output\
        \ file format (csv, json, xlsx, etc.) \n csv \n\n schedule_interval \n String \n No \n One of:\
        \ \"daily\", \"weekly\", \"monthly\", \"quarterly\" \n daily \n\n schedule_start_date \n String\
        \ \n No \n In the format YYYY-MM-DD, e.g. \"2025-04-01\" \n 2025-04-23 \n\n Response Fields Documentation\n\
        \n Field \n Data Type \n Description \n Example \n\n id \n Integer \n Unique identifier for the\
        \ group \n 10239 \n\n created \n String (ISO datetime) \n Time group was created \n 2025-04-09T02:11:54.681071Z\
        \ \n\n modified \n String (ISO datetime) \n Time group was last modified \n 2025-04-11T16:02:40.471780Z\
        \ \n\n external_id \n String or null \n Unused externally \n null \n\n created_by \n Integer \n\
        \ User ID of the report creator \n 1 \n\n modified_by \n Integer \n User ID of the last user to\
        \ modify the group \n 1 \n\n owner \n Integer \n User ID of the report owner. Defaults to report\
        \ creator. Unused \n 1 \n\n name \n String \n Report group name \n abcde \n\n report_configs \n\
        \ Array[Object] \n See explanation in request section above \n See report_configs fields below\
        \ \n\n md_version , md_kind , owner , & external_id are \"unused\" from the customer perspective."
      parameters:
      - name: group_id
        in: path
        required: true
        description: Path parameter group_id
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: abcde
              notify_external_emails: []
              notify_internal_users: []
              report_configs:
              - md_version: 1
                monitored_servi

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appomni/refs/heads/main/openapi/appomni-compliance-api-openapi.yml