> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://humanloop.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://humanloop.com/docs/_mcp/server.

# Update Status

PATCH https://api.humanloop.com/v4/evaluations/{id}/status
Content-Type: application/json

Update the status of an evaluation run.

Can only be used to update the status of an evaluation run that uses external or human evaluators.
The evaluation must currently have status 'running' if switching to completed, or it must have status
'completed' if switching back to 'running'.

Reference: https://humanloop.com/docs/v4/api/evaluations/update-status

## Authentication

- `X-API-KEY` header (required) — API Key authentication via header

## Request

### Path parameters

- `id` (string, required) — String ID of evaluation run. Starts with `ev_`.

### Body (application/json)

This endpoint expects an object.

- `status` (enum, required) — The new status of the evaluation.
  - Allowed values: `pending`, `running`, `completed`, `cancelled`

## Response

### 200

Successful Response

- `id` (string, required) — Unique ID for the evaluation. Starts with `ev_`.
- `status` (enum, required) — Status of an evaluation.
  - Allowed values: `pending`, `running`, `completed`, `cancelled`
- `config` (ConfigResponse, required)
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `evaluators` (list of EvaluatorResponse, required)
- `dataset` (DatasetResponse, required)
- `dataset_version_id` (string, required)
- `dataset_snapshot` (DatasetResponse, optional)
- `evaluator_aggregates` (list of ModelConfigEvaluatorAggregateResponse, optional)

## Errors

### 422 Evaluations Update Status Request Unprocessable Entity Error

Validation Error

- `detail` (list of ValidationError, optional)

## Types

### ConfigResponse

- `type`: `model`
  - `id` (string, required) — String ID of config. Starts with `config_`.
  - `model` (string, required) — The model instance used. E.g. text-davinci-002.
  - `chat_template` (list of ChatMessageWithToolCall, optional) — Messages prepended to the list of messages sent to the provider. These messages that will take your specified inputs to form your final request to the provider model. NB: Input variables within the template should be specified with syntax: `{{input_name}}`.
  - `description` (string, optional) — A description of the model config.
  - `endpoint` (enum, optional) — The provider model endpoint used.
    - Allowed values: `complete`, `chat`, `edit`
  - `frequency_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on how frequently they appear in the generation so far.
  - `max_tokens` (integer, optional, default: -1) — The maximum number of tokens to generate. Provide max_tokens=-1 to dynamically calculate the maximum number of tokens to generate given the length of the prompt
  - `name` (string, optional) — A friendly display name for the model config. If not provided, a name will be generated.
  - `other` (map from string to any, optional) — Other parameter values to be passed to the provider call.
  - `presence_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the generation so far.
  - `prompt_template` (string, optional) — Prompt template that will take your specified inputs to form your final request to the model. NB: Input variables within the prompt template should be specified with syntax: `{{input_name}}`.
  - `provider` (enum, optional) — The company providing the underlying model service.
    - Allowed values: `anthropic`, `bedrock`, `cohere`, `deepseek`, `google`, `groq`, `mock`, `openai`, `openai_azure`, `replicate`
  - `reasoning_effort` (ModelConfigResponseReasoningEffort, optional) — Guidance on how many reasoning tokens it should generate before creating a response to the prompt. OpenAI reasoning models (o1, o3-mini) expect a OpenAIReasoningEffort enum. Anthropic reasoning models expect an integer, which signifies the maximum token budget.
  - `response_format` (ResponseFormat, optional) — The format of the response. Only type json_object is currently supported for chat.
  - `seed` (integer, optional) — If specified, model will make a best effort to sample deterministically, but it is not guaranteed.
  - `stop` (ModelConfigResponseStop, optional) — The string (or list of strings) after which the model will stop generating. The returned text will not contain the stop sequence.
  - `temperature` (double, optional, default: 1) — What sampling temperature to use when making a generation. Higher values means the model will be more creative.
  - `template_language` (enum, optional) — The template language to use for rendering the template.
    - Allowed values: `default`, `jinja`
  - `tools` (list of ToolResponse, optional) — Tools shown to the model.
  - `top_p` (double, optional, default: 1) — An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.
  - `tool_configs` (list of ToolConfigResponse, optional, deprecated) — NB: Deprecated with tools field. Definition of tools shown to the model.
