Datadog Create API

The Create API from Datadog — 69 operation(s) for create.

Operations 51

POST /api/v2/api_keys Datadog Create an Api Key #
POST /api/v2/apicatalog/openapi Datadog Create a New Api #
POST /api/v2/apm/config/metrics Datadog Create a Span-based Metric #
POST /api/v2/apm/config/retention-filters Datadog Create a Retention Filter #
POST /api/v2/authn_mappings Datadog Create an Authn Mapping #
POST /api/v2/cases/projects Datadog Create a Project #
POST /api/v2/catalog/entity Datadog Create or Update Entities #
POST /api/v2/cloud_security_management/custom_frameworks Datadog Create a Custom Framework #
POST /api/v2/incidents Datadog Create an Incident #
POST /api/v2/incidents/config/types Datadog Create an Incident Type #
POST /api/v2/incidents/{incident_id}/relationships/integrations Datadog Create an Incident Integration Metadata #
POST /api/v2/incidents/{incident_id}/relationships/todos Datadog Create an Incident Todo #
POST /api/v2/integration/aws/accounts Datadog Create an Aws Integration #
POST /api/v2/integration/gcp/sts_delegate Datadog Create a Datadog Gcp Principal #
POST /api/v2/integration/ms-teams/configuration/tenant-based-handles Datadog Create Tenant-based Handle #
POST /api/v2/integration/ms-teams/configuration/workflows-webhook-handles Datadog Create Workflows Webhook Handle #
POST /api/v2/integration/opsgenie/services Datadog Create a New Service Object #
POST /api/v2/logs/config/custom-destinations Datadog Create a Custom Destination #
POST /api/v2/logs/config/metrics Datadog Create a Log-based Metric #
POST /api/v2/logs/config/restriction_queries Datadog Create a Restriction Query #
POST /api/v2/monitor/notification_rule Datadog Create a Monitor Notification Rule #
POST /api/v2/on-call/escalation-policies Datadog Create On-call Escalation Policy #
POST /api/v2/on-call/pages Datadog Create On-call Page #
POST /api/v2/on-call/schedules Datadog Create On-call Schedule #
POST /api/v2/powerpacks Datadog Create a New Powerpack #
POST /api/v2/remote_config/products/asm/waf/custom_rules Datadog Create a Waf Custom Rule #
POST /api/v2/remote_config/products/asm/waf/exclusion_filters Datadog Create a Waf Exclusion Filter #
POST /api/v2/remote_config/products/cws/policy Datadog Create a Workload Protection Policy #
POST /api/v2/remote_config/products/obs_pipelines/pipelines Datadog Create a New Pipeline #
POST /api/v2/roles Datadog Create Role #
POST /api/v2/roles/{role_id}/clone Datadog Create a New Role by Cloning an Existing Role #
POST /api/v2/rum/applications/{app_id}/retention_filters Datadog Create a Rum Retention Filter #
POST /api/v2/rum/config/metrics Datadog Create a Rum-based Metric #
POST /api/v2/scim/Groups Datadog Create Group #
POST /api/v2/scim/Users Datadog Create User #
POST /api/v2/scorecard/rules Datadog Create a New Rule #
POST /api/v2/security/signals/notification_rules Datadog Create a New Signal-based Notification Rule #
POST /api/v2/security/vulnerabilities/notification_rules Datadog Create a New Vulnerability-based Notification Rule #
POST /api/v2/security_monitoring/configuration/security_filters Datadog Create a Security Filter #
POST /api/v2/security_monitoring/configuration/suppressions Datadog Create a Suppression Rule #
POST /api/v2/security_monitoring/rules Datadog Create a Detection Rule #
POST /api/v2/sensitive-data-scanner/config/groups Datadog Create Scanning Group #
POST /api/v2/sensitive-data-scanner/config/rules Datadog Create Scanning Rule #
POST /api/v2/services Datadog Create a New Incident Service #
POST /api/v2/services/definitions Datadog Create or Update Service Definition #
POST /api/v2/slo/report Datadog Create a New Slo Report #
POST /api/v2/team Datadog Create a Team #
POST /api/v2/teams Datadog Create a New Incident Team #
POST /api/v2/users Datadog Create a User #
POST /api/v2/workflows Datadog Create a Workflow #

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/datadog-create-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

