Skip to content

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.

MethodEndpointDescription
GET/v1/kudos/List kudos (paginated)
POST/v1/kudos/Create a kudo
POST/v1/kudos/{kudo-id}/boost/Boost a kudo

List Kudos

GET/v1/kudos/Chave de APICLI Auth

Returns a paginated list of kudos (filtered by the authenticated user: received or given).

Query Parameters

NameTypeRequiredDescription
filterstringOptionalkudos_received or kudos_given (case-insensitive). Invalid values return 400 invalid_kudos_filter.
sender_uuidstring (UUID)OptionalFilter to kudos sent by a specific user.
receiver_uuidstring (UUID)OptionalFilter to kudos received by a specific user.
start_datestring (YYYY-MM-DD)OptionalInclusive start date (caller's timezone). Also accepted: date_start, date_from. Invalid values return 400 invalid_date_range.
end_datestring (YYYY-MM-DD)OptionalInclusive end date, 23:59:59 in caller's timezone. Also accepted: date_end, date_to. Invalid values return 400 invalid_date_range.
searchstringOptionalCase-insensitive substring match on the kudo message. Max 256 chars — longer values return 400 search_query_too_long.
pageintegerOptionalPage number (1-indexed). Default: 1.
page_sizeintegerOptionalItems per page. Default: 50, max: 200. Alias: limit.
Request
curl "https://api.dailybot.com/v1/kudos/?filter=kudos_received&limit=10&offset=0" \
  -H "X-API-KEY: your_api_key"
Response200 OK
json
{
  "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

POST/v1/kudos/Chave de APICLI Auth

Creates a new kudo. Provide either receivers (list of identifiers) or both users_receivers and/or teams_receivers.

Body Parameters

NameTypeRequiredDescription
receiversarray of stringsOptionalUser identifiers (e.g. UUIDs) to receive the kudo. Required if users_receivers and teams_receivers are not used.
users_receiversarray of strings (UUID)OptionalUser UUIDs to receive the kudo.
teams_receiversarray of strings (UUID)OptionalTeam UUIDs; all active members receive the kudo.
contentstringOptionalKudo message text (HTML-safe).
is_anonymousbooleanOptionalIf true, sender is anonymized. Default: false.
company_valuestring (UUID)OptionalCompany value ID to attach (if organization uses values).
Request
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
json
{
  "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
json
{
  "detail": "The receivers list should not be empty",
  "code": "params_validation_error"
}
Response400 Bad Request — self-kudo
json
{
  "detail": "You cannot give kudos to yourself",
  "code": "cant_give_kudos_to_yourself"
}
Response404 Not Found
json
{
  "detail": "One or more receivers were not found in Dailybot, or were duplicated in the input",
  "code": "no_users_found"
}

Tip

You can send kudos to multiple users at once by including multiple UUIDs in the receivers array. Each recipient will receive their own kudos notification.

Info

When using an exchange token, kudos will appear as sent by the user associated with the token rather than the API key owner.

Boost a kudo

POST/v1/kudos/{kudo-id}/boost/Chave de APICLI Auth

Boosts 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.

Request
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
json
{
  "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
json
{
  "detail": "You cannot boost your own kudo.",
  "code": "cannot_boost_own_kudo"
}
Response400 Bad Request — boosting a boost
json
{
  "detail": "You can only boost original kudos.",
  "code": "cannot_boost_child_kudo"
}
Response404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}
Response409 Conflict
json
{
  "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.

GET/v1/kudos/organization/Chave de APICLI Auth

Returns all top-level kudos across the organization. Admin only. Supports filter, sender/receiver, timezone-aware and legacy date-range parameters.

Response200 OK
json
{
  "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
json
{
  "detail": "Invalid 'start_date' value. Expected YYYY-MM-DD.",
  "code": "invalid_date_range"
}
Response400 — invalid_kudos_filter
json
{
  "detail": "Not valid kudos filter. Accepted values: kudos_received, kudos_given.",
  "code": "invalid_kudos_filter"
}
Response400 — invalid_sender_uuid
json
{
  "detail": "Invalid UUID format for 'sender_uuid'.",
  "code": "invalid_sender_uuid"
}
Response403 — org_admin_required
json
{
  "detail": "This endpoint requires organization admin privileges.",
  "code": "org_admin_required"
}

Info

Only top-level kudos are returned — replies are excluded (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.

GET/v1/kudos/wall-of-fame/Chave de APICLI Auth

Returns a paginated leaderboard of top kudos recipients.

Rate Limits

Max 10 kudos per day per API key. Minimum 5 minutes between kudos.