- `type`: `tool`
  - `id` (string, required) — String ID of config. Starts with `config_`.
  - `name` (string, required) — Name for the tool referenced by the model.
  - `status` (string, required) — Whether the config is committed or not.
  - `created_by` (UserResponse, optional) — The user who created the config.
  - `description` (string, optional) — Description of the tool referenced by the model
  - `is_preset` (boolean, optional) — Whether the tool is one where Humanloop defines runtime or not.
  - `other` (map from string to any, optional) — Other parameters that define the config.
  - `parameters` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
  - `preset_name` (string, optional) — If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to lookup the Humanloop runtime of the tool
  - `setup_schema` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
  - `signature` (string, optional) — The function signature of the tool when being called.
  - `source` (enum, optional) — Source of the tool. If defined at an organization level will be 'organization' else 'inline'.
    - Allowed values: `organization`, `inline`
  - `source_code` (string, optional) — Code source of the tool.
- `type`: `evaluator`
  - `evaluator_type` (string, required) — Type of evaluator.
  - `id` (string, required) — String ID of config. Starts with `config_`.
  - `name` (string, required) — Name of config.
  - `status` (string, required) — Whether the config is committed or not.
  - `arguments_type` (enum, optional) — Whether this evaluator is target-free or target-required.
    - Allowed values: `target_free`, `target_required`
  - `code` (string, optional) — The code for the evaluator. This code will be executed in a sandboxed environment.
  - `created_by` (UserResponse, optional) — The user who created the config.
  - `description` (string, optional) — Description of config.
  - `model_config` (ModelConfigResponse, optional) — The model config defining the LLM evaluator.
  - `other` (map from string to any, optional) — Other parameters that define the config.
  - `return_type` (enum, optional) — The type of the return value of the evaluator.
    - Allowed values: `boolean`, `number`, `select`, `multi_select`, `text`
- `type`: `agent`
  - `agent_class` (string, required) — Class of the agent.
  - `id` (string, required) — String ID of config. Starts with `config_`.
  - `model_config` (ModelConfigRequest, required) — Model config associated with the agent.
  - `name` (string, required) — Name of config.
  - `status` (string, required) — Whether the config is committed or not.
  - `created_by` (UserResponse, optional) — The user who created the config.
  - `description` (string, optional) — Description of config.
  - `other` (map from string to any, optional) — Other parameters that define the config.
  - `tools` (list of ToolConfigRequest, optional) — Tools associated with the agent.
- `type`: `generic`
  - `id` (string, required) — String ID of config. Starts with `config_`.
  - `name` (string, required) — Name of config.
  - `status` (string, required) — Whether the config is committed or not.
  - `created_by` (UserResponse, optional) — The user who created the config.
  - `description` (string, optional) — Description of config.
  - `other` (map from string to any, optional) — Other parameters that define the config.

### EvaluatorResponse

- `name` (string, required) — The name of the evaluator.
- `description` (string, required) — The description of the evaluator.
- `arguments_type` (enum, required) — Whether this evaluator is target-free or target-required.
  - Allowed values: `target_free`, `target_required`
- `return_type` (enum, required) — The type of the return value of the evaluator.
  - Allowed values: `boolean`, `number`, `select`, `multi_select`, `text`
- `type` (enum, required) — The type of the evaluator.
  - Allowed values: `python`, `llm`, `human`, `external`
- `id` (string, required) — Unique ID for the evaluator. Starts with `evfn_`.
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `code` (string, optional) — The code for the evaluator. This code will be executed in a sandboxed environment.
- `model_config` (ModelConfigResponse, optional) — The model config defining the LLM evaluator.
- `logging_project` (ProjectResponse, optional) — The project where the evaluator logs are stored.

### DatasetResponse

- `id` (string, required)
- `name` (string, required)
- `datapoint_count` (integer, required)
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `project_id` (string, required, deprecated) — Datasets are now files and do not belong to projects. If this dataset was created before that change, the legacy project ID will be provided here, otherwise an empty string will be returned.
- `description` (string, optional)

### ModelConfigEvaluatorAggregateResponse

- `model_config_id` (string, required)
- `evaluator_id` (string, required)
- `evaluator_version_id` (string, required)
- `aggregate_value` (double, optional)

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### ChatMessageWithToolCall

- `role` (enum, required) — Role of the message author.
  - Allowed values: `user`, `assistant`, `system`, `tool`, `developer`
