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/cloudhealthsystems:cloudhealthsystems-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: 3.1.0
info:
title: Cloudhealthsystems API
version: '2026-10-09'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-09: 18 operation(s) read from 2 public documentation page(s) (each operation
names its page in x-source). This is not the provider''s published contract; Cloudhealthsystems has published no machine-readable contract
that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 32
documentation: -14
pages-with-code: 2
pages-read: 2
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-09'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://apidocs.cloudhealthtech.com
- https://help.cloudhealthtech.com/quickstart/enable-vmware-cloud-accounts-in-cloudhealth
servers:
- url: https://chapi.cloudhealthtech.com
paths:
/:
get:
operationId: get
tags:
- Api
summary: GET /
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl is a command-line REST client (https://curl.haxx.se). \n The -H flags represent the headers that you need to pass with\
\ each request. There are two headers that each request must contain:\n -H 'Authorization: Bearer XXXXX98900000YYYY' is the authorization\
\ header. It attaches your unique API key to the request. Here, XXXXX98900000YYYY is your API Key. See How CloudHealth Validates API\
\ Requests . "
/api:
get:
operationId: get_api
tags:
- Api
summary: GET /api
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer <your_api_key>' 'https://chapi.cloudhealthtech.com/api' \n [ \n \"AwsInstanceType\" , \n ...\
\ \n \"AwsCloudtrailTrail\" , \n \"AwsConfigRuleEvaluationResult\" , \n \"AwsConfigRule\" , \n \"AwsIamRole\" , \n \"AwsIamServerCertificate\"\
\ , \n ... \n \"IntegrationNode\" , \n \"IntegrationTag\" , \n \"JiraAccount\" , \n \"NewrelicAccount\" , \n \"GcpComputeInstance\"\
\ , \n ... \n \"AzureResourceGroup\" , \n \"Azure"
/api/{apiid}:
get:
operationId: get_api_apiid
tags:
- Api
summary: GET /api/AwsInstance
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: apiid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer <your_api_key>' 'https://chapi.cloudhealthtech.com/api/AwsInstance' \n { \n \"name\" : \"AwsInstance\"\
\ , \n \"attributes\" :[ \n { \"name\" : \"id\" }, \n { \"name\" : \"instance_id\" }, \n { \"name\" : \"public_ip\" }, \n ... \n { \"\
name\" : \"usage_percentage_per_month\" }, \n ... \n { \n \"name\" : \"attr_group__XXXXX3562234\" , \n \"perspective_name\" : \"Environment\"\
\ \n }, \n { \n \"name\" : \"attr_group__XX"
collapsed_from: 5 example path(s) differing only at apiId
/olap_reports:
get:
operationId: get_olap_reports
tags:
- Olap Reports
summary: GET /olap_reports
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOlapReportsResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl -H ''Authorization: Bearer <your_api_key>'' -H ''Accept: application/json'' ''https://chapi.cloudhealthtech.com/olap_reports'' '
/olap_reports/cost/history:
get:
operationId: get_olap_reports_cost_history
tags:
- Olap Reports
summary: GET /olap_reports/cost/history
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: interval
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer XXXXX98900000YYYY' -H 'Accept: application/json' 'https://chapi.cloudhealthtech.com/olap_reports/cost/history?interval=monthly'\n\
\ Let’s break down this request. "
/olap_reports/custom/{reportid}:
get:
operationId: get_olap_reports_custom_reportid
tags:
- Olap Reports
summary: GET /olap_reports/custom/{reportId}
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: reportid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOlapReportsCustomReportidResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer <your_api_key>' -H 'Accept: application/json' 'https://chapi.cloudhealthtech.com/olap_reports/custom/<Report-ID>'\
\ \n This query returns a response similar to this truncated one. \n {\n \"report\":\"Cost History\",\n \"dimensions\":[\n {\n \"time\"\
:[...]\n },\n {\n \"AWS-Service-Category\":[...]\n }\n ],\n \"measures\":[\n {\n \"name\":\"cost\",\n \"label\":\"Cost ($)\"\n }\n ],\n\
\ \"interval\":\"weekly\",\n \"f"
/olap_reports/usage/instance:
get:
operationId: get_olap_reports_usage_instance
tags:
- Olap Reports
summary: GET /olap_reports/usage/instance
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOlapReportsUsageInstanceResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer <your_api_key>' -H 'Accept: application/json' 'https://chapi.cloudhealthtech.com/olap_reports/usage/instance'\
\ \n This query returns the following response, which has been truncated here for simplification. \n {\n \"report\":\"Instance Usage\"\
,\n \"dimensions\":[\n {\n \"time\":[...]\n },\n {\n \"EC2-Reservation-Execution-Mode\":[...]\n }\n ],\n \"measures\":[\n {\n \"name\"\
:\"usage_quantity\",\n \""
/olap_reports/usage/instance/new:
get:
operationId: get_olap_reports_usage_instance_new
tags:
- Olap Reports
summary: GET /olap_reports/usage/instance/new
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H 'Authorization: Bearer <your_api_key>' -H 'Accept: application/json' 'https://chapi.cloudhealthtech.com/olap_reports/usage/instance/new'\
\ \n { \n \"dimensions\" : [ \n { \n \"label\" : \"Owner Perspective\" , \n \"name\" : \"Groupset-998\" \n \"members\" : [ \n { \n \"\
label\" : \"Joe\" , \n \"name\" : \"1392\" \n }, \n { \n \"label\" : \"Sue\" , \n \"name\" : \"1388\" \n }, \n { \n \"label\" : \"No\
\ Owner Found\" , \n \"name\" : \"1386\" \n } \n"
/olap_reports/{olapreportid}:
get:
operationId: get_olap_reports_olapreportid
tags:
- Olap Reports
summary: GET /olap_reports/cost
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: olapreportid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOlapReportsOlapreportidResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl -H ''Authorization: Bearer <your_api_key>'' -H ''Accept: application/json'' ''https://chapi.cloudhealthtech.com/olap_reports/cost'' '
collapsed_from: 2 example path(s) differing only at olapreportId
/rest/com/vmware/cis/session:
post:
operationId: post_rest_com_vmware_cis_session
tags:
- Rest
summary: POST /rest/com/vmware/cis/session
x-source: https://help.cloudhealthtech.com/quickstart/enable-vmware-cloud-accounts-in-cloudhealth
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -v -x [protocol://][user:password@]proxyhost[:port] --request POST --url https://VC_FQDN/rest/com/vmware/cis/session -u\
\ 'test_user@vmc.local:password'\n Scenario 2: The CloudHealth Aggregator VM uses a proxy environment without authentication. "
/v1/aws_accounts/{accountid}:
put:
operationId: put_v1_aws_accounts_accountid
tags:
- Aws Accounts
summary: PUT /v1/aws_accounts/{accountId}
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: accountid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutV1AwsAccountsAccountidRequest'
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -d '{\"authentication\":{\"protocol\":\"assume_role\",\"assume_role_arn\":\"arn:123\",\"assume_role_external_id\":\"61a1XXXXXXXXXXXXXXXXXXXXX5d8c6\"\
},\"name\":\"Tools 123\"}' -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/json' -H 'Accept: application/json'\
\ --request PUT 'https://chapi.cloudhealthtech.com/v1/aws_accounts/<account_id>' \n Delete AWS Account\n Delete an AWS Account from\
\ th"
/v1/aws_accounts/{id}:
delete:
operationId: delete_v1_aws_accounts_id
tags:
- Aws Accounts
summary: DELETE /v1/aws_accounts/{id}
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl --request DELETE -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/json' 'https://chapi.cloudhealthtech.com/v1/aws_accounts/:id'\
\ \n Get External ID\n Generate your unique customer External ID so that you can configure an IAM Role in the AWS Console. \n https://chapi.cloudhealthtech.com/v1/aws_accounts/:id/generate_external_id\
\ \n You cannot generate and specify your own Exter"
/v1/perspective_schemas/{perspectiveid}:
put:
operationId: put_v1_perspective_schemas_perspectiveid
tags:
- Perspective Schemas
summary: PUT /v1/perspective_schemas/{perspectiveId}
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: perspectiveid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutV1PerspectiveSchemasPerspectiveidRequest'
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PutV1PerspectiveSchemasPerspectiveidResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -s -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/json' -X PUT \"https://chapi.cloudhealthtech.com/v1/perspective_schemas/<perspective_id>\"\
\ -d '{\"schema\":{\"name\": \"<perspective_name>\",\"rules\": [{\"type\": \"categorize\",\"asset\": \"AwsS3Bucket\",\"field\": [\"\
Active?\"],\"name\": \"Dynamic_group_name\"}]}}''\n Reporting \n Introduction to Reporting API\n An introduction to the Reporting"
/v1/sso/unconfigure:
delete:
operationId: delete_v1_sso_unconfigure
tags:
- Sso
summary: DELETE /v1/sso/unconfigure
x-source: https://apidocs.cloudhealthtech.com
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X DELETE -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/json' 'https://chapi.cloudhealthtech.com/v1/sso/unconfigure'\
\ \n { \"success\" : \"SSO unconfigured for CloudHealth Technologies\" } \n Retrieve Pending SSO Domains\n Retrieve SSO domains that\
\ are awaiting validation \n https://chapi.cloudhealthtech.com/v1/sso/pending_domain_claims \n Parameters \n client_api_id \n String\
\ t"
/v1/sso/{ssoid}:
get:
operationId: get_v1_sso_ssoid
tags:
- Sso
summary: GET /v1/sso/configuration
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: ssoid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X GET -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/json' 'https://chapi.cloudhealthtech.com/v1/sso/configuration'\
\ \n { \"configuration\" :{ \"sso_provider\" : \"google-apps\" , \"claimed_domains\" :[ \"cloudhealthtech.com\" ], \"pending_domains\"\
\ :[], \"connection_name\" : \"cloudhealthtech-com\" , \"default_organization\" : \"CloudHealth Technologies\" } } \n Delete SSO configuration\n\
\ "
collapsed_from: 2 example path(s) differing only at ssoId
put:
operationId: put_v1_sso_ssoid
tags:
- Sso
summary: PUT /v1/sso/configure
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: ssoid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutV1SsoSsoidRequest'
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X PUT -H 'Authorization: Bearer API_KEY' -H 'Content-Type: application/json' -d '{\"sso_provider\": <\"ah-samlp\"|\"ah-waad\"\
>, \"domains\": [\"<domain-1>,...,<domain-N>\"], \"signing_cert\": \"<cert>\", \"sign_in_endpoint\": \"<sign_in_endpoint>\", \"issuer\"\
: \"<issuer>\", \"sso_ignore_idp_organization\": <true|false>}' 'https://chapi.cloudhealthtech.com/v1/sso/configure' \n { \"identityProviderId\"\
\ : \"<idp-guid>\" ,"
collapsed_from: 2 example path(s) differing only at ssoId
/v1/{v1id}:
get:
operationId: get_v1_v1id
tags:
- Api
summary: GET /v1/aws_accounts
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: v1id
in: path
required: true
schema:
type: string
- name: api_key
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: 'curl --request GET -H ''Authorization: Bearer <your_api_key>'' -H ''Content-Type: application/json'' "https://chapi.cloudhealthtech.com/v1/aws_accounts" '
collapsed_from: 3 example path(s) differing only at v1Id
post:
operationId: post_v1_v1id
tags:
- Api
summary: POST /v1/aws_accounts
x-source: https://apidocs.cloudhealthtech.com
parameters:
- name: v1id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1V1IdRequest'
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1V1IdResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -d \n '{\n \"name\": \"Production Account\",\n \"authentication\": {\n \"protocol\": \"access_key\",\n \"access_key\":\
\ \"AKIAQQQQQQQQQQQ\",\n \"secret_key\": \"S87345j34lkj3l45lkj+2342\"\n },\n \"billing\": {\n \"bucket\": \"my-billing-bucket\"\n },\n\
\ \"cost_and_usage_report\" : {\n \"bucket\": \"cur-bucket\",\n \"path\": \"cur/path/api\"\n },\n \"cloudtrail\": {\n \"enabled\": true,\n\
\ \"bucket\": \"my-cloudtrail-bucket\"\n },\n \"tags\": [{\n \"key\": \"Env"
collapsed_from: 2 example path(s) differing only at v1Id
components:
schemas:
GetOlapReportsResponse:
type: object
properties:
links:
type: object
properties:
cost:
type: object
properties:
href:
type: string
custom:
type: object
properties:
href:
type: string
performance:
type: object
properties:
href:
type: string
usage:
type: object
properties:
href:
type: string
GetOlapReportsCustomReportidResponse:
type: object
properties:
report:
type: string
dimensions:
type: array
items:
type: object
properties:
time:
type: array
items: {}
measures:
type: array
items:
type: object
properties:
name:
type: string
label:
type: string
interval:
type: string
filters:
type: array
items: {}
updated_at:
type: string
format: date-time
data:
type: array
items:
type: array
items:
type: array
items:
type: integer
status:
type: string
GetOlapReportsUsageInstanceResponse:
type: object
properties:
report:
type: string
dimensions:
type: array
items:
type: object
properties:
time:
type: array
items: {}
measures:
type: array
items:
type: object
properties:
name:
type: string
label:
type: string
interval:
type: string
filters:
type: array
items: {}
updated_at:
type: string
format: date-time
data:
type: array
items:
type: array
items:
type: array
items:
type: integer
status:
type: string
GetOlapReportsOlapreportidResponse:
type: object
properties:
links:
type: object
properties:
cost:
type: object
properties:
href:
type: string
custom:
type: object
properties:
href:
type: string
performance:
type: object
properties:
href:
type: string
usage:
type: object
properties:
href:
type: string
PutV1AwsAccountsAccountidRequest:
type: object
properties:
authentication:
type: object
properties:
protocol:
type: string
assume_role_arn:
type: string
assume_role_external_id:
type: string
name:
type: string
PutV1PerspectiveSchemasPerspectiveidRequest:
type: object
properties:
schema:
type: object
properties:
name:
type: string
rules:
type: array
items:
type: object
properties:
type:
type: string
asset:
type: string
field:
type: array
items:
type: string
name:
type: string
PutV1PerspectiveSchemasPerspectiveidResponse:
type: object
properties:
report:
type: string
dimensions:
type: array
items:
type: object
properties:
time:
type: array
items: {}
measures:
type: array
items:
type: object
properties:
name:
type: string
label:
type: string
interval:
type: string
filters:
type: array
items: {}
updated_at:
type: string
format: date-time
data:
type: array
items:
type: array
items:
type: array
items:
type: integer
status:
type: string
PutV1SsoSsoidRequest:
type: object
properties:
pending_domain_name:
type: string
PostV1V1IdRequest:
type: object
properties:
name:
type: string
authentication:
type: object
properties:
protocol:
type: string
access_key:
type: string
secret_key:
type: string
billing:
type: object
properties:
bucket:
type: string
cost_and_usage_report:
type: object
properties:
bucket:
type: string
path:
type: string
cloudtrail:
type: object
properties:
enabled:
type: boolean
bucket:
type: string
tags:
type: array
items:
type: object
properties:
key:
type: string
value:
type: string
PostV1V1IdResponse:
type: object
properties:
error:
type: string
securitySchemes:
bearer:
type: http
scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Aws Accounts
- name: Olap Reports
- name: Perspective Schemas
- name: Rest
- name: Sso