Configure One Third-Party Service Integration

POST /api/atlas/v2/groups/{groupId}/integrations/{integrationType}

Adds the settings for configuring one third-party service integration. These settings apply to all databases managed in the specified MongoDB Cloud project. Each project can have only one configuration per {INTEGRATION-TYPE}. To use this resource, the requesting Service Account or API Key must have the Organization Owner or Project Owner role.

Path parameters

  • integrationType string Required

    Human-readable label that identifies the service which you want to integrate with MongoDB Cloud.

    Values are PAGER_DUTY, SLACK, DATADOG, NEW_RELIC, OPS_GENIE, VICTOR_OPS, WEBHOOK, HIP_CHAT, PROMETHEUS, or MICROSOFT_TEAMS.

  • groupId string Required

    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.

    NOTE: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group/project id remains the same. The resource and corresponding endpoints use the term groups.

    Format should match the following pattern: ^([a-f0-9]{24})$.

Query parameters

  • envelope boolean

    Flag that indicates whether Application wraps the response in an envelope JSON object. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. Endpoints that return a list of results use the results object as an envelope. Application adds the status parameter to the response body.

    Default value is false.

  • includeCount boolean

    Flag that indicates whether the response returns the total number of items (totalCount) in the response.

    Default value is true.

  • itemsPerPage integer

    Number of items that the response returns per page.

    Minimum value is 1, maximum value is 500. Default value is 100.

  • pageNum integer

    Number of the page that displays the current set of the total objects that the response returns.

    Minimum value is 1. Default value is 1.

  • pretty boolean

    Flag that indicates whether the response body should be in the prettyprint format.

    Default value is false.

    Prettyprint
application/vnd.atlas.2023-01-01+json

Body object Required

Third-party integration that you want to configure for your project.

One of:

Details to integrate one Datadog account with one MongoDB Cloud project.

  • id string | null

    Integration id.

  • type string Discriminator

    Human-readable label that identifies the service to which you want to integrate with MongoDB Cloud. The value must match the third-party service integration type.

    Value is DATADOG.

  • apiKey string Required

    Key that allows MongoDB Cloud to access your Datadog account.

    NOTE: After you create a notification which requires an API or integration key, the key appears partially redacted when you:

    • View or edit the alert through the Atlas UI.

    • Query the alert for the notification through the Atlas Administration API.

  • region string

    Two-letter code that indicates which regional URL MongoDB uses to access the Datadog API.

    Values are US, EU, US3, US5, AP1, or US1_FED.

    Datadog regions
  • sendCollectionLatencyMetrics boolean

    Toggle sending collection latency metrics that includes database names and collection namesand latency metrics on reads, writes, commands, and transactions.

    Default value is false.

  • sendDatabaseMetrics boolean

    Toggle sending database metrics that includes database names and metrics on the number of collections, storage size, and index size.

    Default value is false.

Responses

  • 200 application/vnd.atlas.2023-01-01+json

    OK

    Hide response attributes Show response attributes object
    • results array[object]

      List of returned documents that MongoDB Cloud provides when completing this request.

      One of:

      Details to integrate one Datadog account with one MongoDB Cloud project.

      Hide attributes Show attributes
      • id string | null

        Integration id.

      • type string Discriminator

        Human-readable label that identifies the service to which you want to integrate with MongoDB Cloud. The value must match the third-party service integration type.

        Value is DATADOG.

      • apiKey string Required

        Key that allows MongoDB Cloud to access your Datadog account.

        NOTE: After you create a notification which requires an API or integration key, the key appears partially redacted when you:

        • View or edit the alert through the Atlas UI.

        • Query the alert for the notification through the Atlas Administration API.

      • region string

        Two-letter code that indicates which regional URL MongoDB uses to access the Datadog API.

        Values are US, EU, US3, US5, AP1, or US1_FED.

        Datadog regions
      • sendCollectionLatencyMetrics boolean

        Toggle sending collection latency metrics that includes database names and collection namesand latency metrics on reads, writes, commands, and transactions.

        Default value is false.

      • sendDatabaseMetrics boolean

        Toggle sending database metrics that includes database names and metrics on the number of collections, storage size, and index size.

        Default value is false.

    • totalCount integer(int32)

      Total number of documents available. MongoDB Cloud omits this value if includeCount is set to false. The total number is an estimate and may not be exact.

      Minimum value is 0.

  • 400 application/json

    Bad Request.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 401 application/json

    Unauthorized.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 403 application/json

    Forbidden.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 404 application/json

    Not Found.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 409 application/json

    Conflict.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 500 application/json

    Internal Server Error.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

POST /api/atlas/v2/groups/{groupId}/integrations/{integrationType}
atlas api createThirdPartyIntegration --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	client, err := sdk.NewClient(
		sdk.UseOAuthAuth(clientID, clientSecret),
		sdk.UseBaseURL(url))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.CreateThirdPartyIntegrationApiParams{}
	sdkResp, httpResp, err := client.Third - PartyIntegrationsApi.
		CreateThirdPartyIntegrationWithParams(ctx, params).
		Execute()
}
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/integrations/{integrationType}" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/integrations/{integrationType}" \
  -d '{ <Payload> }'
{
  "id": "string",
  "type": "DATADOG",
  "apiKey": "****************************a23c",
  "region": "US",
  "sendCollectionLatencyMetrics": false,
  "sendDatabaseMetrics": false
}
{
  "id": "string",
  "type": "MICROSOFT_TEAMS",
  "microsoftTeamsWebhookUrl": "https://webhook.com/****"
}
{
  "id": "string",
  "type": "NEW_RELIC",
  "accountId": "bcc3c81b344a6030a3935c2527e2216535af7718",
  "licenseKey": "bc3768f44193c282b2688ab39e00f8e4fc8d75ea",
  "readToken": "193c96aee4a3ac640b98634562e2631f17ae0a69",
  "writeToken": "a67b10e5cd7f8fb6a34b501136c409f373edc218"
}
{
  "id": "string",
  "type": "OPS_GENIE",
  "apiKey": "********************************a111",
  "region": "US"
}
{
  "id": "string",
  "type": "PAGER_DUTY",
  "region": "US",
  "serviceKey": "****************************7890"
}
{
  "id": "string",
  "type": "PROMETHEUS",
  "enabled": true,
  "password": "string",
  "serviceDiscovery": "http",
  "username": "prom_user_618d48e05277a606ed2496fe"
}
{
  "id": "string",
  "type": "SLACK",
  "apiToken": "**********************************************************************abcd",
  "channelName": "alerts",
  "teamName": "MongoDB"
}
{
  "id": "string",
  "type": "VICTOR_OPS",
  "apiKey": "********************************9abc",
  "routingKey": "test routing"
}
{
  "id": "string",
  "type": "WEBHOOK",
  "secret": "string",
  "url": "https://webhook.com/****"
}
Response examples (200)
{
  "links": [
    {
      "href": "https://cloud.mongodb.com/api/atlas",
      "rel": "self"
    }
  ],
  "results": [
    {
      "id": "string",
      "type": "DATADOG",
      "apiKey": "****************************a23c",
      "region": "US",
      "sendCollectionLatencyMetrics": false,
      "sendDatabaseMetrics": false
    }
  ],
  "totalCount": 42
}
Response examples (400)
{
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
Response examples (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
Response examples (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
Response examples (404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
Response examples (409)
{
  "error": 409,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
  "reason": "Conflict",
  "errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
Response examples (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}