---
title: "Execute Evaluation"
method: POST
path: "/eval-runs"
tags: ["Evals"]
---

# Execute Evaluation

`POST /eval-runs`

Run evaluation tests on agents or teams. Supports accuracy, agent-as-judge, performance, and reliability evaluations. Requires either agent_id or team_id, but not both.

## Query parameters

- `db_id` string, nullable — Database ID to use for evaluation
- `table` string, nullable — Table to use for evaluation

## Request body

- EvalRunInput
  - `agent_id` string, nullable — Agent ID to evaluate
  - `team_id` string, nullable — Team ID to evaluate
  - `model_id` string, nullable — Model ID to use for evaluation
  - `model_provider` string, nullable — Model provider name
  - `eval_type` 'accuracy' | 'agent_as_judge' | 'performance' | 'reliability', required
  - `input` string, required — Input text/query for the evaluation
  - `additional_guidelines` string, nullable — Additional guidelines for the evaluation
  - `additional_context` string, nullable — Additional context for the evaluation
  - `num_iterations` integer — Number of times to run the evaluation
  - `name` string, nullable — Name for this evaluation run
  - `expected_output` string, nullable — Expected output for accuracy evaluation
  - `criteria` string, nullable — Evaluation criteria for agent-as-judge evaluation
  - `scoring_strategy` 'numeric' | 'binary', nullable — Scoring strategy: 'numeric' (1-10 with threshold) or 'binary' (PASS/FAIL)
  - `threshold` integer, nullable — Score threshold for pass/fail (1-10), only used with numeric scoring
  - `warmup_runs` integer — Number of warmup runs before measuring performance
  - `expected_tool_calls` string[], nullable — Expected tool calls for reliability evaluation
  - `allow_additional_tool_calls` boolean — When True, tool calls not in expected_tool_calls are allowed (subset matching)
  - `expected_tool_call_arguments` object, nullable — Expected arguments for specific tool calls, e.g. {"tool_name": {"arg_name": "expected_value"}} or {"tool_name": [{"arg_name": "val1"}, {"arg_name": "val2"}]}

## Response `200`

Evaluation executed successfully

- EvalSchema
  - `id` string, required — Unique identifier for the evaluation run
  - `agent_id` string, nullable — Agent ID that was evaluated
  - `model_id` string, nullable — Model ID used in evaluation
  - `model_provider` string, nullable — Model provider name
  - `team_id` string, nullable — Team ID that was evaluated
  - `workflow_id` string, nullable — Workflow ID that was evaluated
  - `name` string, nullable — Name of the evaluation run
  - `evaluated_component_name` string, nullable — Name of the evaluated component
  - `eval_type` 'accuracy' | 'agent_as_judge' | 'performance' | 'reliability', required
  - `eval_data` object, required — Evaluation results and metrics
  - `eval_input` object, nullable — Input parameters used for the evaluation
  - `created_at` string, date-time, nullable — Timestamp when evaluation was created
  - `updated_at` string, date-time, nullable — Timestamp when evaluation was last updated

## Other responses

- `400` — Invalid request - provide either agent_id or team_id
- `401` — Unauthorized
- `404` — Agent or team not found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/agno/apis/agno-api-reference.md) · [All operations](https://skmtc.net/agno/apis/agno-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agno/agno-api-reference/versions/5f6149d395d0/schema)