- `content` (Content, optional) — The content of the message.
- `name` (string, optional) — Optional name of the message author.
- `tool_call_id` (string, optional) — Tool call that this message is responding to.
- `tool_calls` (list of ToolCall, optional) — A list of tool calls requested by the assistant.
- `thinking` (list of ChatMessageWithToolCallThinkingItem, optional) — Model's chain-of-thought for providing the response. Present on assistant messages if model supports it.
- `tool_call` (FunctionTool, optional, deprecated) — NB: Deprecated in favour of tool_calls. A tool call requested by the assistant.

### ModelConfigResponseReasoningEffort

Guidance on how many reasoning tokens it should generate before creating a response to the prompt. OpenAI reasoning models (o1, o3-mini) expect a OpenAIReasoningEffort enum. Anthropic reasoning models expect an integer, which signifies the maximum token budget.

### ResponseFormat

Response format of the model.

- `type` (enum, required)
  - Allowed values: `json_object`, `json_schema`
- `json_schema` (map from string to any, optional) — The JSON schema of the response format if type is json_schema.

### ModelConfigResponseStop

The string (or list of strings) after which the model will stop generating. The returned text will not contain the stop sequence.

### ToolResponse

- `id` (string, required) — The ID of the tool. Starts with either `config_` or `oc_`.
- `name` (string, required) — Name for the tool referenced by the model.
- `description` (string, optional) — Description of the tool referenced by the model
- `parameters` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
- `source` (string, optional) — The origin of the tool

### ToolConfigResponse

- `id` (string, required) — String ID of config. Starts with `config_`.
- `status` (string, required) — Whether the config is committed or not.
- `name` (string, required) — Name for the tool referenced by the model.
- `other` (map from string to any, optional) — Other parameters that define the config.
- `created_by` (UserResponse, optional) — The user who created the config.
- `description` (string, optional) — Description of the tool referenced by the model
- `source` (enum, optional) — Source of the tool. If defined at an organization level will be 'organization' else 'inline'.
  - Allowed values: `organization`, `inline`
- `source_code` (string, optional) — Code source of the tool.
- `setup_schema` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
- `parameters` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
- `signature` (string, optional) — The function signature of the tool when being called.
- `is_preset` (boolean, optional) — Whether the tool is one where Humanloop defines runtime or not.
- `preset_name` (string, optional) — If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to lookup the Humanloop runtime of the tool

### UserResponse

- `id` (string, required) — String ID of user. Starts with `usr_`.
- `email_address` (string, required) — The user's email address.
- `verified` (boolean, required) — Whether the user has verified their email address.
- `full_name` (string, optional) — The user's full name.

### ModelConfigResponse

Model config request. Contains fields that are common to all (i.e. both chat and complete) endpoints.

- `id` (string, required) — String ID of config. Starts with `config_`.
- `model` (string, required) — The model instance used. E.g. text-davinci-002.
- `other` (map from string to any, optional) — Other parameter values to be passed to the provider call.
- `name` (string, optional) — A friendly display name for the model config. If not provided, a name will be generated.
- `description` (string, optional) — A description of the model config.
- `provider` (enum, optional) — The company providing the underlying model service.
  - Allowed values: `anthropic`, `bedrock`, `cohere`, `deepseek`, `google`, `groq`, `mock`, `openai`, `openai_azure`, `replicate`
- `max_tokens` (integer, optional, default: -1) — The maximum number of tokens to generate. Provide max_tokens=-1 to dynamically calculate the maximum number of tokens to generate given the length of the prompt
- `temperature` (double, optional, default: 1) — What sampling temperature to use when making a generation. Higher values means the model will be more creative.
- `top_p` (double, optional, default: 1) — An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.
- `stop` (ModelConfigResponseStop, optional) — The string (or list of strings) after which the model will stop generating. The returned text will not contain the stop sequence.
- `presence_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the generation so far.
- `frequency_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on how frequently they appear in the generation so far.
- `seed` (integer, optional) — If specified, model will make a best effort to sample deterministically, but it is not guaranteed.
- `response_format` (ResponseFormat, optional) — The format of the response. Only type json_object is currently supported for chat.
- `reasoning_effort` (ModelConfigResponseReasoningEffort, optional) — Guidance on how many reasoning tokens it should generate before creating a response to the prompt. OpenAI reasoning models (o1, o3-mini) expect a OpenAIReasoningEffort enum. Anthropic reasoning models expect an integer, which signifies the maximum token budget.
- `template_language` (enum, optional) — The template language to use for rendering the template.
  - Allowed values: `default`, `jinja`
