---
title: "Get experiment diagnostics"
method: GET
path: "/api/v2/experiments/{experiment_id}/diagnostics"
tags: ["Experiments"]
---

# Get experiment diagnostics

`GET /api/v2/experiments/{experiment_id}/diagnostics`

## Request

- Base URL: `https://api.datadoghq.com`
- URL: `https://api.datadoghq.com/api/v2/experiments/{experiment_id}/diagnostics`
- Auth: one of:
  - API key in header `DD-API-KEY` and API key in header `DD-APPLICATION-KEY`
  - OAuth 2
    - Authorization code: `/oauth2/v1/authorize`
    - Token URL: `/oauth2/v1/token` scopes: `product_analytics_experiments_read`
- TypeScript: <https://skmtc.dev/datadog/apis/datadog-api-v2-collection/docs/api/v2/experiments/:experiment_id/diagnostics/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the diagnostics produced by an experiment's latest analysis run. Each diagnostic includes its category, and the response includes an overall diagnostic or pipeline lifecycle status.

## Path parameters

- `experiment_id` string, uuid, required: The UUID of the experiment.

## Response `200`

OK

- ExperimentsExperimentDiagnosticsV2DTO: Response containing the diagnostic checks for an experiment.
  - `data` ExperimentsExperimentDiagnosticsV2DTOData, required: Experiment diagnostics resource with its identifier and check results.
    - `attributes` ExperimentsExperimentDiagnosticsV2DTODataAttributes: Diagnostic check results and their evaluation state.
      - `diagnostics` ExperimentsExperimentDiagnosticsV2DTODataAttributesDiagnosticsItems[], required: Results of individual diagnostic checks.
        - `message` string, nullable: Explanation of the diagnostic check result.
        - `metric_id` string, nullable: Identifier of the metric associated with this check.
        - `skipped_reason` 'NO_ASSIGNMENTS' | 'NO_DIMENSIONAL_DATA' | 'NO_METRIC_DATA' | 'ZERO_VARIANCE', nullable: Reason the diagnostic check could not be evaluated.
        - `status` 'PASS' | 'FAIL' | 'WARN' | 'ERROR' | 'SKIPPED', required: Outcome of an individual diagnostic check.
        - `title` string, required: Short title of the diagnostic check.
        - `type` 'EXPERIMENT_HAS_ASSIGNMENTS' | 'METRIC_HAS_DATA' | 'ASSIGNMENT_IMBALANCE' | 'METRIC_WINSORIZE_ZERO' | 'PRE_EXPERIMENT_IMBALANCE' | 'MIXED_ASSIGNMENTS' | 'DIMENSIONAL_ASSIGNMENT_IMBALANCE' | 'FLAG_HAS_EVALUATIONS' | 'IMPLAUSIBLE_PRIOR' | 'DIMENSIONAL_DEGRADATION' | 'PIPELINE_STATUS' | 'MAPPED_ANALYSIS_CONFIGURATION' | 'MAPPED_ANALYSIS_COVERAGE' | 'MAPPED_ANALYSIS_COLLISIONS' | 'MAPPED_ANALYSIS_FANOUT' | 'MAPPED_ANALYSIS_CHANGE', required: Kind of diagnostic check performed.
      - `evaluated_at` string, date-time, nullable: Time when the diagnostic checks were evaluated.
      - `result` 'PASS' | 'FAIL' | 'WARN' | 'NO_DATA', nullable: Overall result of the experiment diagnostic checks.
      - `state` 'NOT_STARTED' | 'RUNNING' | 'COMPLETED' | 'FAILED', required: Current state of the diagnostic evaluation.
    - `id` string, uuid, required: Identifier of the experiment whose diagnostics are returned.
    - `type` 'experiment-diagnostics', required: Experiment diagnostics resource type.

## Other responses

- `400`: Malformed experiment ID (not a valid UUID).
- `401`: Missing or invalid authentication.
- `403`: Authenticated caller lacks the product_analytics_experiments_read permission.
- `404`: No experiment with this ID exists for the organization. Lifecycle statuses in a successful response explain whether analysis has started, is running, or completed without diagnostics.
- `429`: Too many requests

---

[API](https://skmtc.dev/datadog/apis/datadog-api-v2-collection.md) - [All operations](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/llms.txt) - [OpenAPI document](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/revisions/3f70db624329?raw)
