Skip to content

Record one opted-in anonymous aggregate Coach telemetry bucket

POST
/v1/mobile/coach/telemetry
curl --request POST \
--url https://api.vocapable.com/v1/mobile/coach/telemetry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "action": "opened", "duration_bucket": "not_applicable", "app_version": "example", "role": "admin", "window_class": "fresh_foreground" }'

Increment no bucket unless this current device explicitly opted in.

The repository function receives the five finite aggregate dimensions only. In particular, it is never passed the tenant, membership, device, recommendation key, request id, customer/call resource, or a raw duration.

Media typeapplication/json
MobileCoachTelemetryEventRequest

One anonymous, finite aggregate-measurement increment.

There is intentionally no recommendation key, tenant/device/member id, target id, caller/contact data, timestamp, token, free text, or raw duration. The server verifies the submitted role against the authenticated mobile session before incrementing.

object
action
required
Action
string
Allowed values: opened recommendation_viewed recommendation_dismissed recommendation_snoozed recommendation_restored setup_action_opened
duration_bucket
required
Duration Bucket
string
Allowed values: not_applicable under_5_seconds 5_to_30_seconds 30_to_120_seconds over_120_seconds
app_version
required
App Version
string
>= 5 characters <= 11 characters /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/
role
required
Role
string
Allowed values: admin manager
window_class
required
Window Class
string
Allowed values: fresh_foreground resumed_foreground active_foreground

Successful Response

Media typeapplication/json
MobileCoachTelemetryReceipt

A no-detail acknowledgement that preserves an opt-out’s privacy boundary.

object
recorded
required
Recorded
boolean
Examplegenerated
{
"recorded": true
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}