---
title: "Propose Experiment Endpoint"
method: POST
path: "/api/v1/gm/experiment/propose"
tags: ["gm", "gm"]
---

# Propose Experiment Endpoint

`POST /api/v1/gm/experiment/propose`

## Request

- Base URL: `https://app.goodleads.club` (the document declares no server; this is the origin it was published from)
- URL: `https://app.goodleads.club/api/v1/gm/experiment/propose`
- Auth: API key in header `X-API-Key`

Validate + create a pending experiment + check the agent's budget.

Returns 422 if cost exceeds remaining envelope or proposal is invalid.
Returns 201 with experiment_id, cost_estimate_usd, remaining_envelope_after_usd.

## Request body

- ProposeExperimentRequest
  - `agent_id` string, required
  - `name` string, required
  - `hypothesis` string, required
  - `target_artifact` string, required
  - `target_artifact_ref` string, nullable
  - `corpus_type` string, required
  - `corpus_spec` object, required
  - `variants` VariantSpecRequest[], required
    - `label` string, required
    - `description` string, required
    - `diff` object, required
  - `item_count_estimate` integer, required

## Response `201`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/goodleads/apis/formation-gtm-api.md) · [All operations](https://skmtc.dev/goodleads/apis/formation-gtm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/goodleads/apis/formation-gtm-api/revisions/2068d13a82cf?raw)
