verification.score
A play's verification score is final
Sent once a play's score is final, which is at most about 15 minutes after the play starts. Each endpoint receives this at most once per play, even if the delivery is retried.
Subscribing an endpoint through /v1 sends this for every play in the endpoint's scope whose score becomes final after you subscribe. It never backfills: earlier plays are not sent. Score filters can't be set through /v1 yet. attestConfigId identifies the filter settings Vojo created for the endpoint when you subscribed.
Read tracks.passport and tracks.harvester for the evidence behind the score. Ignore tracks.player: Vojo's evidence sources are Passport and Harvester.
Payload
A point-in-time echo of the play's FINAL score, not a live-updating view. tracks.*.eventCount are raw received-event counts per track, not the lifecycle-completeness bonus used internally to compute score.
eventTypestringRequiredeventIdstringRequiredStable per-event id, constant across retries (injected at delivery). Dedupe on this.
playIdstringRequiredexternalIdstring or nullRequiredEchoed from the play's wrapper, if any.
attestConfigIdstringRequiredThe filter settings this play cleared. For an endpoint subscribed through /v1, this is the permissive config created automatically when the endpoint subscribed to
verification.score.attestedAtstringRequiredEpoch (seconds) this event was generated.
tracksobjectRequiredShow 3 fields
passportobjectRequiredShow 1 field
eventCountintegerRequired
playerobjectRequiredShow 1 field
eventCountintegerRequired
harvesterobjectRequiredShow 1 field
eventCountintegerRequired
scoreobjectRequiredShow 5 fields
finalinteger or nullRequiredbandstring or nullRequiredphasestringRequiredAlways FINAL — this event is only sent once a play settles.
policyVersionstring or nullRequiredscoredAtstring or nullRequired
metadataobjectRequiredYour own data, returned unchanged — never scored. Empty object when the wrapper carried none.
attemptIdstringPer-attempt id; CHANGES on each retry. Do not dedupe on this.
Handling this event
Verify the signature, reply with a 2xx within 20 seconds, then process the event in the background. Retries reuse the same event id, so deduplicate on it.