> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retab.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Experiment

> Delete an experiment.

Identified by `experiment_id`. Also removes the experiment's runs and
results. Returns 204 on success, 404 if not found, and 409 if the latest
run is still pending or running (cancel it first).

Permanently delete an experiment along with all its runs and per-document
results.

Returns `409` if any run is still pending or running. Cancel the in-flight run
with [Cancel Experiment Run](/api-reference/workflows/experiments/runs/cancel)
first.

<RequestExample>
  ```python Python theme={null}
  from retab import Retab

  client = Retab()

  client.workflows.experiments.delete(
      experiment_id="exp_abc",
  )
  ```

  ```typescript TypeScript theme={null}
  import { Retab } from "@retab/node";

  const client = new Retab({ apiKey: process.env.RETAB_API_KEY });

  await client.workflows.experiments.delete("exp_abc");
  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"log"

  	retab "github.com/retab-dev/retab/clients/go"
  )

  func ptr[T any](v T) *T { return &v }

  func main() {
  	ctx := context.Background()

  	client, err := retab.NewClient("")
  	if err != nil {
  		log.Fatal(err)
  	}

  	if err := client.Workflows.Experiments.Delete(ctx, "exp_abc"); err != nil {
  		log.Fatal(err)
  	}
  }
  ```

  ```ruby Ruby theme={null}
  require 'retab'

  client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])

  client.workflows.experiments.delete(experiment_id: 'exp_abc')
  ```

  ```rust Rust theme={null}
  use retab::Retab;

  #[tokio::main]
  async fn main() -> Result<(), Box<dyn std::error::Error>> {
      let client = Retab::new(std::env::var("RETAB_API_KEY")?);

      client.workflows().experiments().delete("exp_abc").await?;
      Ok(())
  }
  ```

  ```php PHP theme={null}
  <?php
  require 'vendor/autoload.php';

  use Retab\Client;

  $client = new Client(apiKey: getenv('RETAB_API_KEY'));

  $client->workflows()->experiments()->delete(
      experimentId: 'exp_abc123',
  );
  echo "Deleted\n";
  ```

  ```csharp C# theme={null}
  using Retab;
  using RetabClient = Retab.Retab;

  var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
  var client = new RetabClient(apiKey);

  await client.Workflows.Experiments.DeleteAsync("exp_abc123");
  Console.WriteLine("Deleted");
  ```

  ```java Java theme={null}
  import com.retab.RetabClient;

  public final class Example {
    public static void main(String[] args) throws Exception {
      RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));

      var result = client.workflows().experiments().delete("exp_abc123");
      System.out.println(result);
    }
  }
  ```

  ```curl cURL theme={null}
  curl -X 'DELETE' \
    'https://api.retab.com/v1/workflows/experiments/exp_abc' \
    -H 'Authorization: Bearer <your-api-key>'
  ```
</RequestExample>

<ResponseExample>
  ```json 204 theme={null}
  ```

  ```json 409 theme={null}
  {
    "detail": "Cannot delete a running experiment. Cancel it first."
  }
  ```
</ResponseExample>


## OpenAPI

````yaml DELETE /v1/workflows/experiments/{experiment_id}
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://api.retab.com
security: []
paths:
  /v1/workflows/experiments/{experiment_id}:
    delete:
      tags:
        - Workflows
        - Workflow Experiments
      summary: Delete Experiment
      description: |-
        Delete an experiment.

        Identified by `experiment_id`. Also removes the experiment's runs and
        results. Returns 204 on success, 404 if not found, and 409 if the latest
        run is still pending or running (cancel it first).
      operationId: delete_experiment
      parameters:
        - in: path
          name: experiment_id
          required: true
          schema:
            type: string
            title: Experiment Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
          default: []
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
          default: null
        ctx:
          type: object
          title: Context
          default: {}
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````