Chef Software ReportingService API
The ReportingService API from Chef Software — 12 operation(s) for reportingservice.
The ReportingService API from Chef Software — 12 operation(s) for reportingservice.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/chef-software-reportingservice-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: external/applications/applications.proto ApplicationsService Reporting Service API
version: version not set
servers:
- url: https://automate.chef.io/api/v0
tags:
- name: ReportingService
paths:
/api/v0/compliance/reporting/controls:
post:
summary: List Controls
description: 'Lists controls from the last run, with optional filtering.
Supports filtering,pagination but not sorting.
Limited to 100 results by default.
Authorization Action:
```
compliance:controlItems:list
```'
operationId: ReportingService_ListControlItems
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlItems'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlItemRequest'
required: true
/api/v0/compliance/reporting/controls/search:
post:
summary: List Controls Search
description: 'Lists controls from the last run, with optional filtering.
Supports filtering,pagination but not sorting.
Limited to 100 results by default.
Gets the summary of each control.
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page_number":1, "size": 3,
}
```
Authorization Action:
```
compliance:controlItems:list
```'
operationId: ReportingService_ListControlItemsRange
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlItems'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlItemRequest'
required: true
/api/v0/compliance/reporting/nodeheader/id/{id}:
post:
summary: Show Node Header Info From Report ID
description: 'Show specific details about node, report and metadate provided the report ID.
Supports filtering, but not pagination or sorting.
Authorization Action:
```
compliance:nodeheader:get
```'
operationId: ReportingService_ReadNodeHeader
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.NodeHeaderInfo'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
schema:
type: string
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/nodes/id/{id}:
get:
summary: Show Node by ID
description: 'Show a specific node by ID.
Supports filtering by profile or control.
Does not support pagination or sorting.
Authorization Action:
```
compliance:reportNodes:get
```'
operationId: ReportingService_ReadNode
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Node'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
schema:
type: string
tags:
- ReportingService
/api/v0/compliance/reporting/nodes/search:
post:
summary: List Nodes
description: 'List all nodes, with optional filtering, pagination, and sorting.
Max return payload size is 4MB, use pagination to fetch remaining data.
| Sort parameter | Sort value |
| --- | --- |
| environment | environment.lower |
| latest_report.controls.failed.critical | controls_sums.failed.critical |
| latest_report.controls.failed.total | controls_sums.failed.total |
| latest_report.end_time (default) | end_time |
| latest_report.status | status |
| name | node_name.lower |
| platform | platform.full |
| status | status |
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{
"filters":[
{"type":"environment","values":["dev*"]},
{"type":"start_time","values":["2019-10-26T00:00:00Z"]},
{"type":"end_time","values":["2019-11-05T23:59:59Z"]}
],
"page":1,"per_page":100,
"sort":"environment","order":"ASC"
}
```
Authorization Action:
```
compliance:reportNodes:list
```'
operationId: ReportingService_ListNodes
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Nodes'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/profiles:
post:
summary: List Profiles
description: 'List all profiles in use, with optional filtering.
Supports pagination, filtering, and sorting.
Valid sort fields: name, title
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page":1, "per_page": 3,
}
```
Authorization Action:
```
compliance:reportProfiles:list
```'
operationId: ReportingService_ListProfiles
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ProfileMins'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/report-ids:
post:
summary: List Report IDs
description: 'List all IDs for the latest report for each node, with optional filtering.
Supports filtering, but not pagination or sorting.
Including more than one value for `profile_id`, or `profile_name` is not allowed.
Including values for both `profile_id` and `profile_name` in one request is not allowed.
Max return payload size is 4MB.
Authorization Action:
```
compliance:reportids:list
```'
operationId: ReportingService_ListReportIds
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ReportIds'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/reportcontrols/id/{id}:
post:
summary: List Control Info
description: "Lists controls from the last run, with optional filtering.\nSupports filtering and pagination. Maximum 100 search can be \nmade when specifying the pagination from and size. Sum of from+size\nshould be less that 100. By default 10 results will be returned.\nAuthorization Action:\n```\ncompliance:ControlElements:list\n```"
operationId: ReportingService_ListControlInfo
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlElements'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
schema:
type: string
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/reportmanager/export:
post:
summary: Export reports
description: 'Export multiple reports.
Supports filtering by profile or control. API returns an acknowledgement ID.
Authorization Action:
```
compliance:reports:list
```'
operationId: ReportingService_ExportReportManager
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.CustomReportResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/reports:
post:
summary: List Reports
description: 'Makes a list of reports. Adding a filter makes a list of all node reports that meet the filter criteria.
Supports pagination, filtering, and sorting.
Max return payload size is 4MB, use pagination to fetch remaining data.
Valid sort fields: latest_report.controls.failed.critical, latest_report.controls.failed.total, latest_report.end_time, latest_report.status, node_name
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page":1, "per_page": 3,
"sort": "latest_report.status", "order": "ASC"
}
```
Authorization Action:
```
compliance:reports:list
```'
operationId: ReportingService_ListReports
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ReportsSummaryLevelOne'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/reports/id/{id}:
post:
summary: Show Report by ID
description: 'Show a specific report by ID. Supports filtering, but not pagination or sorting.
Including more than one value for `profile_id`, or `profile_name` is not allowed.
Including values for both `profile_id` and `profile_name` in one request is not allowed.
Authorization Action:
```
compliance:reports:get
```'
operationId: ReportingService_ReadReport
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Report'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
schema:
type: string
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Query'
required: true
/api/v0/compliance/reporting/suggestions:
post:
summary: List Reporting Suggestions
description: 'Get suggestions for compliance reporting resources based on matching text substrings.
Supports filtering, but not pagination or sorting.
`type` parameter is required. It must be one of the parameters from the following table.
| Suggestion type parameter | Suggestion type value |
| --- | --- |
| chef_server | source_fqdn |
| chef_tags | chef_tags |
| control | profiles.controls.title |
| control_tag_key | profiles.controls.string_tags.key |
| control_tag_value | profiles.controls.string_tags.values |
| environment | environment |
| inspec_version | version |
| node | node_name |
| organization | organization_name |
| platform | platform.name |
| platform_with_version | platform.full |
| policy_group | policy_group |
| policy_name | policy_name |
| profile | profiles.title |
| profile_with_version | profiles.full |
| recipe | recipes |
| role | roles |
Example:
```
{
"type":"environment",
"text":"aws*",
"filters":[
{"type":"start_time","values":["2019-10-26T00:00:00Z"]},
{"type":"end_time","values":["2019-11-05T23:59:59Z"]}
]
}
```
Authorization Action:
```
compliance:reportSuggestions:list
```'
operationId: ReportingService_ListSuggestions
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Suggestions'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
tags:
- ReportingService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.SuggestionRequest'
required: true
components:
schemas:
chef.automate.api.compliance.reporting.v1.ReportIds:
type: object
properties:
ids:
type: array
items:
type: string
description: The list of unique report identifiers found matching the query.
report_data:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ReportData'
description: The list of unique report identifiers with their respective end_time, found matching the query.
chef.automate.api.compliance.reporting.v1.ProfileMin:
type: object
properties:
name:
type: string
description: The name of the profile.
title:
type: string
description: The profile title.
id:
type: string
description: The profile ID.
version:
type: string
description: The profile version.
status:
type: string
description: The aggregated status of the profile across the nodes it has been run on.
description: Minimal representation of a profile.
chef.automate.api.compliance.reporting.v1.Failed:
type: object
properties:
total:
type: integer
format: int32
description: The total number of failed controls.
minor:
type: integer
format: int32
description: The number of failed controls with minor severity.
major:
type: integer
format: int32
description: The number of failed controls with major severity.
critical:
type: integer
format: int32
description: The number of failed controls with critical severity.
description: Stats of failed controls.
chef.automate.api.compliance.reporting.v1.Dependency:
type: object
properties:
name:
type: string
description: The name of the profile.
url:
type: string
description: The URL of the profile accessible over HTTP or HTTPS.
path:
type: string
description: The path to the profile on disk.
git:
type: string
description: The git URL of the profile.
branch:
type: string
description: The specific git branch of the dependency.
tag:
type: string
description: The specific git tag of the dependency.
commit:
type: string
description: The specific git commit of the dependency.
version:
type: string
description: The specific git version of the dependency.
supermarket:
type: string
description: The name of the dependency stored in Chef Supermarket.
github:
type: string
description: The short name of the dependency stored on Github.
compliance:
type: string
description: The short name of the dependency stored on the Chef Automate or Chef Compliance server.
status:
type: string
description: The status of the dependency in the report.
skip_message:
type: string
description: The reason this profile was skipped in the generated report, if any.
chef.automate.api.compliance.reporting.v1.Report:
type: object
properties:
id:
type: string
description: A unique report identifier.
node_id:
type: string
description: The reporting node's unique ID.
node_name:
type: string
description: The reporting node name.
end_time:
type: string
format: date-time
description: The time that the report was completed.
status:
type: string
description: The status of the run the report was made from.
controls:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlSummary'
description: Intentionally blank.
environment:
type: string
description: The environment of the node making the report.
version:
type: string
description: The version of the report.
platform:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Platform'
description: Intentionally blank.
statistics:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Statistics'
description: Intentionally blank.
profiles:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Profile'
description: The profiles run as part of this report.
job_id:
type: string
description: The compliance scan job ID associated with the report.
ipaddress:
type: string
description: The reporting node IP address.
fqdn:
type: string
description: The FQDN (fully qualified domain name) of the node making the report.
chef_server:
type: string
description: The Chef Infra Server that manages the node making the report.
chef_organization:
type: string
description: The Organization the node belongs to.
roles:
type: array
items:
type: string
description: The Roles associated with the node.
chef_tags:
type: array
items:
type: string
description: The Chef Tags associated with the node.
projects:
type: array
items:
type: string
description: The projects the node is assigned to.
status_message:
type: string
description: The status message of the report.
grpc.gateway.runtime.Error:
type: object
properties:
error:
type: string
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/components/schemas/google.protobuf.Any'
chef.automate.api.compliance.reporting.v1.Kv:
type: object
properties:
key:
type: string
description: The key of the tag.
value:
type: string
description: The value of the tag.
chef.automate.api.compliance.reporting.v1.LatestReportSummary:
type: object
properties:
id:
type: string
description: The latest report ID.
end_time:
type: string
format: date-time
description: The time the report was submitted at.
status:
type: string
description: The status of the run the report was made from.
controls:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlSummary'
description: Intentionally blank.
description: A summary of the latest report for this node.
chef.automate.api.compliance.reporting.v1.ProfileMins:
type: object
properties:
profiles:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ProfileMin'
description: Minimal representations of the profiles matching the filters.
counts:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ProfileCounts'
description: Intentionally blank.
chef.automate.api.compliance.reporting.v1.Option:
type: object
properties:
description:
type: string
description: The description of the attribute.
default:
type: string
description: The default value of the attribute.
chef.automate.api.compliance.reporting.v1.Suggestion:
type: object
properties:
text:
type: string
description: The content that matched the search term.
id:
type: string
description: The ID of the resource that was suggested.
score:
type: number
format: float
description: The confidence in the match quality.
version:
type: string
description: The version of the suggestion.
chef.automate.api.compliance.reporting.v1.ControlSummary:
type: object
properties:
total:
type: integer
format: int32
description: The total number of controls in the report.
passed:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
skipped:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
failed:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Failed'
description: Intentionally blank.
waived:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
description: A minimal representation of the statuses of the controls in the report.
chef.automate.api.compliance.reporting.v1.Platform:
type: object
properties:
name:
type: string
description: The name of the node's operating system.
release:
type: string
description: The version of the node's operating system.
full:
type: string
description: The combined name and version of the node's operating system.
description: The name and version of the node's operating system.
chef.automate.api.compliance.reporting.v1.SourceLocation:
type: object
properties:
ref:
type: string
description: The source code file the control is defined in.
line:
type: integer
format: int32
description: The line number the control is defined on.
chef.automate.api.compliance.reporting.v1.Profile:
type: object
properties:
name:
type: string
description: The name of the profile. Must be unique.
title:
type: string
description: The profile title.
maintainer:
type: string
description: The maintainer listed in the profile metadata.
copyright:
type: string
description: The name of the copyright holder.
copyright_email:
type: string
description: The contact information for the copyright holder.
license:
type: string
description: The license the profile is released under.
summary:
type: string
description: A short description of the profile.
version:
type: string
description: The version of the profile.
owner:
type: string
description: The name of the account that uploaded the profile to Automate.
full:
type: string
description: The combined name and version of the profile.
supports:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Support'
description: The supported platform targets.
depends:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Dependency'
description: Other profiles that this profile depends on.
sha256:
type: string
description: A unique value generated from the profile used to identify it.
groups:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Group'
description: The groups of controls defined in the profile.
controls:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Control'
description: The controls defined on the profile.
attributes:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.Attribute'
description: The attributes defined on the profile.
latest_version:
type: string
description: The highest version number of the profile stored in Automate.
status:
type: string
description: The status of the profile in the generated report.
skip_message:
type: string
description: The reason this profile was skipped in the generated report, if any.
status_message:
type: string
description: A message to detail the reason why a profile is skipped or failed in the generated report.
chef.automate.api.compliance.reporting.v1.ControlItem:
type: object
properties:
id:
type: string
description: The control's unique ID.
title:
type: string
description: The control's compact description.
profile:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ProfileMin'
description: Intentionally blank.
impact:
type: number
format: float
description: The severity of the control.
end_time:
type: string
format: date-time
description: The time the report using the control was submitted at.
control_summary:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.ControlSummary'
description: Intentionally blank.
waivers:
type: array
items:
$ref: '#/components/schemas/chef.automate.api.compliance.reporting.v1.WaiverData'
description: A list of waivers for the nodes affected by this control.
chef.automate.api.compliance.reporting.v1.Statistics:
type: object
properties:
duration:
type: number
format: float
description: The duration of the report's generation time.
description: Statistics of the report's run.
chef.automate.api.compliance.reporting.v1.Attribute:
type: object
properties:
name:
type:
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chef-software/refs/heads/main/openapi/chef-software-reportingservice-api-openapi.yml