User Invites

Send many invites

POST/invites/bulk/send

Sends up to 100 invites in the request, or 101 to 10,000 as a job that answers 202. Each item is {id} and runs on its own as POST /invites/{id}/actions/send does; a failed item, such as a completed invite, is reported in its slot and sends no email. dry_run rolls up to 100 items back and sends nothing. Emits invite.sent per invite. It can't be undone. The old inviteIds body returns 422. Per item, advisor invites (callers who may not escalate) and internal_user invites (personal tokens without create-new-user or super admin) are not found.

Query parameters

  • dry_runboolean#

    Validate and run the call without committing it, returning what the real call would return with meta.dry_run set.

Headers

  • Idempotency-Keystring#

    Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.

Request body

application/json, required · InviteBulkSend

  • itemsobject[]Required#

    Up to 10,000 items. Up to 100 run in the request.

{
  "items": [
    {
      "id": "7a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d"
    },
    {
      "id": "9f8e7d6c-5b4a-4039-8271-6e5d4c3b2a19"
    }
  ]
}

Responses

200

Every item in request order, each succeeded or failed.

InviteBulkReport
{
  "data": [
    {
      "index": 1,
      "status": "succeeded",
      "data": {},
      "error": {}
    }
  ],
  "meta": {
    "succeeded": 1,
    "failed": 1
  }
}
202

More than 100 items. A job runs them; its report has the same shape as the 200 body.

Job
{
  "data": {
    "id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
    "type": "string",
    "status": "queued",
    "progress": {
      "done": 1,
      "total": 1
    },
    "result": {},
    "error": {},
    "created_at": "2026-06-12T10:00:00+00:00",
    "updated_at": "2026-06-12T10:00:00+00:00",
    "completed_at": "2026-06-12T10:00:00+00:00"
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl -X POST https://your-org-domain/kong/core/api/v2/invites/bulk/send\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"\
  -d '{
  "items": [
    {
      "id": "7a2b3c4d-5e6f-4a8b-9c0d-1e2f3a4b5c6d"
    },
    {
      "id": "9f8e7d6c-5b4a-4039-8271-6e5d4c3b2a19"
    }
  ]
}'