---
title: "Update eval job"
method: PUT
path: "/api/{org_id}/eval_jobs/{job_id}"
tags: ["EvalJobs"]
---

# Update eval job

`PUT /api/{org_id}/eval_jobs/{job_id}`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/eval_jobs/{job_id}`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/eval_jobs/:job_id/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates the editable fields of an online eval job and bumps its version. The associated pipeline is re-reconciled if the job is active.

## Path parameters

- `org_id` string, required
- `job_id` string, required

## Request body

- object: HTTP request body for creating or updating an Online Eval Job.
  - `description` string, nullable
  - `filterCondition` unknown, required
  - `inputMapping` object, nullable
  - `name` string, required
  - `samplingMode` string, required
  - `samplingValue` unknown, required
  - `scorers` ScorerRefForm[], required
    - union
      - string
      - object
        - `id` string, required
        - `version` integer, nullable
  - `sessionConfig` object, nullable
  - `spanSelectorBindings` object
  - `spanSelectors` object[]
  - `stream` string, required
  - `streamType` string, required
  - `targetScope` string
  - `traceConfig` object, nullable

## Response `200`

- object: HTTP response body for a single Online Eval Job.
  - `createdAt` integer, required
  - `description` string, nullable
  - `filterCondition` unknown, required
  - `health` EvalJobHealthBody: Run state measured from `_evaluator` scorer spans; never changes the job's `status`.
    - `evaluatedAt` integer, required: When the job was last measured, in microseconds.
    - `lastError` EvalJobLastErrorBody
      - `at` integer, required: When the error happened, in microseconds.
      - `kind` string, required: e.g. `provider_auth`, `rate_limited`, `timeout`, `provider_5xx`, `parse_error`.
      - `message` string, required
    - `lastSuccessAt` integer, nullable: Newest successful scorer run in the last 24 hours, in microseconds.
    - `recentErrors` integer, required: Failed scorer runs in the last 15 minutes.
    - `recentRuns` integer, required: Scorer runs in the last 15 minutes.
    - `scores24h` integer, required: Successful scorer runs in the last 24 hours.
    - `since` integer, required: When `state` last changed, in microseconds.
    - `state` string, required: `healthy`, `degraded`, `waiting_for_credentials` or `no_recent_runs`.
  - `id` string, required
  - `inputMapping` object, nullable
  - `name` string, required
  - `orgId` string, required
  - `pipelineId` string, nullable
  - `samplingMode` string, required
  - `samplingValue` unknown, required
  - `scorers` ScorerRefForm[], required
    - union
      - string
      - object
        - `id` string, required
        - `version` integer, nullable
  - `sessionConfig` object, nullable
  - `spanSelectorBindings` object, required
  - `spanSelectors` object[], required
  - `status` string, required
  - `stream` string, required
  - `streamType` string, required
  - `targetScope` string, required
  - `traceConfig` object, nullable
  - `updatedAt` integer, required
  - `version` integer, required

## Other responses

- `400`: Bad Request
- `404`: Not Found

---

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