Skip to main content
POST
Save the sample (selected source episodes)

Authorizations

Authorization
string
header
required

Either a Supabase user access token (from a password login, or the passwordless magic-link flow) or a long-lived forge_sk_… API key. Both are sent as Authorization: Bearer <value> and resolve to the same owner, so every endpoint accepts either. Session tokens expire in ~1h; API keys do not expire and are the credential for MCP clients, CI, and partner integrations.

Path Parameters

campaign_id
string
required

Body

application/json
selected_episodes
integer[]

Source episode indices (at least one after cleaning).

Response

The updated campaign

A Dataset Workbench campaign (owner view): one walk of the augmentation spine over one source dataset. stage is the FURTHEST stage reached and never rolls back. Internal bookkeeping (owner, dataset/cache locations) is never surfaced. The set of already-billed episodes is tracked server-side but not exposed here, the deliver response reports how many episodes each delivery billed.

campaign_id
string
Example:

"camp_1f2e3d4c5b6a"

name
string

Display name, the repo's last path segment, the sample's label, or the upload's campaign_name.

repo_id
string

The source dataset: a Hugging Face repo id, or the upload's name for uploaded datasets.

engine
string

The augmentation engine (embodiment + pipeline) this campaign runs on.

stage
enum<string>

Furthest stage reached on the spine (monotonic).

Available options:
source,
sample,
transform,
run,
deliver
episodes
integer

Episode count of the SOURCE dataset.

health
object | null

The dataset health report once computed (null before): episode count, detected classes ({class: count}), the active target_class + class_column, arm_split, release stats, the eligible_pool, exclusions, and a motion-envelope p99_summary.

health_status
enum<string>

Health lifecycle. failed carries no report; re-POST …/health to retry.

Available options:
idle,
computing,
ready,
failed
sample
object | null

The saved sample (null until POST …/sample): the selected SOURCE episodes the transforms operate on.

plan
object | null

The saved transformation plan (null until POST …/plan).

run_ids
string[]

Run job ids, oldest first. Poll each at GET /api/aug/jobs/{job_id}.

reviews
object

Per-episode human verdicts, keyed by episode name: { verdict: confirm|overrule, by, at, note? }. Unreviewed episodes trust the machine gate verdict.

delivery
object | null

Delivery state (null until POST …/deliver): status walks exporting → exported (→ publishing → published when a target_repo was given) or failed (with error), plus export_dir, count, the exported episodes, per-families counts, a format_note, and timestamps.

dataset_source
string | null

sample, upload, or remote_uri (imported from S3/GCS/Azure/https via source_uri); absent for a plain Hugging Face repo campaign.

provenance
object | null

Where the dataset came from, e.g. { source: sample, sample_id, opened_utc } or { source: upload, upload_id, manifest_sha, files, layout_notes, ingested_utc }.

target_class
string | null

Per-campaign target-class override chosen via POST …/target (absent = the engine default).

created_utc
string<date-time>
updated_utc
string<date-time>
cost
object

Computed render spend across the campaign's runs.

head_stats
object

Cumulative per-head accept/reject yield across the campaign's prior runs ({head episode: {accepted, rejected}}), the learned-yield seed a top-up run carries forward.