---
title: "Get Datafit"
method: GET
path: "/pipelines/datafits/{job_id}"
tags: ["Pipeline"]
---

# Get Datafit

`GET /pipelines/datafits/{job_id}`

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- JobResponse — Schema for job information response
  - `job_id` string, required
  - `job_type` 'dummy' | 'datafit' | 'array_datafit' | 'validation' | 'simulate' | 'evaluate_variables' | 'optimize' | 'ecm_fit' | 'simple_pipeline', 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' | '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
  - `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.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ionworks/apis/fastapi.md) · [All operations](https://skmtc.dev/ionworks/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ionworks/fastapi/revisions/7337a3cbdaf2/schema)
