This product is not supported for your selected Datadog site. ().

Create experiment metric group from collection

POST https://api.ap1.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.ap2.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.datadoghq.eu/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.ddog-gov.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.us2.ddog-gov.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.uk1.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.us3.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}https://api.us5.datadoghq.com/api/v2/experiments/{experiment_id}/metric-groups/from-collection/{metric_collection_id}

Overview

Copy a metric collection into a new non-decision metric group. The group is a request-time snapshot: later changes to the collection do not affect the experiment. Metric order is preserved. The operation is not idempotent, and incompatible or empty collections are rejected without creating a group. This endpoint requires the product_analytics_experiments_write permission.

OAuth apps require the product_analytics_experiments_write authorization scope to access this endpoint.

Arguments

Path Parameters

Name

Type

Description

experiment_id [required]

string

The UUID of the experiment.

metric_collection_id [required]

string

The UUID of the metric collection.

Response

Created

Response containing the saved experiment metric group and result refresh information.

Expand All

Field

Type

Description

data [required]

object

Experiment metric group resource with its identifier and metric selection.

attributes

object

Name, purpose, and selected metrics of an experiment metric group.

is_decision

boolean

Whether this group contains the experiment decision metrics.

metrics

[object]

Metrics selected for this experiment metric group.

is_primary [required]

boolean

Whether this is the experiment primary metric.

metric_id [required]

string

Identifier of the metric in the group.

metric_name [required]

string

Display name of the metric in the group.

migration_metadata

Metadata associated with migration of this resource.

name

string

Display name of the experiment metric group.

id [required]

uuid

Identifier of the experiment metric group.

type [required]

enum

Experiment metric groups resource type. Allowed enum values: experiment-metric-groups

default: experiment-metric-groups

meta

object

Refresh requirements and warnings returned by an experiment update.

needs_pipeline_refresh [required]

boolean

Whether this edit needs a full or non-full pipeline run. This operation does not start the run. A later false value does not clear a refresh required by an earlier edit.

refresh_endpoint

string

POST to this endpoint after finishing your edits. The full_refresh query parameter selects the required run type. Across multiple edits any full_refresh=true requirement takes priority.

warnings

[object]

Warnings returned after the experiment update.

code [required]

string

Code that identifies the warning.

detail [required]

string

Explanation of the warning and its effect on the update.

{
  "data": {
    "attributes": {
      "is_decision": false,
      "metrics": [
        {
          "is_primary": false,
          "metric_id": "550e8400-e29b-41d4-a716-446655440000",
          "metric_name": "metric name"
        }
      ],
      "migration_metadata": "undefined",
      "name": "string"
    },
    "id": "550e8400-e29b-41d4-a716-446655440022",
    "type": "experiment-metric-groups"
  },
  "meta": {
    "needs_pipeline_refresh": false,
    "refresh_endpoint": "string",
    "warnings": [
      {
        "code": "code",
        "detail": "detail"
      }
    ]
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Unauthorized

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Conflict

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Path parameters
export experiment_id="550e8400-e29b-41d4-a716-446655440000"
export metric_collection_id="550e8400-e29b-41d4-a716-446655440000"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/experiments/${experiment_id}/metric-groups/from-collection/${metric_collection_id}" \ -H "Accept: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}"