---
title: "Get Optimization With Jobs"
method: GET
path: "/optimize"
tags: ["optimization"]
deprecated: true
---

# Get Optimization With Jobs

`GET /optimize`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/optimize`
- Auth: none declared

> **Deprecated.**

List optimization jobs and optimization records for the project.

Filter parameters support Supabase filter operators:

- Text fields (name, template_name, cell_name, model_name,
  created_by_email): use ``ilike.%value%`` for partial match.
- Status: use ``eq.completed`` or ``in.(pending,running)`` for
  multiple values.
- Date range: use ``created_at_gt`` and ``created_at_lt`` for
  between queries.

## Query parameters

- `project_id` string, uuid, required
- `limit` integer
- `offset` integer
- `q` string, nullable
- `name` string, nullable
- `status` string, nullable
- `template_name` string, nullable
- `cell_name` string, nullable
- `model_name` string, nullable
- `created_by_email` string, nullable
- `created_at` string, nullable
- `created_at_gt` string, nullable
- `created_at_lt` string, nullable
- `updated_at_gt` string, nullable
- `updated_at_lt` string, nullable

## Response `200`

Successful Response

- OptimizationListResponse: List of optimization jobs and their optimization records.
  - `jobs` JobResponse[], required
    - `job_id` string, required
    - `job_type` 'dummy' | 'datafit' | 'array_datafit' | 'validation' | 'simulate' | 'evaluate_variables' | 'optimize' | 'ecm_fit' | 'simple_pipeline' | 'linear_confidence_interval' | 'sobol_sensitivity' | 'surrogate_train', required: Possible types for a job
    - `status` 'pending' | 'processing' | 'waiting' | 'completed' | 'failed' | 'canceled', required: Possible statuses for a job
    - `priority` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `compute_time` number, nullable
    - `error` string, nullable
    - `error_code` 'CONFIGURATION_ERROR' | 'MODEL_ERROR' | 'SOLVER_ERROR' | 'MAX_BACKWARD_JUMPS_EXCEEDED' | 'EXECUTION_TIMEOUT' | 'SUBMISSION_FAILED' | 'INTERNAL_ERROR': Machine-readable error codes for jobs.
    - `error_detail` object, nullable
    - `result` object, nullable
    - `callback_url` string, uri, nullable
    - `parent_job_id` string, nullable
    - `user_id` string, required
    - `organization_id` string, required
    - `project_id` string, nullable
    - `access_level` 'project' | 'organization': Possible access levels for a job
    - `params_path` string, nullable
    - `metadata_path` string, nullable
    - `anyscale_job_id` string, nullable
    - `submission_info` object, nullable
    - `child_key` object, nullable
    - `is_terminal` boolean, required: Whether the job has reached a terminal state and will not transition further. Derived from :attr:`JobStatus.TERMINAL_STATUSES`, so adding a new terminal status to the enum automatically updates the wire field — clients that read ``is_terminal`` never need to know the status taxonomy or be re-released when it changes.
    - `is_failed` boolean, required: Whether the job terminated unsuccessfully (failed or canceled, not completed). Derived from :attr:`is_terminal` minus the success case, so any new non-success terminal status added to :class:`JobStatus` is automatically classified as a failure without touching this method.
    - `anyscale_url` string, nullable, required: Deep-link to this job's Anyscale console dashboard, or None. Built server-side (mirroring the Sentry ``log_url`` pattern) from the captured ``anyscale_job_id`` and the environment's console cloud/project ids. Returns None when the job never ran on Anyscale (local/serve) or the environment has no console ids configured, so the UI simply omits the link in those cases.
  - `optimizations` Optimization[], required
    - `id` string, required
    - `name` string, nullable
    - `description` string, nullable
    - `job_id` string, required
    - `project_id` string, required
    - `user_id` string, nullable
    - `cell_spec_id` string, nullable
    - `parameterized_model_id` string, nullable
    - `optimization_template_id` string, nullable
    - `created_at` string, date-time, nullable
    - `created_by_email` string, nullable
    - `parameterized_model_name` string, nullable
    - `cell_name` string, nullable
    - `organization_id` string, required: Organization this optimization belongs to.
  - `total` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-26** `729b8cca71b0`: 1 warning
  - added the new `surrogate_train` enum value to the `jobs/items/job_type` response property for the response status `200`
- **2026-09-30** `ea3d377fec1a`: 1 breaking, 1 warning
  - for the `query` request parameter `project_id`, the format changed from no format to `uuid`
  - added the new `MAX_BACKWARD_JUMPS_EXCEEDED` enum value to the `jobs/items/error_code/anyOf[subschema #1: JobErrorCode]/` response property for the response status `200`
- **2026-09-26** `8ed5440390f0`: 1 info
  - added the optional property `jobs/items/child_key` to the response with the `200` status
- **2026-09-09** `48c041ad4800`: 2 warning
  - added the new `linear_confidence_interval` enum value to the `jobs/items/job_type` response property for the response status `200`
  - added the new `sobol_sensitivity` enum value to the `jobs/items/job_type` response property for the response status `200`

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/optimize/get.md)

---

[API](https://skmtc.dev/ionworks/apis/ionworks-api.md) - [All operations](https://skmtc.dev/ionworks/apis/ionworks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ionworks/apis/ionworks-api/revisions/abebbbc5f60a?raw)
