---
title: "Start a new prompt optimization job."
method: POST
path: "/api/v2/projects/{project_id}/prompt-optimization-jobs"
tags: ["Prompt Optimization"]
---

# Start a new prompt optimization job.

`POST /api/v2/projects/{project_id}/prompt-optimization-jobs`

Creates an asynchronous job that optimizes the specified prompt template version.
The job will analyze examples from the dataset and generate an improved prompt.

When `run_test_after_optimization` is True (default), the job will also run
baseline and optimized test runs and create a comparison.

Poll GET /prompt-optimization-jobs/{job_id} to check job status.

## Path parameters

- `project_id` string, required

## Request body

- object
  - `prompt_template_version_id` string, uuid, required
  - `dataset_id` string, uuid, required
  - `user_instructions` string, nullable
  - `use_best_practices` boolean
  - `use_labels` boolean
  - `use_customer_feedback` boolean
  - `run_test_after_optimization` boolean

## Response `202`

PromptOptimizationJobCreatedResponse(job_id: uuid.UUID, status: str, created_at: datetime.datetime)

- object
  - `job_id` string, uuid, required
  - `status` string, required
  - `created_at` string, date-time, required

---

[API](https://skmtc.net/freeplay/apis/freeplay-api.md) · [All operations](https://skmtc.net/freeplay/apis/freeplay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/freeplay/freeplay-api/revisions/69c553220183/schema)
