Metrics
POST
/api/v1/metrics/with-children

Atomically create a parent category metric plus its children.

The parent gets metric_type=text (it's a category label, not a score) and selection_mode from the payload. Every child is forced to boolean so the LLM-evaluation path treats them as yes/no labels. Both the parent and all children are stamped with the same scope: either the active workspace (scope="workspace", default) or workspace_id=NULL (scope="organization", the org-shared shape).

Authorization

AuthorizationBearer <token>

JWT access token. Use: Authorization: Bearer .

In: header

Header Parameters

X-Workspace-Id?string|null
Authorization?string|null
X-API-Key?string|null
X-EFFICIENTAI-API-KEY?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

One-shot create body: a parent metric + N children, atomically.

Children are persisted as full Metric rows with parent_metric_id set to the new parent. metric_type on every child is forced to boolean server-side regardless of what's passed in the parent body.

Response Body

application/json

application/json

curl -X POST "https://example.com/api/v1/metrics/with-children" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "selection_mode": "single_choice"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",  "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",  "scope": "workspace",  "name": "string",  "description": "string",  "example": "string",  "metric_type": "number",  "metric_category": "quality",  "trigger": "always",  "enabled": true,  "is_default": true,  "metric_origin": "string",  "supported_surfaces": [    "string"  ],  "enabled_surfaces": [    "string"  ],  "custom_data_type": "string",  "custom_config": {},  "tags": [    "string"  ],  "capture_rationale": false,  "parent_metric_id": "a4a6359f-6ade-48cb-af32-ccbc80976b98",  "selection_mode": "single_choice",  "allow_discovery": false,  "compare_transcripts": false,  "lifecycle": "active",  "promoted_from_draft_at": "2019-08-24T14:15:22Z",  "studio_notes": "string",  "children": [    {}  ],  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "created_by": "string"}

Community & contact

  1. Found a bug or have a feature request? Open a GitHub issue.
  2. Join our Discord for faster replies!