---
title: "Get Optimization Job Status"
method: GET
path: "/api/v1/jobs/gepa/{job_id}"
---

# Get Optimization Job Status

`GET /api/v1/jobs/gepa/{job_id}`

Get the status of a GEPA optimization job.

This endpoint is a pure Postgres reader. The sandbox writes logs and
terminal state directly to the hub_jobs row; a background Celery task
handles finalization (env_var cleanup, Slack notification, re-predict
trigger). Subsequent re-predict/scoring phases are tracked via the
``phase`` column updated by the Celery pipeline.

## Path parameters

- `job_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `modaic_session` string, nullable

## Response `200`

Successful Response

- GepaJobResponse
  - `job_id` string, required
  - `status` 'in_progress' | 'completed' | 'failed', required
  - `message` string, nullable
  - `results` object, nullable
  - `phase` 'optimizing' | 'finalizing' | 're_predicting' | 'scoring' | 'tuning' | 'done', nullable
  - `commit_hash` string, nullable

## Other responses

- `422` — Validation Error

---

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