HatchedDocs
ReferenceWidgets

Kudos widget

Tenant-defined peer recognition — send and receive kudos with a configurable taxonomy.

Mount

<script src="https://cdn.hatched.live/widget.js" data-session-token="SESSION_TOKEN" defer></script>

<div data-hatched-mount="kudos"></div>

Sending a kudos is a write, so the Kudos widget must be mounted with a session token issued server-side per user. With a data-embed-token the received/given history still renders, but the composer is disabled.

Script attributes

AttributeValuesDefault
data-session-tokenwidget session tokencomposer enabled
data-embed-tokenembed tokenread-only history
data-themelight darklight
data-api-base-urlAPI origin + /api/v1https://api.hatched.live/api/v1

Required scopes

  • read lists received and given kudos.
  • Sending a kudos requires a session token minted with the kudos:send scope; a session token without kudos:send is rejected 403, and embed tokens are read-only.

Plan & capability

  • Capability: kudos (tenant toggle in Settings → Capabilities).
  • Minimum plan: Free.
  • Two distinct 403s can come back:
    • 403 plan_feature_locked — the plan does not entitle the capability. Details carry required_plan and an upgrade_url.
    • 403 capability_disabled — the plan entitles it but an operator turned the Settings toggle off for this workspace.

Endpoints

MethodPathPurpose
GET/widget/kudos/typesEffective kudo taxonomy for the composer
POST/widget/kudosSend a kudos (to_buddy_id, kudo_type_key, message?)
GET/widget/kudos/receivedRecent received kudos (Trophy Shelf)
GET/widget/kudos/givenRecent given kudos + lifetime count

When the taxonomy is empty the API returns the generic virtual set (thanks / shoutout / support). Sending is rate-limited by a workspace daily cap (429) and de-duplicated inside a 60s accident-click window.