---
title: "Make this Experiment the organization's Baseline for its Dataset."
method: PUT
path: "/api/{org_id}/experiments/{experiment_id}/baseline"
tags: ["Experiments"]
---

# Make this Experiment the organization's Baseline for its Dataset.

`PUT /api/{org_id}/experiments/{experiment_id}/baseline`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/experiments/{experiment_id}/baseline`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/experiments/:experiment_id/baseline/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required
- `experiment_id` string, required

## Response `200`

Baseline moved to this Experiment

- ExperimentBaselineResponseBody: The result of a Baseline change, naming both ends of the move.
  - `experiment` ExperimentResponseBody, required
    - `createdAt` integer, required
    - `createdBy` string, required
    - `datasetFilter` DatasetSnapshotFilterBody
      - `logicalIds` string[]
      - `metadata` object
      - `sources` DatasetItemSourceBody[]
      - `tags` string[]
    - `datasetId` string, required
    - `datasetName` string, nullable: Resolved from the Dataset the experiment pinned, so callers do not have to fetch the Dataset list just to label a run. None when it was deleted.
    - `datasetVersion` integer, required: The pinned `global_version`: the row cut every Slot reads.
    - `datasetWriteVersion` integer, required: The Dataset version to display for that pin: one per write request.
    - `deadlineAt` integer, required
    - `description` string, nullable
    - `executionCompletedAt` integer, nullable
    - `executionStatus` 'pending' | 'running' | 'completed' | 'failed' | 'cancelled', required
    - `executionStatusReason` string, nullable
    - `id` string, required
    - `idempotencyKey` string, nullable
    - `isBaseline` boolean, required: The organization's Baseline for this Dataset. At most one Experiment per organization and Dataset carries it.
    - `lifecycleVersion` integer, required
    - `metadata` unknown
    - `name` string, required
    - `orgId` string, required
    - `promptContentHash` string, nullable
    - `promptId` string, nullable
    - `promptName` string, nullable
    - `promptVersion` integer, nullable
    - `retryCount` integer, required
    - `scorers` PinnedExperimentScorerBody[], required
      - `id` string, required
      - `version` integer, required
    - `task` union, required
      - object
        - `messages` PromptMessageBody[], required
          - `content` string, required
          - `role` string, required
        - `model` string, nullable
        - `params` unknown
        - `provider_id` string, required
        - `type` 'inline_prompt', required
      - object
        - `id` string, required
        - `params_overrides` PromptRefOverridesBody
          - `model` string, nullable
          - `params` unknown
          - `responseFormat` unknown
          - `tools` unknown
        - `provider_id` string, required
        - `type` 'prompt_ref', required
        - `version` integer, required
      - object
        - `overrides` RemoteTaskOverridesBody: The two runtime overrides an Experiment may set on a registered Remote Task.
          - `maxConcurrency` integer, nullable
          - `timeoutMs` integer, nullable
        - `task_ref` string, required: Pinned `name@version` of a published Remote Task. Never latest.
        - `type` 'remote', required
      - object
        - `config` unknown
        - `task_fingerprint` string, required: Immutable identity of the customer code under evaluation. Every execution record reported for this Experiment must repeat it.
        - `type` 'sdk', required
    - `trialCount` integer, required
  - `previousBaselineId` string, nullable: The Experiment that held the Baseline before this call, if any. `None` means the Dataset had no Baseline; the service never selects a replacement on its own.

## Other responses

- `403`: Experiment is not accessible
- `404`: Experiment not found
- `409`: Experiment is not eligible to be a Baseline

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
