Amazon CloudWatch Dashboards API

Operations for creating, retrieving, and listing CloudWatch dashboards

GitHub OpenAPI
Business capability
Observability Management BC-4220.20

Operations 4

POST /#DeleteDashboards Delete Dashboards #
POST /#GetDashboard Get Dashboard #
POST /#ListDashboards List Dashboards #
POST /#PutDashboard Put Dashboard #

Documentation

Specifications

Schemas & Data

Other Resources

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/amazon-cloudwatch:amazon-cloudwatch-dashboards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

amazon-cloudwatch-dashboards-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon CloudWatch Dashboards API
  version: '2010-08-01'
  description: Generated from AWS's published Smithy model for Amazon CloudWatch. 4 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://monitoring.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#DeleteDashboards:
    post:
      operationId: DeleteDashboards
      summary: Delete Dashboards
      description: Deletes all dashboards that you specify. You can specify up to 100 dashboards to delete. If there is an
        error during this call, the operation attempts to delete as many dashboards as possible.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/DeleteDashboardsOutput'
        '409':
          description: ConflictException
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServiceFault
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InternalServiceFault'
        '400':
          description: InvalidParameterValueException
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidParameterValueException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - GraniteServiceVersion20100801.DeleteDashboards
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/DeleteDashboardsInput'
      tags:
      - Dashboards
  /#GetDashboard:
    post:
      operationId: GetDashboard
      summary: Get Dashboard
      description: Displays the details of the dashboard that you specify. To copy an existing dashboard, use GetDashboard,
        and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard
        to create the copy. You might have recently enabled an opt-in Region (Region that is disabled by default) for your
        account. In that Region, GetDashboard can return an access denied error for up to 24 hours after you enable the Region.
        This delay occurs while dashboard data propagates. The error does not indicate a problem with your permissions. Because
        dashboards are global, you can call GetDashboard in any other enabled Region, or retry after propagation completes.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/GetDashboardOutput'
        '404':
          description: DashboardNotFoundError
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/DashboardNotFoundError'
        '500':
          description: InternalServiceFault
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InternalServiceFault'
        '400':
          description: InvalidParameterValueException
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidParameterValueException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - GraniteServiceVersion20100801.GetDashboard
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/GetDashboardInput'
      tags:
      - Dashboards
  /#ListDashboards:
    post:
      operationId: ListDashboards
      summary: List Dashboards
      description: Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards
        with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed. ListDashboards
        returns up to 1000 results on one page. If there are more than 1000 dashboards, you can call ListDashboards again
        and include the value you received for NextToken in the first call, to receive the next 1000 results. You might have
        recently enabled an opt-in Region (Region that is disabled by default) for your account. In that Region, ListDashboards
        can return an access denied error for up to 24 hours after you enable the Region. This delay occurs while dashboard
        data propagates. The error does not indicate a problem with your permissions. Because dashboards are global, you can
        call ListDashboards in any other enabled Region, or retry after propagation completes.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ListDashboardsOutput'
        '500':
          description: InternalServiceFault
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InternalServiceFault'
        '400':
          description: InvalidParameterValueException
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidParameterValueException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - GraniteServiceVersion20100801.ListDashboards
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/ListDashboardsInput'
      tags:
      - Dashboards
  /#PutDashboard:
    post:
      operationId: PutDashboard
      summary: Put Dashboard
      description: Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard,
        the entire contents are replaced with what you specify here. All dashboards in your account are global, not region-specific.
        A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard
        using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display
        the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned
        within DashboardBody as the template for the new dashboard when you call PutDashboard. When you create a dashboard
        with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard
        was created by script and should not be changed in the console. This message could also point console users to the
        location of the DashboardBody script or the CloudFormation template used to create the dashboard.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PutDashboardOutput'
        '409':
          description: ConflictException
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '400':
          description: DashboardInvalidInputError
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/DashboardInvalidInputError'
        '500':
          description: InternalServiceFault
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InternalServiceFault'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - GraniteServiceVersion20100801.PutDashboard
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/PutDashboardInput'
      tags:
      - Dashboards
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: monitoring
  schemas:
    ConflictException:
      type: object
      properties:
        Message:
          type: string
    DashboardEntry:
      type: object
      properties:
        DashboardName:
          type: string
          description: The name of the dashboard.
        DashboardArn:
          type: string
          description: The Amazon Resource Name (ARN) of the dashboard.
        LastModified:
          type: string
          format: date-time
          description: The time stamp of when the dashboard was last modified, either by an API call or through the console.
            This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.
        Size:
          type: integer
          description: The size of the dashboard, in bytes.
    DashboardInvalidInputError:
      type: object
      properties:
        message:
          type: string
        dashboardValidationMessages:
          type: array
          items:
            $ref: '#/components/schemas/DashboardValidationMessage'
    DashboardNotFoundError:
      type: object
      properties:
        message:
          type: string
    DashboardValidationMessage:
      type: object
      properties:
        DataPath:
          type: string
          description: The data path related to the message.
        Message:
          type: string
          description: A message describing the error or warning.
    DeleteDashboardsInput:
      type: object
      properties:
        DashboardNames:
          type: array
          items:
            type: string
          description: The dashboards to be deleted. This parameter is required.
      required:
      - DashboardNames
    DeleteDashboardsOutput:
      type: object
      properties: {}
    GetDashboardInput:
      type: object
      properties:
        DashboardName:
          type: string
          description: The name of the dashboard to be described.
      required:
      - DashboardName
    GetDashboardOutput:
      type: object
      properties:
        DashboardArn:
          type: string
          description: The Amazon Resource Name (ARN) of the dashboard.
        DashboardBody:
          type: string
          description: The detailed information about the dashboard, including what widgets are included and their location
            on the dashboard. For more information about the DashboardBody syntax, see Dashboard Body Structure and Syntax.
        DashboardName:
          type: string
          description: The name of the dashboard.
    InternalServiceFault:
      type: object
      properties:
        Message:
          type: string
    InvalidParameterValueException:
      type: object
      properties:
        message:
          type: string
    ListDashboardsInput:
      type: object
      properties:
        DashboardNamePrefix:
          type: string
          description: If you specify this parameter, only the dashboards with names starting with the specified string are
            listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".", "-", and "_".
        NextToken:
          type: string
          description: The token returned by a previous call to indicate that there is more data available.
    ListDashboardsOutput:
      type: object
      properties:
        DashboardEntries:
          type: array
          items:
            $ref: '#/components/schemas/DashboardEntry'
          description: The list of matching dashboards.
        NextToken:
          type: string
          description: The token that marks the start of the next batch of returned results.
    PutDashboardInput:
      type: object
      properties:
        DashboardName:
          type: string
          description: The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard,
            replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters
            are A-Z, a-z, 0-9, "-", and "_". This parameter is required.
        DashboardBody:
          type: string
          description: The detailed information about the dashboard in JSON format, including the widgets to include and their
            location on the dashboard. This parameter is required. For more information about the syntax, see Dashboard Body
            Structure and Syntax.
        Tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: A list of key-value pairs to associate with the dashboard. You can associate as many as 50 tags with
            a dashboard. Tags can help you organize and categorize your dashboards. You can also use them to scope user permissions
            by granting a user permission to access or change only dashboards with certain tag values. You can use this parameter
            only when creating a new dashboard. If you specify Tags when updating an existing dashboard, the tag updates are
            ignored. To add or update tags on an existing dashboard, use TagResource. To remove tags, use UntagResource.
      required:
      - DashboardName
      - DashboardBody
    PutDashboardOutput:
      type: object
      properties:
        DashboardValidationMessages:
          type: array
          items:
            $ref: '#/components/schemas/DashboardValidationMessage'
          description: If the input for PutDashboard was correct and the dashboard was successfully created or modified, this
            result is empty. If this result includes only warning messages, then the input was valid enough for the dashboard
            to be created or modified, but some elements of the dashboard might not render. If this result includes error
            messages, the input was not valid and the operation failed.
    Tag:
      type: object
      properties:
        Key:
          type: string
          description: A string that you can use to assign a value. The combination of tag keys and values can help you organize
            and categorize your resources.
        Value:
          type: string
          description: The value for the specified tag key.
      required:
      - Key
      - Value
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/cloudwatch/service/2010-08-01/cloudwatch-2010-08-01.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)