Cekura · Schema

ResultDetailV2

CompanyVoiceAIQATestingBenchmarking

Properties

Name Type Description
id integer
name string Name of the result Example: `"Test Result 1"`
agent integer
agent_name string Name of the agent associated with this result
agent_version object The agent version (history record) this result ran against, or null.
status string Current status of the result * `running` - Running * `completed` - Completed * `failed` - Failed * `pending` - Pending * `in_progress` - In Progress * `evaluating` - Evaluating * `in_queue` - In Queue
met_expected_outcome_count string Number of runs that fully met their expected outcomes with a score of 100
total_expected_outcome_count string Total number of runs that had expected outcomes defined
success_rate number Success rate of the test runs
run_as_text boolean Whether this test was run in text mode instead of voice mode Example: `true` or `false`
is_cronjob string Whether this result was created by a scheduled cronjob
created_via stringnull How this result was started: user (dashboard), api, mcp, cli, sdk, schedule or agent (the Cekura agent). Null when unknown.
created_by object The user who started this result, or who created the schedule it ran from. Null for API runs.
api_key object The API key that started this result as {id, name, created_by}, or null. created_by is the user who created the key, when known.
runs object Run objects keyed by run ID string (e.g. {"12345": {...}}). The list endpoint returns `runs` as an array of summaries instead.
overall_evaluation object Overall evaluation of the test runs Example: ```json { "success_rate": "number", "metric_summary": { "metric_id": { "id": "integer", "name": "string", "type": "string", "score": "number", "explanation
total_duration string Total duration of the test runs for this result Example: `22:30`
total_runs_count string Total number of test runs associated with this result Example: `10`
completed_runs_count string Number of test runs that have completed successfully Example: `10`
success_runs_count string Number of test runs that were marked as successful Example: `10`
failed_runs_count string Number of test runs that failed or encountered errors Example: `10`
connected_runs string List of run IDs that got connected successfully (have transcript data). Returns empty list if no connected runs.
not_connected_runs string List of run IDs that never connected (no transcript data). Returns empty list if every run connected.
failed_infrastructure_runs string List of run IDs that failed infrastructure issues metric (score=0). Returns null if metric not found, empty list if metric exists but no failures.
failed_workflow_runs string List of run IDs that failed expected outcome metric (score=0). Returns null if metric not found, empty list if metric exists but no failures.
successful_calls string List of run IDs that completed successfully. Returns empty list if no successful runs.
scenarios string List of scenario names used in the test runs for this result Example: ``` ```json [ { "id": 123, "name": "Scenario 1" }, { "id": 456, "name": "Scenario 2" } ] ```
critical_categories string List of critical categories for this result Example: ```json [ { "id": 2950, "name": "Pronunciation Analysis", "eval_type": "continuous_qualitative", "simulation_enabled": true, "observability_enabled
metrics string
runs_by_tags string
latency_data string
failed_reasons object Failed reasons of the test runs Example: ```json { "issues": [ { "rank": 1, "run_ids": [ 34588 ], "description": "The agent did not provide the standard greeting, emergency disclaimer, or ask how they
ai_summary object LLM-generated narrative summary of the result, structured for the Results-page UI. Example: ```json { "what_happened": "8 of 10 runs failed, 2 passed. All 8 failures cluster into 3 distinct causes.",
ai_summary_status string Generation state of the async AI summary, derived so the UI can show a reliable state instead of guessing from an empty `ai_summary`. `completed` = summary populated; `skipped_no_failures` = no failed
next_steps object LLM-suggested next steps to fix the issues found in this result, ordered by impact. Example: ```json [ {"title": "Seed test profile in production", "description": "Unblocks 6 runs; ~5 min."}, {"title"
path_coverage object Workflow-coverage summary for this result: which of the agent's critical paths the runs exercised, and which they missed. Example: ```json { "coverage_pct": 66.7, "total_paths": 3, "covered_paths": ["
performance_metrics string Per-rubric-rule performance breakdown. One entry per rule in the project's rubric_config: metric name, aggregated value across the result's runs, and whether that aggregate meets the rule's conditions
run_type stringnull Run Execution Type
run_settings object Snapshot of the override-relevant request payload (personality_ids, frequency, concurrency_limit, connection-specific overrides, etc.).
created_at string Timestamp when this test result was created Example: `2021-01-01 00:00:00`
updated_at string Timestamp when this test result was last updated Example: `2021-01-01 00:00:00`
View JSON Schema on GitHub

JSON Schema

cekura-ai-result-detail-v2-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cekura-ai/json-schema/cekura-ai-result-detail-v2-schema.json",
  "title": "ResultDetailV2",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cekura-ai-openapi.json#/components/schemas/ResultDetailV2",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "\nName of the result\nExample: `\"Test Result 1\"`\n",
      "maxLength": 255
    },
    "agent": {
      "type": "integer"
    },
    "agent_name": {
      "type": "string",
      "readOnly": true,
      "description": "Name of the agent associated with this result"
    },
    "agent_version": {
      "oneOf": [
        {
          "$ref": "#/$defs/AgentVersionSummary"
        },
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "The agent version (history record) this result ran against, or null."
    },
    "status": {
      "enum": [
        "running",
        "completed",
        "failed",
        "pending",
        "in_progress",
        "evaluating",
        "in_queue",
        "timeout",
        "cancelled",
        "scaling_up"
      ],
      "type": "string",
      "x-spec-enum-id": "623e22fc1eb17833",
      "readOnly": true,
      "description": "\nCurrent status of the result\n\n\n* `running` - Running\n* `completed` - Completed\n* `failed` - Failed\n* `pending` - Pending\n* `in_progress` - In Progress\n* `evaluating` - Evaluating\n* `in_queue` - In Queue\n* `timeout` - Timeout\n* `cancelled` - Cancelled\n* `scaling_up` - Scaling Up"
    },
    "met_expected_outcome_count": {
      "type": "string",
      "readOnly": true,
      "description": "Number of runs that fully met their expected outcomes with a score of 100"
    },
    "total_expected_outcome_count": {
      "type": "string",
      "readOnly": true,
      "description": "Total number of runs that had expected outcomes defined"
    },
    "success_rate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "description": "\nSuccess rate of the test runs\n"
    },
    "run_as_text": {
      "type": "boolean",
      "readOnly": true,
      "description": "\nWhether this test was run in text mode instead of voice mode\nExample: `true` or `false`\n"
    },
    "is_cronjob": {
      "type": "string",
      "readOnly": true,
      "description": "Whether this result was created by a scheduled cronjob"
    },
    "created_via": {
      "type": [
        "string",
        "null"
      ],
      "readOnly": true,
      "description": "How this result was started: user (dashboard), api, mcp, cli, sdk, schedule or agent (the Cekura agent). Null when unknown."
    },
    "created_by": {
      "oneOf": [
        {
          "$ref": "#/$defs/UserInline"
        },
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "The user who started this result, or who created the schedule it ran from. Null for API runs."
    },
    "api_key": {
      "oneOf": [
        {
          "$ref": "#/$defs/ResultApiKey"
        },
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "The API key that started this result as {id, name, created_by}, or null. created_by is the user who created the key, when known."
    },
    "runs": {
      "type": "object",
      "additionalProperties": {},
      "description": "Run objects keyed by run ID string (e.g. {\"12345\": {...}}). The list endpoint returns `runs` as an array of summaries instead.",
      "readOnly": true
    },
    "overall_evaluation": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "\nOverall evaluation of the test runs\nExample:\n```json\n{\n    \"success_rate\": \"number\",\n    \"metric_summary\": {\n      \"metric_id\": {\n        \"id\": \"integer\",\n        \"name\": \"string\",\n        \"type\": \"string\",\n        \"score\": \"number\",\n        \"explanation\": \"string (optional)\",\n        \"function_name\": \"string\",\n        \"vocera_defined_metric_code\": \"string (optional)\",\n        \"p50\": \"number (for numeric metrics)\"\n      }\n    },\n    \"worst_performing_metrics\": {\n      \"binary_adherence\": [\n        \"array of metric_ids\"\n      ]\n    },\n    \"numeric_metrics\": [\n      {\n        \"name\": \"string\",\n        \"type\": \"numeric\",\n        \"value\": \"number\",\n        \"percentiles\": {\n          \"p50\": \"number\"\n        }\n      }\n    ],\n    \"enum_metrics\": [\n      \"array of metric_ids\"\n    ],\n    \"extra_metrics\": [\n      {\n        \"name\": \"string (e.g., 'Expected Outcome', 'Average Ringing Duration')\",\n        \"type\": \"string\",\n        \"value\": \"number\",\n        \"percentiles\": {\n          \"p50\": \"number (optional)\"\n        }\n      }\n    ]\n}\n"
    },
    "total_duration": {
      "type": "string",
      "readOnly": true,
      "description": "\nTotal duration of the test runs for this result\nExample: `22:30`\n"
    },
    "total_runs_count": {
      "type": "string",
      "readOnly": true,
      "description": "\nTotal number of test runs associated with this result\nExample: `10`\n"
    },
    "completed_runs_count": {
      "type": "string",
      "readOnly": true,
      "description": "\nNumber of test runs that have completed successfully\nExample: `10`\n"
    },
    "success_runs_count": {
      "type": "string",
      "readOnly": true,
      "description": "\nNumber of test runs that were marked as successful\nExample: `10`\n"
    },
    "failed_runs_count": {
      "type": "string",
      "readOnly": true,
      "description": "\nNumber of test runs that failed or encountered errors\nExample: `10`\n"
    },
    "connected_runs": {
      "type": "string",
      "readOnly": true,
      "description": "List of run IDs that got connected successfully (have transcript data). Returns empty list if no connected runs."
    },
    "not_connected_runs": {
      "type": "string",
      "readOnly": true,
      "description": "List of run IDs that never connected (no transcript data). Returns empty list if every run connected."
    },
    "failed_infrastructure_runs": {
      "type": "string",
      "readOnly": true,
      "description": "List of run IDs that failed infrastructure issues metric (score=0). Returns null if metric not found, empty list if metric exists but no failures."
    },
    "failed_workflow_runs": {
      "type": "string",
      "readOnly": true,
      "description": "List of run IDs that failed expected outcome metric (score=0). Returns null if metric not found, empty list if metric exists but no failures."
    },
    "successful_calls": {
      "type": "string",
      "readOnly": true,
      "description": "List of run IDs that completed successfully. Returns empty list if no successful runs."
    },
    "scenarios": {
      "type": "string",
      "readOnly": true,
      "description": "\nList of scenario names used in the test runs for this result\nExample: ```\n```json\n[\n    {\n        \"id\": 123,\n        \"name\": \"Scenario 1\"\n    },\n    {\n        \"id\": 456,\n        \"name\": \"Scenario 2\"\n    }\n]\n```\n"
    },
    "critical_categories": {
      "type": "string",
      "readOnly": true,
      "description": "\nList of critical categories for this result\nExample:\n```json\n[\n    {\n      \"id\": 2950,\n      \"name\": \"Pronunciation Analysis\",\n      \"eval_type\": \"continuous_qualitative\",\n      \"simulation_enabled\": true,\n      \"observability_enabled\": true\n    },\n    {\n      \"id\": 3284,\n      \"name\": \"Latency\",\n      \"eval_type\": \"numeric\",\n      \"simulation_enabled\": true,\n      \"observability_enabled\": false\n    },\n    {\n      \"id\": 3295,\n      \"name\": \"Detect Silence in Conversation\",\n      \"eval_type\": \"binary\",\n      \"simulation_enabled\": true,\n      \"observability_enabled\": true\n    }\n  ]\n```\n"
    },
    "metrics": {
      "type": "string",
      "readOnly": true
    },
    "runs_by_tags": {
      "type": "string",
      "readOnly": true
    },
    "latency_data": {
      "type": "string",
      "readOnly": true
    },
    "failed_reasons": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "\nFailed reasons of the test runs\nExample:\n```json\n{\n    \"issues\": [\n      {\n        \"rank\": 1,\n        \"run_ids\": [\n          34588\n        ],\n        \"description\": \"The agent did not provide the standard greeting, emergency disclaimer, or ask how they could help.\",\n        \"affected_count\": 1\n      },\n      {\n        \"rank\": 2,\n        \"run_ids\": [\n          34588\n        ],\n        \"description\": \"The agent did not explain the distinction between the primary care and express clinics.\",\n        \"affected_count\": 1\n      }\n    ],\n    \"total_failed_runs\": 1\n  }\n```\n"
    },
    "ai_summary": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "\nLLM-generated narrative summary of the result, structured for the Results-page UI.\nExample:\n```json\n{\n    \"what_happened\": \"8 of 10 runs failed, 2 passed. All 8 failures cluster into 3 distinct causes.\",\n    \"why_it_happened\": \"The default test profile isn't seeded in the production backend, so every auth-required workflow exits before PIN/address steps run.\",\n    \"how_to_fix\": \"Seed the test profile in production, tighten the competitor-mention guardrail, and add CA-only store phrasing to the FAQ flow.\",\n    \"generated_from_runs_count\": 10,\n    \"generated_at\": \"2026-05-25T12:00:00Z\"\n}\n```\n"
    },
    "ai_summary_status": {
      "type": "string",
      "readOnly": true,
      "description": "Generation state of the async AI summary, derived so the UI can show a reliable state instead of guessing from an empty `ai_summary`. `completed` = summary populated; `skipped_no_failures` = no failed runs, nothing to summarize; `pending` = there are failed runs but the summary isn't ready yet (still generating)."
    },
    "next_steps": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "\nLLM-suggested next steps to fix the issues found in this result, ordered by impact.\nExample:\n```json\n[\n    {\"title\": \"Seed test profile in production\", \"description\": \"Unblocks 6 runs; ~5 min.\"},\n    {\"title\": \"Tighten competitor guardrail\", \"description\": \"1 prompt edit; review drift run.\"}\n]\n```\n"
    },
    "path_coverage": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "\nWorkflow-coverage summary for this result: which of the agent's critical paths the\nruns exercised, and which they missed.\nExample:\n```json\n{\n    \"coverage_pct\": 66.7,\n    \"total_paths\": 3,\n    \"covered_paths\": [\"Book appointment\", \"Reschedule appointment\"],\n    \"uncovered_paths\": [\"Cancel appointment\"],\n    \"generated_at\": \"2026-07-14T12:00:00Z\"\n}\n```\n"
    },
    "performance_metrics": {
      "type": "string",
      "readOnly": true,
      "description": "Per-rubric-rule performance breakdown. One entry per rule in the project's rubric_config: metric name, aggregated value across the result's runs, and whether that aggregate meets the rule's conditions."
    },
    "run_type": {
      "type": [
        "string",
        "null"
      ],
      "readOnly": true,
      "description": "Run Execution Type"
    },
    "run_settings": {
      "oneOf": [
        {},
        {
          "type": "null"
        }
      ],
      "readOnly": true,
      "description": "Snapshot of the override-relevant request payload (personality_ids, frequency, concurrency_limit, connection-specific overrides, etc.)."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "\nTimestamp when this test result was created\nExample: `2021-01-01 00:00:00`\n"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "\nTimestamp when this test result was last updated\nExample: `2021-01-01 00:00:00`\n"
    }
  },
  "required": [
    "agent"
  ],
  "$defs": {
    "AgentVersionSummary": {
      "type": "object",
      "properties": {
        "history_id": {
          "type": "integer",
          "description": "History record ID of the agent version"
        },
        "version_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Version label, e.g. \"v12\""
        },
        "version_name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Optional name given to the version"
        },
        "is_current": {
          "type": "boolean",
          "description": "Whether this is the agent's current version"
        }
      },
      "required": [
        "history_id",
        "is_current",
        "version_id",
        "version_name"
      ]
    },
    "ResultApiKey": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "created_by": {
          "oneOf": [
            {
              "$ref": "#/$defs/UserInline"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "created_by",
        "id",
        "name"
      ]
    },
    "UserInline": {
      "type": "object",
      "description": "",
      "properties": {
        "id": {
          "type": [
            "integer",
            "null"
          ],
          "readOnly": true
        },
        "name": {
          "type": "string",
          "maxLength": 255
        },
        "email": {
          "type": [
            "string",
            "null"
          ],
          "format": "email",
          "readOnly": true
        }
      },
      "required": [
        "name"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cekura-ai-result-detail-v2"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.