---
title: "Run Optimization"
method: POST
path: "/api/v1/optimization/run"
tags: ["optimization"]
---

# Run Optimization

`POST /api/v1/optimization/run`

Trigger a GEPA prompt optimization run.

## Request body

- GEPAOptimizationRequest — Request body for triggering a GEPA prompt optimization run.
  - `dataset_path` string, nullable — Relative filesystem path to the dataset file.
  - `dataset_id` string, nullable — Registered dataset identifier to optimize against.
  - `program_spec` string — DSPy program specification string to optimize in module:attr form. Required when module_slug is not provided.
  - `module_slug` string, nullable — Registered module slug for server-side dispatch. When provided, program_spec is auto-resolved from the module registry.
  - `output_path` string, nullable — Optional filesystem path to save the optimized program.
  - `auto` 'light' | 'medium' | 'heavy' — GEPA optimization intensity level.
  - `train_ratio` number — Fraction of examples to use for training (remainder used for validation).

## Response `200`

Successful Response

- GEPAOptimizationResponse — Result payload after a GEPA optimization run completes.
  - `ok` boolean — Whether the optimization run completed successfully.
  - `optimizer` string — Optimizer backend that was used.
  - `program_spec` string, required — DSPy program specification that was optimized.
  - `train_examples` integer, required — Number of training examples used.
  - `validation_examples` integer, required — Number of validation examples used.
  - `validation_score` number, nullable — Validation score from the optimized program, when available.
  - `output_path` string, nullable — Filesystem path where the optimized program was saved.
  - `manifest_path` string, nullable — Filesystem path to the optimization manifest, when available.
  - `module_slug` string, nullable — Module slug used for this optimization run, when server-side dispatch was used.
  - `error` string, nullable — Error message when the optimization run failed.

## Other responses

- `400` — Invalid optimization parameters.
- `401` — Authentication is required or the provided token is invalid.
- `422` — Validation Error
- `503` — GEPA optimization is unavailable in this environment.

## Changes

- **2026-04-18** `1f45411d7556` — 2 breaking
  - request property `dataset_id` list-of-types was narrowed by removing types `integer` from media type `application/json`
  - the `dataset_id/anyOf[subschema #1]/` request property type/format changed from `integer`/`` to `string`/``
- **2026-04-14** `3044e5c4a9da` — 3 info
  - added the new optional request property `dataset_id`
  - the request property `dataset_path` became optional
  - request property `dataset_path` list-of-types was widened by adding types `null` to media type `application/json`
- **2026-04-14** `08de6302fd74` — 5 info
  - added the new optional request property `module_slug`
  - the request property `program_spec` became optional
  - the `program_spec` request property default value `` was added
  - added the optional property `manifest_path` to the response with the `200` status
  - …1 more
- **2026-04-04** `8a91e4c507cc` — 1 info
  - endpoint added
- **2026-03-19** `78507b29ed8f` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/qredence/apis/fleet-rlm/changes/api/v1/optimization/run/post.md)

---

[API](https://skmtc.dev/qredence/apis/fleet-rlm.md) · [All operations](https://skmtc.dev/qredence/apis/fleet-rlm/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qredence/fleet-rlm/revisions/b8ee197ef03e/schema)
