[{"data":1,"prerenderedAt":412},["ShallowReactive",2],{"navigation_docs":3,"-api-reference-metrics-send-metric-value-operation":217,"-api-reference-metrics-send-metric-value":388,"-api-reference-metrics-send-metric-value-surround":405},[4,55],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":12},"Guides","i-nucleo-book","\u002Fguides","1.guides",[10,21,41],{"title":11,"icon":12,"path":13,"stem":14,"children":15,"page":12},"Getting started",false,"\u002Fguides\u002Fgetting-started","1.guides\u002F1.getting-started",[16],{"title":17,"path":18,"stem":19,"icon":20},"Introduction","\u002Fguides\u002Fgetting-started\u002Fintroduction","1.guides\u002F1.getting-started\u002F1.introduction","i-nucleo-home",{"title":22,"icon":12,"path":23,"stem":24,"children":25,"page":12},"Connect an AI app","\u002Fguides\u002Fconnect-ai","1.guides\u002F2.connect-ai",[26,31,36],{"title":27,"path":28,"stem":29,"icon":30},"Connect Claude","\u002Fguides\u002Fconnect-ai\u002Fconnect-claude","1.guides\u002F2.connect-ai\u002F1.connect-claude","i-nucleo-plug",{"title":32,"path":33,"stem":34,"icon":35},"What it can see","\u002Fguides\u002Fconnect-ai\u002Fwhat-it-can-see","1.guides\u002F2.connect-ai\u002F2.what-it-can-see","i-nucleo-eye",{"title":37,"path":38,"stem":39,"icon":40},"Manage connections","\u002Fguides\u002Fconnect-ai\u002Fmanage-connections","1.guides\u002F2.connect-ai\u002F3.manage-connections","i-nucleo-sliders",{"title":42,"icon":12,"path":43,"stem":44,"children":45,"page":12},"Using the API","\u002Fguides\u002Fusing-the-api","1.guides\u002F3.using-the-api",[46,50],{"title":47,"path":48,"stem":49,"icon":35},"Read your data","\u002Fguides\u002Fusing-the-api\u002Fread-your-data","1.guides\u002F3.using-the-api\u002F1.read-your-data",{"title":51,"path":52,"stem":53,"icon":54},"Send metric values","\u002Fguides\u002Fusing-the-api\u002Fsend-metric-values","1.guides\u002F3.using-the-api\u002F2.send-metric-values","i-nucleo-chart-activity",{"title":56,"path":57,"stem":58,"children":59,"icon":216},"API Reference","\u002Fapi-reference","2.api-reference\u002F01.index",[60,62,67,72,77,90,114,151,161,186,201],{"title":11,"path":57,"stem":58,"icon":61},"i-nucleo-rocket",{"title":63,"path":64,"stem":65,"icon":66},"Authentication","\u002Fapi-reference\u002Fauthentication","2.api-reference\u002F02.authentication","i-nucleo-key",{"title":68,"path":69,"stem":70,"icon":71},"Errors and limits","\u002Fapi-reference\u002Ferrors","2.api-reference\u002F03.errors","i-nucleo-triangle-warning",{"title":73,"path":74,"stem":75,"icon":76},"Pagination","\u002Fapi-reference\u002Fpagination","2.api-reference\u002F04.pagination","i-nucleo-check-list",{"title":78,"icon":12,"path":79,"stem":80,"children":81,"page":12},"Programs","\u002Fapi-reference\u002Fprograms","2.api-reference\u002F05.programs",[82],{"title":83,"path":84,"stem":85,"badge":86},"List programs","\u002Fapi-reference\u002Fprograms\u002Flist-programs","2.api-reference\u002F05.programs\u002F1.list-programs",{"label":87,"color":88,"variant":89},"GET","success","subtle",{"title":91,"icon":12,"path":92,"stem":93,"children":94,"page":12},"Employees","\u002Fapi-reference\u002Femployees","2.api-reference\u002F06.employees",[95,100,107],{"title":96,"path":97,"stem":98,"badge":99},"List employees","\u002Fapi-reference\u002Femployees\u002Flist-employees","2.api-reference\u002F06.employees\u002F1.list-employees",{"label":87,"color":88,"variant":89},{"title":101,"path":102,"stem":103,"badge":104},"Create an employee","\u002Fapi-reference\u002Femployees\u002Fcreate-employee","2.api-reference\u002F06.employees\u002F2.create-employee",{"label":105,"color":106,"variant":89},"POST","info",{"title":108,"path":109,"stem":110,"badge":111},"Update an employee","\u002Fapi-reference\u002Femployees\u002Fupdate-employee","2.api-reference\u002F06.employees\u002F3.update-employee",{"label":112,"color":113,"variant":89},"PATCH","warning",{"title":115,"icon":12,"path":116,"stem":117,"children":118,"page":12},"Groups","\u002Fapi-reference\u002Fgroups","2.api-reference\u002F07.groups",[119,124,129,134,141,146],{"title":120,"path":121,"stem":122,"badge":123},"List groups","\u002Fapi-reference\u002Fgroups\u002Flist-groups","2.api-reference\u002F07.groups\u002F1.list-groups",{"label":87,"color":88,"variant":89},{"title":125,"path":126,"stem":127,"badge":128},"Create a group","\u002Fapi-reference\u002Fgroups\u002Fcreate-group","2.api-reference\u002F07.groups\u002F2.create-group",{"label":105,"color":106,"variant":89},{"title":130,"path":131,"stem":132,"badge":133},"Update a group","\u002Fapi-reference\u002Fgroups\u002Fupdate-group","2.api-reference\u002F07.groups\u002F3.update-group",{"label":112,"color":113,"variant":89},{"title":135,"path":136,"stem":137,"badge":138},"Archive a group","\u002Fapi-reference\u002Fgroups\u002Farchive-group","2.api-reference\u002F07.groups\u002F4.archive-group",{"label":139,"color":140,"variant":89},"DELETE","error",{"title":142,"path":143,"stem":144,"badge":145},"Add employees to groups","\u002Fapi-reference\u002Fgroups\u002Fadd-employees-to-groups","2.api-reference\u002F07.groups\u002F5.add-employees-to-groups",{"label":105,"color":106,"variant":89},{"title":147,"path":148,"stem":149,"badge":150},"Remove employees from groups","\u002Fapi-reference\u002Fgroups\u002Fremove-employees-from-groups","2.api-reference\u002F07.groups\u002F6.remove-employees-from-groups",{"label":105,"color":106,"variant":89},{"title":152,"icon":12,"path":153,"stem":154,"children":155,"page":12},"Rewards","\u002Fapi-reference\u002Frewards","2.api-reference\u002F08.rewards",[156],{"title":157,"path":158,"stem":159,"badge":160},"List upcoming rewards","\u002Fapi-reference\u002Frewards\u002Flist-upcoming-rewards","2.api-reference\u002F08.rewards\u002F1.list-upcoming-rewards",{"label":87,"color":88,"variant":89},{"title":162,"icon":12,"path":163,"stem":164,"children":165,"page":12},"Insights","\u002Fapi-reference\u002Finsights","2.api-reference\u002F09.insights",[166,171,176,181],{"title":167,"path":168,"stem":169,"badge":170},"Get coverage gaps","\u002Fapi-reference\u002Finsights\u002Fget-coverage-gaps","2.api-reference\u002F09.insights\u002F1.get-coverage-gaps",{"label":87,"color":88,"variant":89},{"title":172,"path":173,"stem":174,"badge":175},"List coverage gap employees","\u002Fapi-reference\u002Finsights\u002Flist-coverage-gap-employees","2.api-reference\u002F09.insights\u002F2.list-coverage-gap-employees",{"label":87,"color":88,"variant":89},{"title":177,"path":178,"stem":179,"badge":180},"Get quiet employees","\u002Fapi-reference\u002Finsights\u002Fget-quiet-employees","2.api-reference\u002F09.insights\u002F3.get-quiet-employees",{"label":87,"color":88,"variant":89},{"title":182,"path":183,"stem":184,"badge":185},"Get program review","\u002Fapi-reference\u002Finsights\u002Fget-program-review","2.api-reference\u002F09.insights\u002F4.get-program-review",{"label":87,"color":88,"variant":89},{"title":187,"icon":12,"path":188,"stem":189,"children":190,"page":12},"Metrics","\u002Fapi-reference\u002Fmetrics","2.api-reference\u002F10.metrics",[191,196],{"title":192,"path":193,"stem":194,"badge":195},"Send a metric value","\u002Fapi-reference\u002Fmetrics\u002Fsend-metric-value","2.api-reference\u002F10.metrics\u002F1.send-metric-value",{"label":105,"color":106,"variant":89},{"title":197,"path":198,"stem":199,"badge":200},"Get a metric value","\u002Fapi-reference\u002Fmetrics\u002Fget-metric-value","2.api-reference\u002F10.metrics\u002F2.get-metric-value",{"label":87,"color":88,"variant":89},{"title":202,"icon":12,"path":203,"stem":204,"children":205,"page":12},"System","\u002Fapi-reference\u002Fsystem","2.api-reference\u002F11.system",[206,211],{"title":207,"path":208,"stem":209,"badge":210},"Check API health","\u002Fapi-reference\u002Fsystem\u002Fhealth","2.api-reference\u002F11.system\u002F1.health",{"label":87,"color":88,"variant":89},{"title":212,"path":213,"stem":214,"badge":215},"Get the OpenAPI document","\u002Fapi-reference\u002Fsystem\u002Fopenapi","2.api-reference\u002F11.system\u002F2.openapi",{"label":87,"color":88,"variant":89},"i-nucleo-code",{"method":105,"path":218,"description":219,"scope":220,"parameters":221,"body":222,"responses":251},"\u002Fv1\u002Fmetrics","Records one employee's current value for a metric, then checks it against every active goal program using that metric. Send the full value each time, not a change: if someone has closed 12 deals, send `12`. Each value is checked by itself, in the order they arrive, using the time Teambrite receives it. A program pays a person once, the first time any value reaches its target, and a later lower value or a counter reset doesn't undo that. To correct a value, send a new one with a new `idempotencyKey`. Idempotency keys are unique across your company and kept for good. A replay with the same employee, metric and value answers `202` with `duplicate: true` and the original `id` and `acceptedAt`, including when two arrive at once, and only one is recorded.","metric:write",[],{"schema":223,"example":246},{"type":224,"properties":225,"required":241,"additionalProperties":12},"object",{"employeeId":226,"metricKey":231,"value":234,"idempotencyKey":237},{"type":227,"maxLength":228,"pattern":229,"description":230},"string",100,"^emp_[A-Za-z0-9_-]+$","An active employee in your company. Find it with List employees.",{"type":227,"pattern":232,"description":233},"^[a-z0-9]+(?:_[a-z0-9]+)*$","The key of one of your metrics, in `snake_case`.",{"type":235,"description":236},"integer","The employee's total so far, not a change since last time. A whole number, which can be negative.",{"type":227,"minLength":238,"maxLength":239,"description":240},1,255,"A value you choose that names this one reading, such as the ID of the event that produced it. Unique across your whole company and never forgotten, so send a new one whenever the value changes.",[242,243,244,245],"employeeId","metricKey","value","idempotencyKey",{"employeeId":247,"metricKey":248,"value":249,"idempotencyKey":250},"emp_LssEG8crOK3xrxCVx1nS6jy7","sales_closed",12,"crm-event-8f3a2c71",[252,281,297,307,317,327,337,347,357,367,378],{"status":253,"description":254,"schema":255,"example":278},"202","The value has been recorded safely. Checking it against your programs happens afterwards, and Get a metric value shows the result.",{"type":224,"properties":256,"required":273,"additionalProperties":12},{"id":257,"status":260,"acceptedAt":267,"duplicate":270},{"type":227,"maxLength":228,"pattern":258,"description":259},"^obs_[A-Za-z0-9_-]+$","The ID of this reading. Use it to check how it went with Get a metric value. A replay answers with the original ID.",{"type":227,"enum":261,"description":266},[262,263,264,265],"pending","processing","completed","failed","`pending` is recorded and waiting. `processing` is being checked against your programs. `completed` is checked. `failed` means the last check hit a problem on our side, and Teambrite keeps retrying for 24 hours, so there's no need to send it again.",{"type":227,"format":268,"description":269},"date-time","When Teambrite first recorded it. A replay answers with the original time.",{"type":271,"description":272},"boolean","`true` if this request repeated one already recorded, and nothing new was recorded.",[274,275,276,277],"id","status","acceptedAt","duplicate",{"id":279,"status":262,"acceptedAt":280,"duplicate":12},"obs_H8kP2vXmT6qLn4RcY9dWb3Jf","2026-11-10T15:04:05.000Z",{"status":282,"description":283,"schema":284,"example":286},"400","`METRIC_OBSERVATION_INVALID`: The body doesn't match the required fields.",{"$ref":285},"#\u002Fcomponents\u002Fschemas\u002FError",{"error":287,"status":288,"message":289,"data":290},true,400,"The body doesn't match the required fields.",{"code":291,"why":289,"fix":292,"formErrors":293,"fieldErrors":294},"METRIC_OBSERVATION_INVALID","Correct the fields listed under `fieldErrors` and send it again.",[],{"limit":295},[296],"Too big: expected number to be \u003C=100",{"status":298,"description":299,"schema":300,"example":301},"401","`API_KEY_INVALID`: The key is missing, wrong, expired or revoked.",{"$ref":285},{"error":287,"status":302,"message":303,"data":304},401,"The key is missing, wrong, expired or revoked.",{"code":305,"why":303,"fix":306},"API_KEY_INVALID","Send a current key as a Bearer token. Owners and admins manage keys in Settings, under Developer.",{"status":308,"description":309,"schema":310,"example":311},"403","`API_KEY_SCOPE_MISSING`: The key is valid but wasn't given the scope this endpoint needs. `PLAN_UPGRADE_REQUIRED`: Your plan doesn't include the API. `COMPANY_CLOSED`: Your company has closed its Teambrite account.",{"$ref":285},{"error":287,"status":312,"message":313,"data":314},403,"The key is valid but wasn't given the scope this endpoint needs.",{"code":315,"why":313,"fix":316},"API_KEY_SCOPE_MISSING","Create a new key with this scope in Settings, under Developer. A key's scopes can't be changed afterwards.",{"status":318,"description":319,"schema":320,"example":321},"404","`EMPLOYEE_NOT_FOUND`: No employee in your company has this ID.",{"$ref":285},{"error":287,"status":322,"message":323,"data":324},404,"No employee in your company has this ID.",{"code":325,"why":323,"fix":326},"EMPLOYEE_NOT_FOUND","Find the right ID with List employees. When several were sent, `data.employeeIds` lists the ones that weren't found.",{"status":328,"description":329,"schema":330,"example":331},"409","`METRIC_IDEMPOTENCY_CONFLICT`: The idempotency key was already used with a different employee, metric or value.",{"$ref":285},{"error":287,"status":332,"message":333,"data":334},409,"The idempotency key was already used with a different employee, metric or value.",{"code":335,"why":333,"fix":336},"METRIC_IDEMPOTENCY_CONFLICT","Use a new idempotency key for a new reading, or resend the original one unchanged.",{"status":338,"description":339,"schema":340,"example":341},"411","`REQUEST_LENGTH_REQUIRED`: The request didn't declare its length.",{"$ref":285},{"error":287,"status":342,"message":343,"data":344},411,"The request didn't declare its length.",{"code":345,"why":343,"fix":346},"REQUEST_LENGTH_REQUIRED","Send the request with a Content-Length header.",{"status":348,"description":349,"schema":350,"example":351},"413","`REQUEST_TOO_LARGE`: The body is over 1 MB.",{"$ref":285},{"error":287,"status":352,"message":353,"data":354},413,"The body is over 1 MB.",{"code":355,"why":353,"fix":356},"REQUEST_TOO_LARGE","Send less at once and try again.",{"status":358,"description":359,"schema":360,"example":361},"422","`EMPLOYEE_INACTIVE`: The employee is no longer active. `METRIC_NOT_FOUND`: Your company has no metric with this key. `METRIC_ARCHIVED`: This metric has been archived.",{"$ref":285},{"error":287,"status":362,"message":363,"data":364},422,"The employee is no longer active.",{"code":365,"why":363,"fix":366},"EMPLOYEE_INACTIVE","Leave this person out, or restore them in the Teambrite dashboard, under Employees. The API can't. When several were sent, `data.employeeIds` lists the inactive ones.",{"status":368,"description":369,"schema":370,"example":371},"429","`API_KEY_RATE_LIMITED`: The key is over 600 requests a minute.",{"$ref":285},{"error":287,"status":372,"message":373,"data":374},429,"The key is over 600 requests a minute.",{"code":375,"why":373,"fix":376,"retryAfterSeconds":377},"API_KEY_RATE_LIMITED","Wait for the number of seconds in the `Retry-After` header, then send it again.",42,{"status":379,"description":380,"schema":381,"example":382},"500","`METRIC_OBSERVATION_FAILED`: A problem on our side stopped the value being recorded.",{"$ref":285},{"error":287,"status":383,"message":384,"data":385},500,"A problem on our side stopped the value being recorded.",{"code":386,"why":384,"fix":387},"METRIC_OBSERVATION_FAILED","Send the same request again with the same idempotency key. Contact Teambrite support if it keeps failing.",{"id":389,"title":192,"body":390,"description":397,"extension":398,"links":399,"meta":400,"navigation":401,"path":193,"seo":403,"stem":194,"__hash__":404},"docs\u002F2.api-reference\u002F10.metrics\u002F1.send-metric-value.md",{"type":391,"value":392,"toc":393},"minimark",[],{"title":394,"searchDepth":395,"depth":395,"links":396},"",2,[],"Report one person's value for a metric, so goal programs can reward them.","md",null,{},{"badge":402},{"label":105,"color":106,"variant":89},{"title":192,"description":397},"EG6A2k-goi17G1RvaY5ytgWX3kLS1FNzTjNVwKWgOEY",[406,409],{"title":182,"path":183,"stem":184,"description":407,"badge":408,"children":-1},"Programs that would pay someone twice, or never pay anyone.",{"label":87,"color":88,"variant":89},{"title":197,"path":198,"stem":199,"description":410,"badge":411,"children":-1},"See how a value you sent was checked against your goal programs.",{"label":87,"color":88,"variant":89},1794422645676]