- `prompt_template` (string, optional) — Prompt template that will take your specified inputs to form your final request to the model. NB: Input variables within the prompt template should be specified with syntax: `{{input_name}}`.
- `chat_template` (list of ChatMessageWithToolCall, optional) — Messages prepended to the list of messages sent to the provider. These messages that will take your specified inputs to form your final request to the provider model. NB: Input variables within the template should be specified with syntax: `{{input_name}}`.
- `tools` (list of ToolResponse, optional) — Tools shown to the model.
- `endpoint` (enum, optional) — The provider model endpoint used.
  - Allowed values: `complete`, `chat`, `edit`
- `tool_configs` (list of ToolConfigResponse, optional, deprecated) — NB: Deprecated with tools field. Definition of tools shown to the model.

### ModelConfigRequest

Model config used for logging both chat and completion.

- `model` (string, required) — The model instance used. E.g. text-davinci-002.
- `name` (string, optional) — A friendly display name for the model config. If not provided, a name will be generated.
- `description` (string, optional) — A description of the model config.
- `provider` (enum, optional) — The company providing the underlying model service.
  - Allowed values: `anthropic`, `bedrock`, `cohere`, `deepseek`, `google`, `groq`, `mock`, `openai`, `openai_azure`, `replicate`
- `max_tokens` (integer, optional, default: -1) — The maximum number of tokens to generate. Provide max_tokens=-1 to dynamically calculate the maximum number of tokens to generate given the length of the prompt
- `temperature` (double, optional, default: 1) — What sampling temperature to use when making a generation. Higher values means the model will be more creative.
- `top_p` (double, optional, default: 1) — An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.
- `stop` (ModelConfigRequestStop, optional) — The string (or list of strings) after which the model will stop generating. The returned text will not contain the stop sequence.
- `presence_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the generation so far.
- `frequency_penalty` (double, optional, default: 0) — Number between -2.0 and 2.0. Positive values penalize new tokens based on how frequently they appear in the generation so far.
- `other` (map from string to any, optional) — Other parameter values to be passed to the provider call.
- `seed` (integer, optional) — If specified, model will make a best effort to sample deterministically, but it is not guaranteed.
- `response_format` (ResponseFormat, optional) — The format of the response. Only type json_object is currently supported for chat.
- `reasoning_effort` (ModelConfigRequestReasoningEffort, optional) — Guidance on how many reasoning tokens it should generate before creating a response to the prompt. OpenAI reasoning models (o1, o3-mini) expect a OpenAIReasoningEffort enum. Anthropic reasoning models expect an integer, which signifies the maximum token budget.
- `template_language` (enum, optional) — The template language to use for rendering the template.
  - Allowed values: `default`, `jinja`
- `endpoint` (enum, optional) — The provider model endpoint used.
  - Allowed values: `complete`, `chat`, `edit`
- `prompt_template` (string, optional) — Prompt template that will take your specified inputs to form your final request to the model. Input variables within the prompt template should be specified with syntax: `{{input_name}}`.
- `chat_template` (list of ChatMessageWithToolCall, optional) — Messages prepended to the list of messages sent to the provider. These messages that will take your specified inputs to form your final request to the provider model. Input variables within the template should be specified with syntax: `{{input_name}}`.
- `tools` (list of ModelConfigRequestToolsItem, optional) — Make tools available to OpenAIs chat model as functions.

### ToolConfigRequest

Definition of tool within a model config. The subset of ToolConfig parameters received by the chat endpoint. Does not have things like the signature or setup schema.

- `name` (string, required) — The name of the tool shown to the model.
- `description` (string, optional) — The description of the tool shown to the model.
- `strict` (boolean, optional) — Whether the tool is strict or not. If strict, the model will be forced to respond with JSON matching the parameters schema.
- `parameters` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
- `source` (enum, optional) — Source of the tool. If defined at an organization level will be 'organization' else 'inline'.
  - Allowed values: `organization`, `inline`
- `source_code` (string, optional) — Code source of the tool.
- `other` (map from string to any, optional) — Other parameters that define the config.
- `preset_name` (string, optional) — If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to look up the Humanloop runtime of the tool

### ProjectResponse

- `id` (string, required) — Project ID
- `name` (string, required) — Unique project name.
- `users` (list of ProjectUserResponse, required) — Users associated to the project.
- `data_count` (integer, required) — The count of datapoints that have been logged to the project.
- `feedback_types` (list of FeedbackTypeModel, required) — The feedback types that have been defined in the project.
- `team_id` (string, required) — Unique ID of the team the project belongs to. Starts with `tm_`.
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `active_config` (ProjectConfigResponse, optional) — Config that has been set as the project's active deployment.
- `config_type` (enum, optional) — An enumeration.
  - Allowed values: `generic`, `model`, `tool`, `agent`, `evaluator`
- `active_evaluators` (list of EvaluatorResponse, optional) — Evaluators that have been set as active for the project.
- `directory_id` (string, optional) — String ID of the directory the project belongs to. Starts with `dir_`.

### ValidationErrorLocItem

### Content

The content of the message.

### ToolCall

A tool call to be made.

- `id` (string, required)
- `type` ("function", required) — The type of tool to call.
- `function` (FunctionTool, required) — A function tool to be called by the model where user owns runtime.

### ChatMessageWithToolCallThinkingItem

- `type`: `thinking`
  - `signature` (string, required) — Cryptographic signature that verifies the thinking block was generated by Anthropic.
  - `thinking` (string, required) — Model's chain-of-thought for providing the response.
- `type`: `redacted_thinking`
  - `data` (string, required) — Thinking block Anthropic redacted for safety reasons. User is expected to pass the block back to Anthropic

### FunctionTool

A function tool to be called by the model where user owns runtime.

- `name` (string, required)
- `arguments` (string, optional)

### ModelConfigRequestStop

The string (or list of strings) after which the model will stop generating. The returned text will not contain the stop sequence.

### ModelConfigRequestReasoningEffort

Guidance on how many reasoning tokens it should generate before creating a response to the prompt. OpenAI reasoning models (o1, o3-mini) expect a OpenAIReasoningEffort enum. Anthropic reasoning models expect an integer, which signifies the maximum token budget.

### ModelConfigRequestToolsItem

### ProjectUserResponse

- `id` (string, required) — String ID of user. Starts with `usr_`.
- `email_address` (string, required) — The user's email address.
- `full_name` (string, optional) — The user's full name.

### FeedbackTypeModel

- `type` (FeedbackTypeModelType, required) — The type of feedback. The default feedback types available are 'rating', 'action', 'issue', 'correction', and 'comment'.
- `values` (list of CategoricalFeedbackLabel, optional) — The allowed values for categorical feedback types. Not populated for `correction` and `comment`.

### ProjectConfigResponse

- `project_id` (string, required) — String ID of project the model config belongs to. Starts with `pr_`.
- `project_name` (string, required) — Name of the project the model config belongs to.
- `created_at` (datetime, required)
- `updated_at` (datetime, required)
- `last_used` (datetime, required)
- `config` (ConfigResponse, required)
- `num_datapoints` (integer, optional) — Number of datapoints associated with this project model config.
- `evaluation_aggregates` (list of ModelConfigEvaluatorAggregateResponse, optional) — Aggregates of evaluators for the model config.

### LinkedToolRequest

- `id` (string, required) — The ID of the linked tool. Starts with "oc_"
- `source` ("organization", required) — The source of the linked tool. For a linked tool it should be `organization`
- `name` (string, optional) — The name of the linked tool.
- `description` (string, optional) — The description of the linked tool.
- `strict` (boolean, optional) — Whether the tool is strict or not. If strict, the model will be forced to respond with JSON matching the parameters schema.
- `parameters` (map from string to any, optional) — The parameters of the linked tool.

### ModelConfigToolRequest

Definition of tool within a model config. The subset of ToolConfig parameters received by the chat endpoint. Does not have things like the signature or setup schema.

- `name` (string, required) — The name of the tool shown to the model.
- `description` (string, optional) — The description of the tool shown to the model.
- `strict` (boolean, optional) — Whether the tool is strict or not. If strict, the model will be forced to respond with JSON matching the parameters schema.
- `parameters` (map from string to any, optional) — Definition of parameters needed to run the tool. Provided in jsonschema format: https://json-schema.org/
- `source` (enum, optional) — Source of the tool. If defined at an organization level will be 'organization' else 'inline'.
  - Allowed values: `organization`, `inline`
- `source_code` (string, optional) — Code source of the tool.
- `other` (map from string to any, optional) — Other parameters that define the config.
- `preset_name` (string, optional) — If is_preset = true, this is the name of the preset tool on Humanloop. This is used as the key to look up the Humanloop runtime of the tool

### FeedbackTypeModelType

The type of feedback. The default feedback types available are 'rating', 'action', 'issue', 'correction', and 'comment'.

### CategoricalFeedbackLabel

- `value` (string, required)
- `sentiment` (enum, required) — Whether the feedback sentiment is positive or negative.
  - Allowed values: `positive`, `negative`, `neutral`, `unset`

## Examples

**Request**

```json
{
  "status": "pending"
}
```

**Response**

```json
{
  "id": "id",
  "status": "pending",
  "config": {
    "type": "model",
    "id": "id",
    "model": "model",
    "chat_template": [
      {
        "role": "user"
      }
    ],
    "description": "description",
    "endpoint": "complete",
    "frequency_penalty": 1.1,
    "max_tokens": 1,
    "name": "name",
    "other": {
      "key": "value"
    },
    "presence_penalty": 1.1,
    "prompt_template": "prompt_template",
    "provider": "anthropic",
    "reasoning_effort": "high",
    "response_format": {
      "type": "json_object",
      "json_schema": {
        "key": "value"
      }
    },
    "seed": 1,
    "stop": "stop",
    "temperature": 1.1,
    "template_language": "default",
    "tools": [
      {
        "id": "id",
        "name": "name"
      }
    ],
    "top_p": 1.1,
    "tool_configs": [
      {
        "id": "id",
        "status": "status",
        "name": "name"
      }
    ]
  },
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z",
  "evaluators": [
    {
      "name": "name",
      "description": "description",
      "arguments_type": "target_free",
      "return_type": "boolean",
      "type": "python",
      "id": "id",
      "created_at": "2024-01-15T09:30:00Z",
      "updated_at": "2024-01-15T09:30:00Z",
      "code": "code",
      "model_config": {
        "id": "id",
        "model": "model"
      },
      "logging_project": {
        "id": "id",
        "name": "name",
        "users": [
          {
            "id": "id",
            "email_address": "email_address"
          }
        ],
        "data_count": 1,
        "feedback_types": [
          {
            "type": "rating"
          }
        ],
        "team_id": "team_id",
        "created_at": "2024-01-15T09:30:00Z",
        "updated_at": "2024-01-15T09:30:00Z"
      }
    }
  ],
  "dataset": {
    "id": "id",
    "name": "name",
    "datapoint_count": 1,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "project_id": "project_id",
    "description": "description"
  },
  "dataset_version_id": "dataset_version_id",
  "dataset_snapshot": {
    "id": "id",
    "name": "name",
    "datapoint_count": 1,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "project_id": "project_id",
    "description": "description"
  },
  "evaluator_aggregates": [
    {
      "model_config_id": "model_config_id",
      "evaluator_id": "evaluator_id",
      "evaluator_version_id": "evaluator_version_id",
      "aggregate_value": 1.1
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.humanloop.com/v4/evaluations/id/status"

payload = { "status": "pending" }
headers = {
    "X-API-KEY": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.humanloop.com/v4/evaluations/id/status';
const options = {
  method: 'PATCH',
  headers: {'X-API-KEY': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"status":"pending"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.humanloop.com/v4/evaluations/id/status"

	payload := strings.NewReader("{\n  \"status\": \"pending\"\n}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("X-API-KEY", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.humanloop.com/v4/evaluations/id/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"status\": \"pending\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://api.humanloop.com/v4/evaluations/id/status")
  .header("X-API-KEY", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"status\": \"pending\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://api.humanloop.com/v4/evaluations/id/status', [
  'body' => '{
  "status": "pending"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-API-KEY' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.humanloop.com/v4/evaluations/id/status");
var request = new RestRequest(Method.PATCH);
request.AddHeader("X-API-KEY", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"status\": \"pending\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "X-API-KEY": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = ["status": "pending"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.humanloop.com/v4/evaluations/id/status")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```