Kudos
Envía y consulta kudos, incluyendo estadísticas por organización y el ranking del wall-of-fame. El campo `by_dailybot` se elimina para peticiones con token CLI.
En esta página
List kudos
Listado paginado de kudos accesibles al llamante. Devuelve el envelope estándar ({count, next, previous, results}). Admite filtros de emisor/receptor, rango de fechas y búsqueda por mensaje.
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| filter | string | Opcional | Tipo de filtro: kudos_received o kudos_given (sin distinción de mayúsculas). Valores inválidos devuelven 400 invalid_kudos_filter. |
| sender_uuid | string (uuid) | Opcional | Filtra por kudos enviados por un usuario específico. |
| receiver_uuid | string (uuid) | Opcional | Filtra por kudos recibidos por un usuario específico. |
| start_date | string (YYYY-MM-DD) | Opcional | Fecha de inicio inclusiva (zona horaria del usuario). También aceptado: date_start, date_from. |
| end_date | string (YYYY-MM-DD) | Opcional | Fecha de fin inclusiva, 23:59:59 en la zona horaria del usuario. También aceptado: date_end, date_to. |
| search | string | Opcional | Búsqueda de subcadena sin distinción de mayúsculas en el mensaje del kudo. Máximo 256 caracteres. |
| page | integer | Opcional | Número de página (índice base 1). Por defecto: 1. |
| page_size | integer | Opcional | Elementos por página. Por defecto: 50, máximo: 200. Alias: limit. |
Respuesta
{
"count": "integer",
"next": "string|null",
"previous": "string|null",
"results": "array<{ id, sender, receiver, message, created_at, ... }>"
}Errores
| Estado | Cuándo |
|---|---|
| 400 | Error de validación (invalid_kudos_filter, search_query_too_long, invalid_date_range) |
| 401 | Missing/invalid/expired credential |
| 403 | Authenticated but not permitted |
| 429 | Throttled - Retry-After header set |
curl -sS -X GET 'https://api.dailybot.com/v1/kudos/' -H 'X-API-KEY: $DAILYBOT_API_KEY'Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
Give kudos
Body: receivers (array), message; optional kudo_type_uuid, is_public, team_uuid, by_dailybot. Note: by_dailybot is stripped when the caller uses a CLI token.
Errores
| Estado | Cuándo |
|---|---|
| 401 | Missing/invalid/expired credential |
| 403 | Authenticated but not permitted |
| 429 | Throttled - Retry-After header set |
| 400 | Validation error |
curl -sS -X POST 'https://api.dailybot.com/v1/kudos/' -H 'X-API-KEY: $DAILYBOT_API_KEY'Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- by_dailybot is stripped for CLI tokens.
Listar todos los kudos de la organización (solo admin)
Devuelve todos los kudos de nivel superior en toda la organización. Requiere rol de admin de la organización. Acepta API key de organización (X-API-KEY) o token Bearer del CLI (Authorization: Bearer <token>). Admite filtros de emisor/receptor, rangos de fechas legacy y timezone-aware, y filtro por tipo (kudos_received / kudos_given). Solo se devuelven kudos de nivel superior (se excluyen respuestas).
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| filter | string | Opcional | Tipo de filtro: 'kudos_received' o 'kudos_given' (sin distinción de mayúsculas). Valores inválidos devuelven 400 invalid_kudos_filter. |
| sender_uuid | string (uuid) | Opcional | Filtra por emisor (usuario que envió el kudo). Debe ser un UUID v4 válido; de lo contrario devuelve 400 invalid_sender_uuid. |
| receiver_uuid | string (uuid) | Opcional | Filtra por receptor (usuario que recibió el kudo). Debe ser un UUID v4 válido; de lo contrario devuelve 400 invalid_receiver_uuid. |
| start_date | string (YYYY-MM-DD) | Opcional | Fecha de inicio inclusiva con zona horaria (zona horaria del usuario). Preferida sobre el legacy date_start. |
| end_date | string (YYYY-MM-DD) | Opcional | Fecha de fin inclusiva con zona horaria, 23:59:59 en la zona horaria del usuario. Preferida sobre el legacy date_end. |
| date_start | string (YYYY-MM-DD) | Opcional | Filtro legacy de inicio ingenuo por día (siempre disponible). Se acumula con start_date si ambos se envían. |
| date_end | string (YYYY-MM-DD) | Opcional | Filtro legacy de fin ingenuo por día (siempre disponible). Se acumula con end_date si ambos se envían. |
| search | string | Opcional | Búsqueda de subcadena sin distinción de mayúsculas en el contenido del kudo. Máximo 256 caracteres. |
| page | integer | Opcional | Número de página (índice base 1). Por defecto: 1. |
| page_size | integer | Opcional | Elementos por página. Por defecto: 25, máximo: 100. Alias: limit. |
| offset | integer | Opcional | Paginación por offset (aceptado por retrocompatibilidad). |
Respuesta
{
"count": "integer",
"next": "string|null",
"previous": "string|null",
"results": "array<{ id, user: { uuid, full_name, image }, receivers: array<{ uuid, full_name, image }>, company_value: { id, value, description, emoji, i18n_meta } | null, content, is_anonymous, created_at }>"
}Errores
| Estado | Cuándo |
|---|---|
| 400 | Error de validación (invalid_date_range, invalid_kudos_filter, invalid_sender_uuid, invalid_receiver_uuid, search_query_too_long) |
| 401 | Missing/invalid/expired credential |
| 403 | Autenticado pero no es admin de la organización (`org_admin_required`) |
| 429 | Throttled - Retry-After header set |
curl -sS -X GET 'https://api.dailybot.com/v1/kudos/organization/?start_date=2026-06-01&end_date=2026-06-30' -H 'X-API-KEY: $DAILYBOT_API_KEY'Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Solo se devuelven kudos de nivel superior (respuestas excluidas vía parent__isnull=True).
- Si la organización tiene los kudos anónimos deshabilitados (allow_anonymous_messages=false), los kudos anónimos se excluyen de los resultados.
- Ordenado por created_at DESC con id como criterio de desempate para paginación determinista.
Wall of fame leaderboard
Wall of fame leaderboard
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| period | enum (week,month,quarter,year,all_time) | Opcional | Default: month. |
| team_uuid | string (uuid) | Opcional | — |
| page | integer | Opcional | Número de página (índice base 1). Por defecto: 1. |
| page_size | integer | Opcional | Elementos por página. Por defecto: 50, máximo: 200. Alias: limit. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Missing/invalid/expired credential |
| 403 | Authenticated but not permitted |
| 429 | Throttled - Retry-After header set |
curl -sS -X GET 'https://api.dailybot.com/v1/kudos/wall-of-fame/' -H 'X-API-KEY: $DAILYBOT_API_KEY'Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
Kudos
Lista, envía y gestiona kudos para el reconocimiento del equipo.
Resumen de endpoints
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /v1/kudos/ |
Listar kudos del usuario autenticado |
| GET | /v1/kudos/organization/ |
Listar todos los kudos de la organización (solo admin) |
| GET | /v1/kudos/wall-of-fame/ |
Principales contribuidores de kudos |
| POST | /v1/kudos/ |
Enviar kudos |
| POST | /v1/kudos/{id}/boost/ |
Impulsar un kudo |
GET /v1/kudos/organization/
Devuelve todos los kudos de nivel superior de toda la organización. Requiere rol de admin de la organización. Siempre paginado (envelope estándar). Ordenado por created_at DESC con id como criterio de desempate determinista.
Autenticación: Acepta tanto X-API-KEY (API key de organización) como Authorization: Bearer <token> (token Bearer del CLI o de sesión). El requisito de admin aplica a cualquiera de las dos credenciales — los no-admin reciben 403 con code: "org_admin_required".
Parámetros de query
| Nombre | Tipo | Default | Descripción |
|---|---|---|---|
page |
integer | 1 | Número de página (base 1). |
page_size |
integer | 25 | Ítems por página (máx. 100). limit aceptado como alias. |
filter |
string | — | kudos_received o kudos_given (sin distinción de mayúsculas). Valores inválidos devuelven 400 invalid_kudos_filter. |
search |
string | — | Búsqueda de subcadena sin distinción de mayúsculas en el contenido del kudo. Máx. 256 chars. Si excede devuelve 400 search_query_too_long. |
start_date |
string (YYYY-MM-DD) |
— | Fecha inicio inclusiva con zona horaria (zona horaria del usuario). Preferida sobre el legacy date_start. |
end_date |
string (YYYY-MM-DD) |
— | Fecha fin inclusiva (23:59:59 en la zona horaria del usuario). Preferida sobre el legacy date_end. |
date_start |
string (YYYY-MM-DD) |
— | Filtro legacy de inicio ingenuo por día (aún disponible). Se acumula con start_date si ambos se envían. |
date_end |
string (YYYY-MM-DD) |
— | Filtro legacy de fin ingenuo por día (aún disponible). Se acumula con end_date si ambos se envían. |
sender_uuid |
string (UUID) | — | Filtra por el usuario que envió el kudo. Debe ser un UUID v4 válido o la API devuelve 400 invalid_sender_uuid. |
receiver_uuid |
string (UUID) | — | Filtra por el usuario que recibió el kudo. Debe ser un UUID v4 válido o la API devuelve 400 invalid_receiver_uuid. |
Guía sobre filtros de fecha: Prefiere
start_date/end_datepara integraciones nuevas — respetan la zona horaria del usuario autenticado.date_start/date_endsiguen disponibles como filtros legacy ingenuos por día y pueden combinarse con la pareja timezone-aware (los filtros se acumulan). Sistart_datees posterior aend_date, la API devuelve400 invalid_date_range.
Ejemplos
# Listar todos los kudos de la organización (paginación por defecto)
curl -sS "https://api.dailybot.com/v1/kudos/organization/" \
-H "Authorization: Bearer $DAILYBOT_CLI_TOKEN"
# Filtrar por rango de fechas (timezone-aware)
curl -sS "https://api.dailybot.com/v1/kudos/organization/?start_date=2026-06-01&end_date=2026-06-30" \
-H "X-API-KEY: $DAILYBOT_API_KEY"
# Filtrar por emisor
curl -sS "https://api.dailybot.com/v1/kudos/organization/?sender_uuid=f47ac10b-58cc-4372-a567-0e02b2c3d479" \
-H "Authorization: Bearer $DAILYBOT_CLI_TOKEN"
# Filtrar por receptor con paginación
curl -sS "https://api.dailybot.com/v1/kudos/organization/?receiver_uuid=7c9e6679-7425-40de-944b-e07fc1f90ae7&page=2&page_size=10" \
-H "Authorization: Bearer $DAILYBOT_CLI_TOKEN"
# Filtrar por tipo (solo kudos recibidos en toda la organización)
curl -sS "https://api.dailybot.com/v1/kudos/organization/?filter=kudos_received" \
-H "Authorization: Bearer $DAILYBOT_CLI_TOKEN"
Respuesta (200 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": "Colaboración y apoyo",
"emoji": "🤝",
"i18n_meta": {}
},
"content": "¡Gracias por la ayuda increíble en el lanzamiento del producto!",
"is_anonymous": false,
"created_at": "2026-07-08T14:30:00.123456Z"
}
]
}
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
count |
integer | Total de kudos que coinciden con la query (en todas las páginas). |
next |
string | null | URL de la siguiente página, o null en la última. |
previous |
string | null | URL de la página anterior, o null en la primera. |
results |
array | Objetos kudo para la página actual. |
Objeto kudo
| Campo | Tipo | Descripción |
|---|---|---|
id |
string (UUID) | Identificador único del kudo. |
user |
object | Emisor: { uuid, full_name, image }. Cuando is_anonymous es true, viene anonimizado (nombre aleatorio, sin identidad real). |
receivers |
array | Receptores: [{ uuid, full_name, image }]. |
company_value |
object | null | Valor de empresa adjunto: { id, value, description, emoji, i18n_meta }. null cuando no hay valor. |
content |
string | Mensaje del kudo (HTML sanitizado). |
is_anonymous |
boolean | Si el kudo se envió de forma anónima. |
created_at |
string (ISO 8601) | Marca de tiempo de creación. |
Respuestas de error
400 invalid_date_range — start_date > end_date o fecha mal formada.
{
"detail": "Invalid 'start_date' value. Expected YYYY-MM-DD.",
"code": "invalid_date_range"
}
400 invalid_kudos_filter — filter no es uno de los valores aceptados (sin distinción de mayúsculas).
{
"detail": "Not valid kudos filter. Accepted values: kudos_received, kudos_given.",
"code": "invalid_kudos_filter"
}
403 org_admin_required — el llamante no es admin de la organización.
{
"detail": "This endpoint requires organization admin privileges.",
"code": "org_admin_required"
}
400 invalid_sender_uuid — sender_uuid no es un UUID válido.
{
"detail": "Invalid UUID format for 'sender_uuid'.",
"code": "invalid_sender_uuid"
}
400 invalid_receiver_uuid — receiver_uuid no es un UUID válido.
{
"detail": "Invalid UUID format for 'receiver_uuid'.",
"code": "invalid_receiver_uuid"
}
401 Unauthorized — Credencial ausente o inválida.
403 Forbidden — Usuario autenticado sin rol de admin de la organización.
Notas
- Solo se devuelven kudos de nivel superior — las respuestas se excluyen (
parent__isnull=True). - Si la organización tiene los kudos anónimos deshabilitados (
allow_anonymous_messages = false), los kudos anónimos se excluyen de los resultados. limit/offsetse aceptan como aliases retrocompatibles parapage_sizey paginación por offset.
GET /v1/kudos/
Devuelve kudos del usuario autenticado. Paginado (ordenación por defecto: -id).
Parámetros de query
| Nombre | Tipo | Default | Descripción |
|---|---|---|---|
page |
integer | 1 | Número de página. offset aceptado como alias. |
page_size |
integer | 25 | Ítems por página (máx. 100). limit aceptado como alias. |
type |
string | kudos_received |
Alias deprecado — usa filter en su lugar. |
filter |
string | kudos_received |
kudos_received o kudos_given (sin distinción de mayúsculas). Valores inválidos devuelven 400 invalid_kudos_filter. |
user_uuid |
string (UUID) | — | Filtrar por usuario. |
start_date |
string | — | Fecha inicio inclusivo (YYYY-MM-DD, zona horaria del llamante). También: date_start, date_from. |
end_date |
string | — | Fecha fin inclusivo (YYYY-MM-DD, zona horaria del llamante). También: date_end, date_to. |
search |
string | — | Búsqueda de subcadena sin distinción de mayúsculas sobre el campo message del kudo. Máx. 256 chars. Si excede devuelve 400 search_query_too_long. |
Errores de validación: Rangos invertidos (
start_date > end_date) o fechas mal formadas devuelven400 invalid_date_range.
curl "https://api.dailybot.com/v1/kudos/?type=kudos_received&start_date=2026-07-01&end_date=2026-07-31&page_size=50" \
-H "X-API-KEY: $DAILYBOT_API_KEY"
Respuesta (200 OK):
{
"count": 15,
"next": null,
"previous": null,
"results": [
{
"id": "kudos-uuid",
"from_user": { "uuid": "usr_001", "name": "Alice" },
"to_user": { "uuid": "usr_002", "name": "Bob" },
"message": "¡Gran trabajo en el release!",
"points": 1,
"created_at": "2026-07-05T14:00:00Z"
}
]
}
POST /v1/kudos/
Envía kudos a un miembro del equipo.
Parámetros del body
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
receivers |
array de strings | Condicional | Identificadores de usuario (UUIDs, emails o IDs externos). Requerido si no se usan users_receivers ni teams_receivers. |
users_receivers |
array de UUIDs | Condicional | UUIDs explícitos de usuarios que reciben el kudo. |
teams_receivers |
array de UUIDs | No | UUIDs de equipos. Todos los miembros activos reciben el kudo. |
content |
string | No | Texto del mensaje de kudos (seguro para HTML). |
is_anonymous |
boolean | No | Si es true, el remitente es anonimizado. Por defecto: false. |
company_value |
string (UUID) | No | ID del valor de empresa a adjuntar (si la organización usa valores). |
curl -X POST "https://api.dailybot.com/v1/kudos/" \
-H "X-API-KEY: $DAILYBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"receivers": ["usr_002"],
"content": "¡Excelente trabajo en el rediseño de la API!",
"company_value": "value-uuid"
}'