Invitaciones
Endpoints públicos para invitar usuarios a la organización y para listar y gestionar invitaciones pendientes de plataforma e invitados. Todos requieren cabecera X-API-KEY.
Invita por flujo de plataforma (Slack, Teams, Discord, etc.) o flujo invitado (solo email). Las invitaciones de plataforma se reintentan hasta 7 días.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /v1/invite-user/ | Invitar usuarios |
| GET | /v1/pending-invitations/ | Listar invitaciones pendientes |
| GET | /v1/pending-invitations/{id}/ | Obtener una invitación pendiente |
| DELETE | /v1/pending-invitations/{id}/ | Cancelar una invitación pendiente |
| GET | /v1/pending-invitations/all/ | Listar todas las invitaciones |
| GET | /v1/pending-invitations/guests/ | Listar invitaciones de invitados |
| GET | /v1/pending-invitations/guests/{id}/ | Obtener una invitación de invitado |
| DELETE | /v1/pending-invitations/guests/{id}/ | Cancelar una invitación de invitado |
POST /v1/invite-user/
/v1/invite-user/ Invita usuarios por email o ID externo. Dos flujos: platform (por defecto) y guest (solo invitaciones por email).
Parámetros del Cuerpo
| Name | Type | Required | Description |
|---|---|---|---|
users_identifiers | array de strings | Required | Emails o IDs externos de plataforma a invitar (máx 100). Strings con @ se tratan como email; el resto como ID externo. |
is_guest_account_invite | boolean | Optional | Si true, usa flujo invitado (solo invitaciones por email). Por defecto: false. |
joinable_team_uuids | array de strings (UUID) | Optional | UUIDs de equipos a los que se unirán los usuarios invitados. |
joinable_followup_uuids | array de strings (UUID) | Optional | UUIDs de check-ins a los que se unirán los usuarios invitados. |
curl -X POST "https://api.dailybot.com/v1/invite-user/" \
-H "X-API-KEY: tu_api_key" \
-H "Content-Type: application/json" \
-d '{"users_identifiers": ["[email protected]"], "is_guest_account_invite": false, "joinable_team_uuids": [], "joinable_followup_uuids": []}'Response 200 OK — Flujo platform (por defecto)
{
"dailybot_members": {
"count": 0,
"members": []
},
"users_invited": {
"count": 1,
"members": [
"[email protected]"
]
},
"pending_invitations": {
"count": 0,
"identifiers": []
},
"wrong_users": {
"count": 0,
"users_identifiers": []
}
}Response 200 OK — Flujo guest (is_guest_account_invite: true)
{
"dailybot_members": {
"count": 0,
"members": []
},
"guests_invited": {
"count": 1,
"emails": [
"[email protected]"
]
},
"already_invited": {
"count": 0,
"emails": []
},
"wrong_users": {
"count": 0,
"users_identifiers": []
}
}Response 400 Bad Request
{
"detail": "users_identifiers is required and cannot be empty",
"code": "params_validation_error"
}Response 403 Forbidden
{
"detail": "Invalid or missing API key.",
"code": "authentication_failed"
}GET /v1/pending-invitations/
/v1/pending-invitations/ Solo invitaciones de plataforma, paginadas. Filtro por estado (pending, resolved, failed, cancelled). Para plataforma + guest en una respuesta usa GET /v1/pending-invitations/all/.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filtro por estado: pending, resolved, failed, cancelled. |
identifier_type | string | Optional | Filtro por tipo: email, external_id. |
identifier | string | Optional | Buscar por identificador (parcial, sin distinguir mayúsculas). |
page | integer | Optional | Número de página. Por defecto: 1. |
page_size | integer | Optional | Elementos por página. Por defecto: 20, máx: 100. |
curl "https://api.dailybot.com/v1/pending-invitations/?status=pending&page=1&page_size=20" \
-H "X-API-KEY: tu_api_key"Response 200 OK
{
"count": 5,
"next": "https://api.dailybot.com/v1/pending-invitations/?page=2&page_size=20",
"previous": null,
"results": [
{
"id": 1,
"identifier": "[email protected]",
"identifier_type": "email",
"identifier_type_display": "Email",
"status": "pending",
"status_display": "Pending",
"retry_count": 0,
"next_retry_at": null,
"created_at": "2026-02-25T12:00:00Z",
"joinable_teams": [],
"joinable_followups": []
}
]
}GET /v1/pending-invitations/{id}/
/v1/pending-invitations/{id}/ Devuelve una invitación de plataforma pendiente por ID.
Response 200 OK
{
"id": 1,
"identifier": "[email protected]",
"identifier_type": "email",
"identifier_type_display": "Email",
"status": "pending",
"status_display": "Pending",
"retry_count": 0,
"next_retry_at": null,
"last_retry_at": null,
"created_at": "2026-02-25T12:00:00Z",
"resolved_at": null,
"failure_reason": null,
"metadata": {},
"joinable_teams": [],
"joinable_followups": []
}Response 404 Not Found
{
"detail": "Pending invitation not found."
}DELETE /v1/pending-invitations/{id}/
/v1/pending-invitations/{id}/ Cancela una invitación de plataforma pendiente. Solo se pueden cancelar invitaciones con estado pending.
Response 204 No Content
Response 400 Bad Request
{
"detail": "Only pending invitations can be cancelled."
}Response 404 Not Found
{
"detail": "Pending invitation not found."
}GET /v1/pending-invitations/all/
/v1/pending-invitations/all/ Plataforma + guest en una respuesta, sin paginación. Para solo plataforma con paginación o filtro por estado usa GET /v1/pending-invitations/.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
type | string | Optional | Filtro por tipo: platform o guest. |
identifier | string | Optional | Buscar por identificador/email (parcial, sin distinguir mayúsculas). |
Response 200 OK
{
"platform_invitations": {
"count": 2,
"results": [
{
"id": 1,
"identifier": "[email protected]",
"identifier_type": "email",
"identifier_type_display": "Email",
"status": "pending",
"status_display": "Pending",
"retry_count": 0,
"next_retry_at": null,
"created_at": "2026-02-25T12:00:00Z",
"joinable_teams": [],
"joinable_followups": []
}
]
},
"guest_invitations": {
"count": 1,
"results": [
{
"id": 2,
"type": "guest",
"email": "[email protected]",
"emails_sent": 1,
"created_at": "2026-02-25T11:00:00Z",
"joinable_teams": [],
"joinable_followups": []
}
]
}
}GET /v1/pending-invitations/guests/
/v1/pending-invitations/guests/ Devuelve una lista paginada de invitaciones de invitados pendientes.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
email | string | Optional | Filtro por email (parcial, sin distinguir mayúsculas). |
page | integer | Optional | Número de página. Por defecto: 1. |
page_size | integer | Optional | Elementos por página. Por defecto: 20, máx: 100. |
Response 200 OK
{
"count": 3,
"next": "https://api.dailybot.com/v1/pending-invitations/guests/?page=2&page_size=20",
"previous": null,
"results": [
{
"id": 1,
"type": "guest",
"email": "[email protected]",
"emails_sent": 1,
"created_at": "2026-02-25T12:00:00Z",
"joinable_teams": [],
"joinable_followups": []
}
]
}GET /v1/pending-invitations/guests/{id}/
/v1/pending-invitations/guests/{id}/ Devuelve una invitación de invitado por ID.
Response 200 OK
{
"id": 1,
"type": "guest",
"email": "[email protected]",
"emails_sent": 1,
"created_at": "2026-02-25T12:00:00Z",
"joinable_teams": [],
"joinable_followups": []
}Response 404 Not Found
{
"detail": "Guest invitation not found."
}DELETE /v1/pending-invitations/guests/{id}/
/v1/pending-invitations/guests/{id}/ Cancela una invitación de invitado.
Response 204 No Content
Response 404 Not Found
{
"detail": "Guest invitation not found."
}Detección de identificador
@. ID externo: sin @ (ej. Slack U01ABC123DE, Discord 17–19 dígitos, MS Teams GUID).