Skip to content

Convites

Endpoints públicos para invitar usuários a la organização y para listar y gestionar convites pendentes de plataforma e convidados. Todos requerem header X-API-KEY. Invita por flujo de plataforma (Slack, Teams, Discord, etc.) o flujo convidado (apenas email). Las convites de plataforma se reintentan hasta 7 días.

Método Endpoint Descrição
POST /v1/invite-user/ Invitar usuários
GET /v1/pending-invitations/ Listar convites pendentes
GET /v1/pending-invitations/{id}/ Obter una convite pendente
DELETE /v1/pending-invitations/{id}/ Cancelar una convite pendente
GET /v1/pending-invitations/all/ Listar todas las convites
GET /v1/pending-invitations/guests/ Listar convites de convidados
GET /v1/pending-invitations/guests/{id}/ Obter una convite de convidado
DELETE /v1/pending-invitations/guests/{id}/ Cancelar una convite de convidado

POST /v1/invite-user/

POST /v1/invite-user/

Invita usuários por email o ID externo. Dos flujos: platform (padrão) y guest (apenas convites por email).

Parâmetros do Corpo

Name Type Required Description
users_identifiers array de strings Required Emails ou IDs externos de plataforma para convidar (máx 100). Strings com @ são tratadas como email; o restante como ID externo.
is_guest_account_invite boolean Optional Se true, usa fluxo de convidado (apenas convites por email). Padrão: false.
joinable_team_uuids array de strings (UUID) Optional UUIDs de equipes às quais os usuários convidados serão adicionados.
joinable_followup_uuids array de strings (UUID) Optional UUIDs de check-ins aos quais os usuários convidados serão adicionados.
Requisição
curl -X POST "https://api.dailybot.com/v1/invite-user/" \
  -H "X-API-KEY: sua_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 — Fluxo platform (padrão)
json
{
  "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 — Fluxo 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": []
  }
}
Response 400 Bad Request
json
{
  "detail": "users_identifiers is required and cannot be empty",
  "code": "params_validation_error"
}
Response 403 Forbidden
json
{
  "detail": "Invalid or missing API key.",
  "code": "authentication_failed"
}

GET /v1/pending-invitations/

GET /v1/pending-invitations/

Apenas convites de plataforma, paginadas. Filtrar por estado (pending, resolved, failed, cancelled). Para plataforma + guest en una resposta usa GET /v1/pending-invitations/all/.

Parâmetros de Consulta

Name Type Required Description
status string Optional Filtrar por estado: pending, resolved, failed, cancelled.
identifier_type string Optional Filtrar por tipo: email, external_id.
identifier string Optional Buscar por identificador (parcial, sem distinção de maiúsculas).
page integer Optional Número da página. Padrão: 1.
page_size integer Optional Itens por página. Padrão: 20, máx: 100.
Requisição
curl "https://api.dailybot.com/v1/pending-invitations/?status=pending&page=1&page_size=20" \
  -H "X-API-KEY: sua_api_key"
Response 200 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}/

Retorna una convite de plataforma pendente por ID.

Response 200 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": []
}
Response 404 Not Found
json
{
  "detail": "Pending invitation not found."
}

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

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

Cancela una convite de plataforma pendente. Apenas se pueden cancelar convites con estado pending.

Response 204 Não Content
json
Response 400 Bad Request
json
{
  "detail": "Only pending invitations can be cancelled."
}
Response 404 Not Found
json
{
  "detail": "Pending invitation not found."
}

GET /v1/pending-invitations/all/

GET /v1/pending-invitations/all/

Plataforma + guest en una resposta, sin paginación. Para apenas plataforma con paginación o filtrar por estado usa GET /v1/pending-invitations/.

Parâmetros de Consulta

Name Type Required Description
type string Optional Filtrar por tipo: platform o guest.
identifier string Optional Buscar por identificador/email (parcial, sem distinção de maiúsculas).
Response 200 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/

Retorna una lista paginada de convites de convidados pendentes.

Parâmetros de Consulta

Name Type Required Description
email string Optional Filtrar por email (parcial, sem distinção de maiúsculas).
page integer Optional Número da página. Padrão: 1.
page_size integer Optional Itens por página. Padrão: 20, máx: 100.
Response 200 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}/

Retorna una convite de convidado por ID.

Response 200 OK
json
{
  "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
json
{
  "detail": "Guest invitation not found."
}

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

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

Cancela una convite de convidado.

Response 204 Não Content
json
Response 404 Not Found
json
{
  "detail": "Guest invitation not found."
}

Detecção de identificador

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