Kudos
Kudos are Dailybot's recognition system for celebrating team achievements. Use this endpoint to programmatically award kudos to team members, supporting anonymous recognition and company values.
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/kudos/ | List kudos (paginated) |
| POST | /v1/kudos/ | Create a kudo |
| POST | /v1/kudos/{kudo-id}/boost/ | Boost a kudo |
List Kudos
/v1/kudos/Chave de APICLI AuthReturns a paginated list of kudos (filtered by the authenticated user: received or given).
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
filter | string | Optional | kudos_received or kudos_given (case-insensitive). Invalid values return 400 invalid_kudos_filter. |
sender_uuid | string (UUID) | Optional | Filter to kudos sent by a specific user. |
receiver_uuid | string (UUID) | Optional | Filter to kudos received by a specific user. |
start_date | string (YYYY-MM-DD) | Optional | Inclusive start date (caller's timezone). Also accepted: date_start, date_from. Invalid values return 400 invalid_date_range. |
end_date | string (YYYY-MM-DD) | Optional | Inclusive end date, 23:59:59 in caller's timezone. Also accepted: date_end, date_to. Invalid values return 400 invalid_date_range. |
search | string | Optional | Case-insensitive substring match on the kudo message. Max 256 chars — longer values return 400 search_query_too_long. |
page | integer | Optional | Page number (1-indexed). Default: 1. |
page_size | integer | Optional | Items per page. Default: 50, max: 200. Alias: limit. |
curl "https://api.dailybot.com/v1/kudos/?filter=kudos_received&limit=10&offset=0" \
-H "X-API-KEY: your_api_key"Response200 OK
{
"count": 10,
"next": "https://api.dailybot.com/v1/kudos/?limit=10&offset=10",
"previous": null,
"results": [
{
"id": "kudo-uuid",
"parent": null,
"user": {
"uuid": "user-uuid",
"full_name": "Jane Smith",
"image": "...",
"role": "member"
},
"receivers": [
{
"uuid": "user-uuid-2",
"full_name": "John Doe"
}
],
"company_value": {
"id": "value-uuid",
"name": "Teamwork"
},
"content": "Great work on the release!",
"is_anonymous": false,
"by_dailybot": false,
"metadata": {},
"created_at": "2026-02-25T10:00:00Z"
}
]
}Send Kudos
/v1/kudos/Chave de APICLI AuthCreates a new kudo. Provide either receivers (list of identifiers) or both users_receivers and/or teams_receivers.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
receivers | array of strings | Optional | User identifiers (e.g. UUIDs) to receive the kudo. Required if users_receivers and teams_receivers are not used. |
users_receivers | array of strings (UUID) | Optional | User UUIDs to receive the kudo. |
teams_receivers | array of strings (UUID) | Optional | Team UUIDs; all active members receive the kudo. |
content | string | Optional | Kudo message text (HTML-safe). |
is_anonymous | boolean | Optional | If true, sender is anonymized. Default: false. |
company_value | string (UUID) | Optional | Company value ID to attach (if organization uses values). |
curl -X POST "https://api.dailybot.com/v1/kudos/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"receivers": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"content": "Great work on the API integration! Ship it!",
"company_value": "value-uuid-here",
"is_anonymous": false
}'Response200 OK
{
"id": "kudo-uuid",
"user": {
"uuid": "user-uuid",
"full_name": "Jane Smith"
},
"receivers": [
{
"uuid": "user-uuid-2",
"full_name": "John Doe"
}
],
"company_value": {
"id": "value-uuid",
"name": "Teamwork"
},
"content": "Great work!",
"is_anonymous": false,
"by_dailybot": false,
"created_at": "2026-02-25T10:00:00Z",
"children_kudos": [],
"boost_count": 0,
"has_boosted": false
}Response400 Bad Request
{
"detail": "The receivers list should not be empty",
"code": "params_validation_error"
}Response400 Bad Request — self-kudo
{
"detail": "You cannot give kudos to yourself",
"code": "cant_give_kudos_to_yourself"
}Response404 Not Found
{
"detail": "One or more receivers were not found in Dailybot, or were duplicated in the input",
"code": "no_users_found"
}Tip
receivers array. Each recipient will receive their own kudos notification.Info
Boost a kudo
/v1/kudos/{kudo-id}/boost/Chave de APICLI AuthBoosts a kudo (adds a '+1' from the authenticated user). Only original (top-level) kudos can be boosted; the user cannot boost their own kudo or boost the same kudo twice.
curl -X POST "https://api.dailybot.com/v1/kudos/kudo-uuid-here/boost/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json"Response201 Created
{
"id": "boost-kudo-uuid",
"parent": "kudo-uuid",
"user": {
"uuid": "user-uuid",
"full_name": "Jane Smith"
},
"created_at": "2026-02-25T10:05:00Z",
"boost_count": 1
}Response400 Bad Request
{
"detail": "You cannot boost your own kudo.",
"code": "cannot_boost_own_kudo"
}Response400 Bad Request — boosting a boost
{
"detail": "You can only boost original kudos.",
"code": "cannot_boost_child_kudo"
}Response404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Response409 Conflict
{
"detail": "You have already boosted this kudo.",
"code": "already_boosted"
}Organization-wide kudos
Returns all top-level kudos across the entire organization (replies excluded). Requires organization admin role. Always paginated (standard envelope). Ordered by created_at DESC withid as a deterministic tiebreaker.
Authentication: Accepts both X-API-KEY(organization API key) and Authorization: Bearer <token>(CLI Bearer token or session token). The admin permission requirement applies to whichever credential is used.
/v1/kudos/organization/Chave de APICLI AuthReturns all top-level kudos across the organization. Admin only. Supports filter, sender/receiver, timezone-aware and legacy date-range parameters.
Response200 OK
{
"count": 156,
"next": "https://api.dailybot.com/v1/kudos/organization/?page=2",
"previous": null,
"results": [
{
"id": "a8283c36-8e5f-40cb-92ca-9e483eb6bde2",
"user": {
"uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"full_name": "Jane Smith",
"image": "https://avatars.slack-edge.com/..."
},
"receivers": [
{
"uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"full_name": "John Doe",
"image": "https://avatars.slack-edge.com/..."
}
],
"company_value": {
"id": "d4735e3a-265e-16d7-3dca-60b8831c8295",
"value": "Teamwork",
"description": "Collaboration and support",
"emoji": "🤝",
"i18n_meta": {}
},
"content": "Thanks for the incredible help with the product launch!",
"is_anonymous": false,
"created_at": "2026-07-08T14:30:00.123456Z"
}
]
}Response400 — invalid_date_range
{
"detail": "Invalid 'start_date' value. Expected YYYY-MM-DD.",
"code": "invalid_date_range"
}Response400 — invalid_kudos_filter
{
"detail": "Not valid kudos filter. Accepted values: kudos_received, kudos_given.",
"code": "invalid_kudos_filter"
}Response400 — invalid_sender_uuid
{
"detail": "Invalid UUID format for 'sender_uuid'.",
"code": "invalid_sender_uuid"
}Response403 — org_admin_required
{
"detail": "This endpoint requires organization admin privileges.",
"code": "org_admin_required"
}Info
parent__isnull=True). If the organization has anonymous kudos disabled (allow_anonymous_messages = false), anonymous kudos are excluded. limit/offset are accepted as backward-compatible aliases for page_size and offset-based pagination.Wall of fame
Returns a ranked leaderboard of the top kudos recipients in the organization for a given period.
/v1/kudos/wall-of-fame/Chave de APICLI AuthReturns a paginated leaderboard of top kudos recipients.
Rate Limits