Skip to content

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étodoEndpointDescripció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/

POST/v1/invite-user/API keyCLI Auth

Invita usuarios por email o ID externo. Dos flujos: platform (por defecto) y guest (solo invitaciones por email).

Parámetros del Cuerpo

NameTypeRequiredDescription
users_identifiersarray de stringsRequiredEmails o IDs externos de plataforma a invitar (máx 100). Strings con @ se tratan como email; el resto como ID externo.
is_guest_account_invitebooleanOptionalSi true, usa flujo invitado (solo invitaciones por email). Por defecto: false.
joinable_team_uuidsarray de strings (UUID)OptionalUUIDs de equipos a los que se unirán los usuarios invitados.
joinable_followup_uuidsarray de strings (UUID)OptionalUUIDs de check-ins a los que se unirán los usuarios invitados.
Petición
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": []}'
Response200 OK — Flujo platform (por defecto)
json
{
  "dailybot_members": {
    "count": 0,
    "members": []
  },
  "users_invited": {
    "count": 1,
    "members": [
      "[email protected]"
    ]
  },
  "pending_invitations": {
    "count": 0,
    "identifiers": []
  },
  "wrong_users": {
    "count": 0,
    "users_identifiers": []
  }
}
Response200 OK — Flujo guest (is_guest_account_invite: true)
json
{
  "dailybot_members": {
    "count": 0,
    "members": []
  },
  "guests_invited": {
    "count": 1,
    "emails": [
      "[email protected]"
    ]
  },
  "already_invited": {
    "count": 0,
    "emails": []
  },
  "wrong_users": {
    "count": 0,
    "users_identifiers": []
  }
}
Response400 Bad Request
json
{
  "detail": "users_identifiers is required and cannot be empty",
  "code": "params_validation_error"
}
Response403 Forbidden
json
{
  "detail": "Invalid or missing API key.",
  "code": "authentication_failed"
}

GET /v1/pending-invitations/

GET/v1/pending-invitations/API keyCLI Auth

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

NameTypeRequiredDescription
statusstringOptionalFiltro por estado: pending, resolved, failed, cancelled.
identifier_typestringOptionalFiltro por tipo: email, external_id.
identifierstringOptionalBuscar por identificador (parcial, sin distinguir mayúsculas).
pageintegerOptionalNúmero de página. Por defecto: 1.
page_sizeintegerOptionalElementos por página. Por defecto: 20, máx: 100.
Petición
curl "https://api.dailybot.com/v1/pending-invitations/?status=pending&page=1&page_size=20" \
  -H "X-API-KEY: tu_api_key"
Response200 OK
json
{
  "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}/

GET/v1/pending-invitations/{id}/API keyCLI Auth

Devuelve una invitación de plataforma pendiente por ID.

Response200 OK
json
{
  "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": []
}
Response404 Not Found
json
{
  "detail": "Pending invitation not found."
}

DELETE /v1/pending-invitations/{id}/

DELETE/v1/pending-invitations/{id}/API keyCLI Auth

Cancela una invitación de plataforma pendiente. Solo se pueden cancelar invitaciones con estado pending.

Response204 No Content
json
Response400 Bad Request
json
{
  "detail": "Only pending invitations can be cancelled."
}
Response404 Not Found
json
{
  "detail": "Pending invitation not found."
}

GET /v1/pending-invitations/all/

GET/v1/pending-invitations/all/API keyCLI Auth

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

NameTypeRequiredDescription
typestringOptionalFiltro por tipo: platform o guest.
identifierstringOptionalBuscar por identificador/email (parcial, sin distinguir mayúsculas).
Response200 OK
json
{
  "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/

GET/v1/pending-invitations/guests/API keyCLI Auth

Devuelve una lista paginada de invitaciones de invitados pendientes.

Parámetros de Consulta

NameTypeRequiredDescription
emailstringOptionalFiltro por email (parcial, sin distinguir mayúsculas).
pageintegerOptionalNúmero de página. Por defecto: 1.
page_sizeintegerOptionalElementos por página. Por defecto: 20, máx: 100.
Response200 OK
json
{
  "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}/

GET/v1/pending-invitations/guests/{id}/API keyCLI Auth

Devuelve una invitación de invitado por ID.

Response200 OK
json
{
  "id": 1,
  "type": "guest",
  "email": "[email protected]",
  "emails_sent": 1,
  "created_at": "2026-02-25T12:00:00Z",
  "joinable_teams": [],
  "joinable_followups": []
}
Response404 Not Found
json
{
  "detail": "Guest invitation not found."
}

DELETE /v1/pending-invitations/guests/{id}/

DELETE/v1/pending-invitations/guests/{id}/API keyCLI Auth

Cancela una invitación de invitado.

Response204 No Content
json
Response404 Not Found
json
{
  "detail": "Guest invitation not found."
}

Detección de identificador

Email: contiene @. ID externo: sin @ (ej. Slack U01ABC123DE, Discord 17–19 dígitos, MS Teams GUID).