Skip to main content
POST
/
v1
/
workflows
/
{workflow_id}
/
experiments
/
{experiment_id}
/
duplicate
from retab import Retab

client = Retab()

copy = client.workflows.experiments.duplicate(
    workflow_id="wf_abc123",
    experiment_id="exp_abc",
)
print(copy.id, copy.name)
{
  "id": "exp_xyz",
  "workflow_id": "wf_abc123",
  "block_id": "extract-invoice",
  "block_kind": "extract",
  "n_consensus": 5,
  "document_count": 12,
  "name": "Q1 invoices (Copy)",
  "last_run_id": null,
  "status": "draft",
  "score": null,
  "is_stale": false,
  "schema_drift": "unknown",
  "schema_drift_detail": null,
  "created_at": "2026-05-02T11:00:00Z",
  "updated_at": "2026-05-02T11:00:00Z"
}

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.

Create a copy of an experiment, reusing its already-materialized documents. Useful when you want to A/B against a config change while keeping the original experiment’s run history intact. The duplicate starts at status: "draft" (no runs of its own).
from retab import Retab

client = Retab()

copy = client.workflows.experiments.duplicate(
    workflow_id="wf_abc123",
    experiment_id="exp_abc",
)
print(copy.id, copy.name)
{
  "id": "exp_xyz",
  "workflow_id": "wf_abc123",
  "block_id": "extract-invoice",
  "block_kind": "extract",
  "n_consensus": 5,
  "document_count": 12,
  "name": "Q1 invoices (Copy)",
  "last_run_id": null,
  "status": "draft",
  "score": null,
  "is_stale": false,
  "schema_drift": "unknown",
  "schema_drift_detail": null,
  "created_at": "2026-05-02T11:00:00Z",
  "updated_at": "2026-05-02T11:00:00Z"
}

Authorizations

Api-Key
string
header
required

Path Parameters

workflow_id
string
required
experiment_id
string
required

Query Parameters

access_token
string | null

Response

Successful Response

id
string
required
workflow_id
string
required
block_id
string
required
n_consensus
enum<integer>
required
Available options:
3,
5,
7
name
string
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
block_kind
enum<string>
required
Available options:
extract,
classifier,
split,
for_each
document_count
integer
default:0
last_run_id
string | null
status
enum<string>
default:draft
Available options:
draft,
processing,
completed,
failed,
cancelled
score
number | null
job_id
string | null
is_stale
boolean
default:false
schema_drift
enum<string>
default:unknown
Available options:
none,
partial,
drifted,
unknown
schema_drift_detail
string | null