datadog-create-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@datadoghq.com
    name: Datadog Support
    url: https://www.datadoghq.com/support/
  description: The Datadog API is an HTTP REST API. The API uses resource-oriented URLs to call the API, uses status codes to indicate the success or failure of requests, returns JSON from all requests, and uses standard HTTP response codes. Use the Datadog API to access the Datadog platform programmatically.
  title: Datadog Create API
  version: '1.0'
servers:
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: The regional site for Datadog customers.
      enum:
      - datadoghq.com
      - us3.datadoghq.com
      - us5.datadoghq.com
      - ap1.datadoghq.com
      - datadoghq.eu
      - ddog-gov.com
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
- url: '{protocol}://{name}'
  variables:
    name:
      default: api.datadoghq.com
      description: Full site DNS name.
    protocol:
      default: https
      description: The protocol for accessing the API.
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: Any Datadog deployment.
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
security:
- apiKeyAuth: []
  appKeyAuth: []
tags:
- name: Create
paths:
  /api/v2/api_keys:
    x-merge-override:
      post: true
    post:
      description: Create an API key.
      operationId: CreateAPIKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIKeyCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIKeyResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create an Api Key
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        api_key:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"name\": \"{{ unique }}\"\n    },\n    \"type\": \"api_keys\"\n  }\n}"
          step: there is a valid "api_key" in the system
      x-menu-order: 4
      x-permission:
        operator: OR
        permissions:
        - api_keys_write
      x-undo:
        operationId: DeleteAPIKey
        parameters:
        - name: api_key_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/apicatalog/openapi:
    post:
      deprecated: true
      description: 'Create a new API from the [OpenAPI](https://spec.openapis.org/oas/latest.html) specification given.

        See the [API Catalog documentation](https://docs.datadoghq.com/api_catalog/add_metadata/) for additional

        information about the possible metadata.

        It returns the created API ID.

        '
      operationId: CreateOpenAPI
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OpenAPIFile'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOpenAPIResponse'
          description: API created successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSONAPIErrorResponse'
          description: Bad request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSONAPIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - apm_api_catalog_write
      summary: Datadog Create a New Api
      tags:
      - Create
      x-given:
        managed_api:
          parameters:
          - name: openapi_spec_file
            value: '"openapi-spec.yaml"'
          step: there is a valid "managed_api" in the system
      x-menu-order: 1
      x-permission:
        operator: OR
        permissions:
        - apm_api_catalog_write
      x-undo:
        operationId: DeleteOpenAPI
        parameters:
        - name: id
          source: data.id
        type: unsafe
      x-unstable: '**Note**: This endpoint is deprecated.'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/apm/config/metrics:
    post:
      description: 'Create a metric based on your ingested spans in your organization.

        Returns the span-based metric object from the request body when the request is successful.'
      operationId: CreateSpansMetric
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpansMetricCreateRequest'
        description: The definition of the new span-based metric.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpansMetricResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create a Span-based Metric
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        spans_metric:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"id\": \"{{ unique }}\",\n    \"attributes\": {\n      \"filter\": {\n        \"query\": \"source:{{ unique }}\"\n      },\n      \"compute\": {\n        \"aggregation_type\": \"distribution\",\n        \"path\": \"@duration\",\n        \"include_percentiles\": false\n      },\n      \"group_by\": [\n        {\n            \"path\": \"resource_name\",\n            \"tag_name\": \"resource_name\"\n        }\n      ]\n    },\n    \"type\": \"spans_metrics\"\n  }\n}"
          step: there is a valid "spans_metric" in the system
      x-menu-order: 2
      x-permission:
        operator: OR
        permissions:
        - apm_generate_metrics
      x-undo:
        operationId: DeleteSpansMetric
        parameters:
        - name: metric_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/apm/config/retention-filters:
    post:
      description: 'Create a retention filter to index spans in your organization.

        Returns the retention filter definition when the request is successful.


        Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor cannot be created.'
      operationId: CreateApmRetentionFilter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetentionFilterCreateRequest'
        description: The definition of the new retention filter.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetentionFilterCreateResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create a Retention Filter
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        retention_filter:
          parameters:
          - name: body
            value: "{\n    \"data\": {\n        \"attributes\": {\n            \"name\": \"demo retention filter\",\n            \"rate\": 0.90,\n            \"filter\": {\n                \"query\": \"@_top_level:1 test:service-demo\"\n            },\n            \"enabled\": true,\n            \"filter_type\": \"spans-sampling-processor\"\n        },\n        \"type\": \"apm_retention_filter\"\n    }\n}"
          step: there is a valid "retention_filter" in the system
      x-menu-order: 2
      x-permission:
        operator: OR
        permissions:
        - apm_retention_filter_write
        - apm_pipelines_write
      x-undo:
        operationId: DeleteApmRetentionFilter
        parameters:
        - name: filter_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/authn_mappings:
    x-merge-override:
      get: false
      post: false
    post:
      description: Create an AuthN Mapping.
      operationId: CreateAuthNMapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthNMappingCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthNMappingResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Authentication Error
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create an Authn Mapping
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        authn_mapping:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n     \"attribute_key\": \"{{ unique_lower_alnum }}\",\n     \"attribute_value\": \"{{ unique }}\"\n    },\n    \"relationships\": {\n       \"role\": {\n         \"data\": {\n           \"id\": \"{{ role.data.id }}\",\n           \"type\": \"{{ role.data.type }}\"\n         }\n      }\n    },\n    \"type\": \"authn_mappings\"\n  }\n}"
          step: there is a valid "authn_mapping" in the system
      x-menu-order: 5
      x-permission:
        operator: OR
        permissions:
        - user_access_manage
      x-undo:
        operationId: DeleteAuthNMapping
        parameters:
        - name: authn_mapping_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/cases/projects:
    post:
      description: Create a project.
      operationId: CreateProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreateRequest'
        description: Project payload
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
          description: CREATED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - cases_write
      summary: Datadog Create a Project
      tags:
      - Create
      x-menu-order: 1
      x-undo:
        operationId: DeleteProject
        parameters:
        - name: project_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/catalog/entity:
    post:
      description: Create or update entities in Software Catalog.
      operationId: UpsertCatalogEntity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCatalogEntityRequest'
        description: Entity YAML or JSON.
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpsertCatalogEntityResponse'
          description: ACCEPTED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - apm_service_catalog_write
      summary: Datadog Create or Update Entities
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        entity:
          parameters:
          - name: body
            value: "{\n  \"apiVersion\": \"v3\",\n  \"kind\": \"service\",\n  \"metadata\": {\n    \"name\": \"service-{{ unique_lower_alnum }}\",\n    \"displayName\": \"Shopping Cart\",\n    \"inheritFrom\": \"service:otherService\",\n    \"tags\": [\n      \"tag:value\"\n    ],\n    \"links\": [\n      {\n        \"name\": \"shopping-cart runbook\",\n        \"type\": \"runbook\",\n        \"url\": \"https://runbook/shopping-cart\"\n      },\n      {\n        \"name\": \"shopping-cart architecture\",\n        \"provider\": \"gdoc\",\n        \"url\": \"https://google.drive/shopping-cart-architecture\",\n        \"type\": \"doc\"\n      },\n      {\n        \"name\": \"shopping-cart Wiki\",\n        \"provider\": \"wiki\",\n        \"url\": \"https://wiki/shopping-cart\",\n        \"type\": \"doc\"\n      },\n      {\n        \"name\": \"shopping-cart source code\",\n        \"provider\": \"github\",\n        \"url\": \"http://github/shopping-cart\",\n        \"type\": \"repo\"\n      }\n    ],\n    \"contacts\": [\n      {\n        \"name\": \"Support Email\",\n        \"type\": \"email\",\n        \"contact\": \"team@shopping.com\"\n      },\n      {\n        \"name\": \"Support Slack\",\n        \"type\": \"slack\",\n        \"contact\": \"https://www.slack.com/archives/shopping-cart\"\n      }\n    ],\n    \"owner\": \"myteam\",\n    \"additionalOwners\": [\n      {\n        \"name\": \"opsTeam\",\n        \"type\": \"operator\"\n      }\n    ]\n  },\n  \"integrations\": {\n    \"pagerduty\": {\n      \"serviceURL\": \"https://www.pagerduty.com/service-directory/Pshopping-cart\"\n    },\n    \"opsgenie\": {\n      \"serviceURL\": \"https://www.opsgenie.com/service/shopping-cart\",\n      \"region\": \"US\"\n    }\n  },\n  \"extensions\": {\n    \"datadoghq.com/shopping-cart\": {\n      \"customField\": \"customValue\"\n    }\n  },\n  \"spec\": {\n    \"lifecycle\": \"production\",\n    \"tier\": \"1\",\n    \"type\": \"web\",\n    \"languages\": [\n      \"go\",\n      \"python\"\n    ],\n    \"dependsOn\": [\n      \"service:serviceA\",\n      \"service:serviceB\"\n    ]\n  },\n  \"datadog\": {\n    \"performanceData\": {\n      \"tags\": [\n        \"service:shopping-cart\",\n        \"hostname:shopping-cart\"\n      ]\n    },\n    \"events\": [\n      {\n        \"name\": \"deployment events\",\n        \"query\": \"app:myapp AND type:github\"\n      },\n      {\n        \"name\": \"event type B\",\n        \"query\": \"app:myapp AND type:github\"\n      }\n    ],\n    \"logs\": [\n      {\n        \"name\": \"critical logs\",\n        \"query\": \"app:myapp AND type:github\"\n      },\n      {\n        \"name\": \"ops logs\",\n        \"query\": \"app:myapp AND type:github\"\n      }\n    ],\n    \"pipelines\": {\n      \"fingerprints\": [\n        \"fp1\",\n        \"fp2\"\n      ]\n    },\n    \"codeLocations\": [\n      {\n        \"repositoryURL\": \"http://github/shopping-cart.git\",\n        \"paths\": [\n          \"baz/*.c\",\n          \"bat/**/*\",\n          \"../plop/*.java\"\n        ]\n      },\n      {\n        \"repositoryURL\": \"http://github/shopping-cart-2.git\",\n        \"paths\": [\n          \"baz/*.c\",\n          \"bat/**/*\",\n          \"../plop/*.java\"\n        ]\n      }\n    ]\n  }\n}"
          step: there is a valid entity in the system
      x-menu-order: 2
      x-undo:
        operationId: DeleteCatalogEntity
        parameters:
        - name: entity_id
          source: data[0].id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/cloud_security_management/custom_frameworks:
    post:
      description: Create a custom framework.
      operationId: CreateCustomFramework
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomFrameworkRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomFrameworkResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        '500':
          $ref: '#/components/responses/BadRequestResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      summary: Datadog Create a Custom Framework
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        custom_framework:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"type\":\"custom_framework\",\n    \"attributes\":{\n      \"name\":\"name\",\n      \"handle\":\"create-framework-new\",\n      \"version\":\"10\",\n      \"icon_url\":\"test-url\",\n      \"requirements\":[{\n        \"name\":\"requirement\",\n        \"controls\":[{\n          \"name\":\"control\",\n          \"rules_id\":\n            [\"def-000-be9\"]\n        }]\n      }]\n    }\n  }\n}"
          step: there is a valid "custom_framework" in the system
      x-menu-order: 4
      x-permission:
        operator: AND
        permissions:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      x-undo:
        operationId: DeleteCustomFramework
        parameters:
        - name: handle
          source: data.attributes.handle
        - name: version
          source: data.attributes.version
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/incidents:
    post:
      description: Create an incident.
      operationId: CreateIncident
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentCreateRequest'
        description: Incident payload.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentResponse'
          description: CREATED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - incident_write
      summary: Datadog Create an Incident
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        incident:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"title\": \"{{ unique }}\",\n      \"customer_impacted\": false\n     },\n     \"type\": \"incidents\"\n  }\n}"
          step: there is a valid "incident" in the system
      x-menu-order: 1
      x-permission:
        operator: OR
        permissions:
        - incident_write
      x-undo:
        operationId: DeleteIncident
        parameters:
        - name: incident_id
          source: data.id
        type: unsafe
      x-unstable: '**Note**: This endpoint is in public beta.

        If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/incidents/config/types:
    post:
      description: Create an incident type.
      operationId: CreateIncidentType
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentTypeCreateRequest'
        description: Incident type payload.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentTypeResponse'
          description: CREATED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - incident_settings_write
      summary: Datadog Create an Incident Type
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        incident_type:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"name\": \"Security Incident\",\n      \"description\": \"Any incidents that harm (or have the potential to) the confidentiality, integrity, or availability of our data.\",\n      \"is_default\": false\n    },\n    \"type\": \"incident_types\"\n  }\n}"
          step: there is a valid "incident_type" in the system
      x-menu-order: 19
      x-permission:
        operator: OR
        permissions:
        - incident_settings_write
      x-undo:
        operationId: DeleteIncidentType
        parameters:
        - name: incident_type_id
          source: data.id
        type: unsafe
      x-unstable: '**Note**: This endpoint is in public beta.

        If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/incidents/{incident_id}/relationships/integrations:
    post:
      description: Create an incident integration metadata.
      operationId: CreateIncidentIntegration
      parameters:
      - $ref: '#/components/parameters/IncidentIDPathParameter'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentIntegrationMetadataCreateRequest'
        description: Incident integration metadata payload.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentIntegrationMetadataResponse'
          description: CREATED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - incident_write
      summary: Datadog Create an Incident Integration Metadata
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        incident_integration_metadata:
          parameters:
          - name: incident_id
            source: incident.data.id
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"integration_type\": 1,\n      \"incident_id\": \"{{ incident.data.id }}\",\n      \"status\": 2,\n      \"metadata\": {\n        \"channels\": [\n          {\n            \"channel_id\": \"C0123456789\",\n            \"team_id\": \"T01234567\",\n            \"channel_name\": \"#example-channel-name\",\n            \"redirect_url\": \"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"\n          }\n        ]\n      }\n    },\n    \"type\": \"incident_integrations\"\n  }\n}"
          step: the "incident" has an "incident_integration_metadata"
      x-menu-order: 10
      x-permission:
        operator: OR
        permissions:
        - incident_write
      x-undo:
        operationId: DeleteIncidentIntegration
        parameters:
        - name: incident_id
          source: data.attributes.incident_id
        - name: integration_metadata_id
          source: data.id
        type: unsafe
      x-unstable: '**Note**: This endpoint is in public beta.

        If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/incidents/{incident_id}/relationships/todos:
    post:
      description: Create an incident todo.
      operationId: CreateIncidentTodo
      parameters:
      - $ref: '#/components/parameters/IncidentIDPathParameter'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncidentTodoCreateRequest'
        description: Incident todo payload.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentTodoResponse'
          description: CREATED
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - incident_write
      summary: Datadog Create an Incident Todo
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        incident_todo:
          parameters:
          - name: incident_id
            source: incident.data.id
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"content\": \"Follow up with customer about the impact they saw.\",\n      \"assignees\": [\n        \"@test.user@test.com\",\n        {\n          \"icon\": \"https://a.slack-edge.com/80588/img/slackbot_48.png\",\n          \"id\": \"USLACKBOT\",\n          \"name\": \"Slackbot\",\n          \"source\": \"slack\"\n        }\n      ]\n    },\n    \"type\": \"incident_todos\"\n  }\n}"
          step: the "incident" has an "incident_todo"
      x-menu-order: 15
      x-permission:
        operator: OR
        permissions:
        - incident_write
      x-undo:
        operationId: DeleteIncidentTodo
        parameters:
        - name: incident_id
          source: data.attributes.incident_id
        - name: todo_id
          source: data.id
        type: unsafe
      x-unstable: '**Note**: This endpoint is in public beta.

        If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/integration/aws/accounts:
    post:
      description: Create a new AWS Account Integration Config.
      operationId: CreateAWSAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AWSAccountCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AWSAccountResponse'
          description: AWS Account object
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create an Aws Integration
      tags:
      - Create
      x-codegen-request-body-name: body
      x-given:
        aws_account_v2:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"type\": \"account\",\n    \"attributes\": {\n      \"account_tags\": [\n        \"key:value\"\n      ],\n      \"auth_config\": {\n        \"role_name\": \"DatadogIntegrationRole\"\n      },\n      \"aws_account_id\": \"123456789012\",\n      \"aws_partition\": \"aws\",\n      \"aws_regions\": {\n        \"include_only\": [\n          \"us-east-1\"\n        ]\n      },\n      \"logs_config\": {\n        \"lambda_forwarder\": {\n          \"lambdas\": [\n            \"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder\"\n          ],\n          \"sources\": [\n            \"s3\"\n          ]\n        }\n      },\n      \"metrics_config\": {\n        \"enabled\": true,\n        \"automute_enabled\": true,\n        \"collect_custom_metrics\": false,\n        \"collect_cloudwatch_alarms\": false,\n        \"tag_filters\": [\n          {\n            \"namespace\": \"AWS/EC2\",\n            \"tags\": [\n              \"key:value\"\n            ]\n          }\n        ],\n        \"namespace_filters\": {\n          \"include_only\": [\n            \"AWS/EC2\"\n          ]\n        }\n      },\n      \"resources_config\": {\n        \"cloud_security_posture_management_collection\": false,\n        \"extended_collection\": false\n      },\n      \"traces_config\": {\n        \"xray_services\": {\n          \"include_only\": [\n            \"AWS/AppSync\"\n          ]\n        }\n      }\n    }\n  }\n}"
          step: there is a valid "aws_account_v2" in the system
      x-menu-or

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