{
"id": "RXZhbHVhdG9yOjEyOmFCY0Q=",
"name": "Hallucination Eval",
"description": "Detects hallucinated content in LLM responses",
"type": "TEMPLATE",
"space_id": "U3BhY2U6NDkzOkJaSkc=",
"created_at": "2026-02-16T22:05:47.900Z",
"updated_at": "2026-02-16T22:05:48.150Z",
"created_by_user_id": "VXNlcjoxOm5OYkM=",
"version": {
"id": "RXZhbHVhdG9yVmVyc2lvbjoxMDpYeVp3",
"evaluator_id": "RXZhbHVhdG9yOjEyOmFCY0Q=",
"commit_hash": "a3b1c9e4f7d2a0518e6c3bb9217f87d1c4e810f2",
"commit_message": "Initial version",
"type": "TEMPLATE",
"template_config": {
"name": "hallucination",
"template": "You are an evaluation assistant...",
"include_explanations": true,
"use_function_calling": true,
"classification_choices": {
"hallucinated": 0,
"factual": 1
},
"direction": "MAXIMIZE",
"data_granularity": "SPAN",
"llm_config": {
"ai_integration_id": "TGxtSW50ZWdyYXRpb246MTI6YUJjRA==",
"model_name": "gpt-4o",
"invocation_parameters": {
"temperature": 0
},
"provider_parameters": {}
}
},
"created_at": "2026-02-16T22:05:48.143Z",
"created_by_user_id": "VXNlcjoxOm5OYkM="
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 404,
"title": "Resource not found",
"detail": "The requested resource with ID '12345' was not found.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-not-found"
}{
"status": 409,
"title": "Resource conflict",
"detail": "A resource with the given identifier already exists.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-conflict"
}{
"status": 422,
"title": "Unprocessable Entity",
"detail": "One or more fields failed validation.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#unprocessable-entity"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Create evaluator
Creates a new evaluator with an initial version.
Payload Requirements
- The evaluator
namemust be unique within the given space. type(top-level) selects the evaluator kind:TEMPLATE,CODE, orREMOTE. WithTEMPLATE, provideversion.template_config. WithCODE, provideversion.code_config— wherecode_config.typeisMANAGEDorCUSTOM(a separate discriminator withincode_config, independent of the top-leveltype: CODE). WithREMOTE, provideversion.remote_config.integration_idreferencing an accessibleEVALUATORintegration. Remote evaluator creation requires the remote evaluators feature to be enabled; otherwise the request returns403.- For template evaluators:
version.template_config.nameis the eval column name; must match^[a-zA-Z0-9_\s\-&()]+$. - For template evaluators:
version.template_config.templateis the prompt template; use{variable}for placeholders (f-string format, e.g.{input},{output}). - For template evaluators:
version.template_config.classification_choicesis required and maps choice labels to numeric scores (e.g.{"relevant": 1, "irrelevant": 0}). - For code evaluators: see
CodeConfig— managed evaluators (code_config.type: MANAGED) usemanaged_evaluatorandvariables; custom evaluators (code_config.type: CUSTOM) usecode, optionalimports, andvariables. - System-managed fields (
id,created_at,updated_at,created_by_user_id) are rejected on input.
Valid example (template evaluator)
{
"name": "Hallucination Detector",
"space_id": "U3BhY2U6MTpWNEth",
"type": "TEMPLATE",
"version": {
"commit_message": "Initial version",
"template_config": {
"name": "hallucination",
"template": "Given the input: {input}\nand the output: {output}\nIs the output a hallucination?",
"include_explanations": true,
"use_function_calling": true,
"classification_choices": {"hallucinated": 0, "factual": 1},
"llm_config": {
"ai_integration_id": "TGxtSW50ZWdyYXRpb246MTI6YUJjRA==",
"model_name": "gpt-4o",
"invocation_parameters": {"temperature": 0},
"provider_parameters": {}
}
}
}
}
Invalid example (type/config mismatch — TEMPLATE type with code_config)
{
"name": "Bad Evaluator",
"space_id": "U3BhY2U6MTpWNEth",
"type": "TEMPLATE",
"version": {
"commit_message": "Wrong config",
"code_config": {
"type": "CUSTOM",
"name": "my_eval",
"code": "class Evaluator: ...",
"variables": ["input"]
}
}
}
{
"id": "RXZhbHVhdG9yOjEyOmFCY0Q=",
"name": "Hallucination Eval",
"description": "Detects hallucinated content in LLM responses",
"type": "TEMPLATE",
"space_id": "U3BhY2U6NDkzOkJaSkc=",
"created_at": "2026-02-16T22:05:47.900Z",
"updated_at": "2026-02-16T22:05:48.150Z",
"created_by_user_id": "VXNlcjoxOm5OYkM=",
"version": {
"id": "RXZhbHVhdG9yVmVyc2lvbjoxMDpYeVp3",
"evaluator_id": "RXZhbHVhdG9yOjEyOmFCY0Q=",
"commit_hash": "a3b1c9e4f7d2a0518e6c3bb9217f87d1c4e810f2",
"commit_message": "Initial version",
"type": "TEMPLATE",
"template_config": {
"name": "hallucination",
"template": "You are an evaluation assistant...",
"include_explanations": true,
"use_function_calling": true,
"classification_choices": {
"hallucinated": 0,
"factual": 1
},
"direction": "MAXIMIZE",
"data_granularity": "SPAN",
"llm_config": {
"ai_integration_id": "TGxtSW50ZWdyYXRpb246MTI6YUJjRA==",
"model_name": "gpt-4o",
"invocation_parameters": {
"temperature": 0
},
"provider_parameters": {}
}
},
"created_at": "2026-02-16T22:05:48.143Z",
"created_by_user_id": "VXNlcjoxOm5OYkM="
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 404,
"title": "Resource not found",
"detail": "The requested resource with ID '12345' was not found.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-not-found"
}{
"status": 409,
"title": "Resource conflict",
"detail": "A resource with the given identifier already exists.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-conflict"
}{
"status": 422,
"title": "Unprocessable Entity",
"detail": "One or more fields failed validation.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#unprocessable-entity"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Authorizations
Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format
Body
Body containing evaluator creation parameters with an initial version.
type: TEMPLATE, type: CODE, and type: REMOTE are accepted on creation.
Body containing evaluator creation parameters with an initial version.
Space identifier (base64)
Evaluator name (must be unique within the space)
The evaluator type:
TEMPLATE— LLM-based evaluator.CODE— managed built-in evaluators or custom Python code (both are subtypes ofCODE, discriminated by the nestedCodeConfig.type=MANAGED|CUSTOM).HARNESS— test harness evaluator.REMOTE— remote evaluator.
Applies to both the parent Evaluator.type field and every version's type
discriminator — a version's type must always match its parent evaluator's type.
TEMPLATE, CODE, HARNESS, REMOTE Payload for an evaluator version: exactly one of template_config, code_config,
or remote_config. Used both when creating an evaluator (initial version) and when
appending a version.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Evaluator description
Response
Returns an evaluator with a resolved version
An evaluator defines reusable evaluation logic that can be attached to evaluation tasks. The type field determines the kind of evaluation: TEMPLATE (LLM-based template evaluation), CODE (custom code evaluation), or REMOTE (externally hosted evaluation).
The unique identifier for the evaluator
The name of the evaluator
The evaluator type:
TEMPLATE— LLM-based evaluator.CODE— managed built-in evaluators or custom Python code (both are subtypes ofCODE, discriminated by the nestedCodeConfig.type=MANAGED|CUSTOM).HARNESS— test harness evaluator.REMOTE— remote evaluator.
Applies to both the parent Evaluator.type field and every version's type
discriminator — a version's type must always match its parent evaluator's type.
TEMPLATE, CODE, HARNESS, REMOTE The unique identifier for the space the evaluator belongs to
When the evaluator was created
When the evaluator was last updated
The unique identifier for the user who created the evaluator
The resolved version of the evaluator
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
The description of the evaluator
Was this page helpful?