---
title: "resendUserInvitation"
method: POST
path: "/v2/users/invite:resendEmail"
tags: ["User V2"]
---

# resendUserInvitation

`POST /v2/users/invite:resendEmail`

Resend user invitation email

## Request body

- object
  - `email` string — Email address of the address
  - `language` 'en' | 'de' — Language for user invitation email

## Response `200`

User Invitation sent successfully.

- UserV2
  - `id` string — User's unique identifier
  - `organization_id` string
  - `created_at` string, date-time
  - `activated_at` string, date-time
  - `display_name` string — User's display name (default: email address)
  - `status` 'Active' | 'Pending' | 'Deactivated' | 'Deleted'
  - `email` string, email — User's email address
  - `draft_email` string, email, nullable — User's pending email address
  - `draft_email_expires_at` string, date-time, nullable — Server-set expiry for the pending email change verification link (ISO 8601). Read-only.
  - `password_reset_token_hash` string, nullable — Internal: sha256 hash of the active password-reset token. Server-set, never returned in responses.
  - `password_reset_token_expires_at` string, date-time, nullable — Internal: expiry for the active password-reset token (ISO 8601). Server-set, never returned in responses.
  - `department` string, nullable — User's department
  - `phone` string, nullable — User's phone number
  - `secondary_phone` string, nullable — User's secondary phone number, preferred for communication
  - `mfa_enabled` boolean — User's multi-factor authentication status
  - `totp_enabled` boolean — Whether the user has TOTP (authenticator app) MFA enabled
  - `has_passkeys` boolean — Whether the user has any registered passkeys
  - `phone_verified` boolean — User's phone number verification status
  - `token` string — Token used to invite a user to epilot
  - `signature` string, nullable — User's email signature
  - `is_signature_enabled` boolean, nullable — Whether the user's signature is enabled
  - `preferred_language` string — User's preferred language
  - `custom_start_page` string, nullable — User's start page after login
  - `custom_navigation` string, nullable — Navigation unique identifier - a hash of the normalized navigation payload (name + configuration). Identical navigations across orgs will have the same ID.
  - `override_release_channel` 'canary' | 'rc' | 'stable' | 'null', nullable — This field is used to override the release channel for the user.
  - `feature_preferences` object, nullable — User's feature preferences
  - `image_uri` object, nullable — User's custom profile image
    - `original` string, uri
    - `thumbnail_32` string, uri
  - `favorites` object
  - `email_notification_setting` object
  - `in_app_notification_setting` object — Per-notification-type in-app delivery preferences (notification type key -> enabled). Written by the my-account notification settings UI and honored by svc-notification-api at delivery time. Absent or partial keys fall back to each notification type's configured default. Mirrors email_notification_setting for the in-app channel.
  - `properties` object[]
    - `name` string, required
    - `value` string, required
  - `tags` string[], nullable — User tags/labels assigned for classification (e.g. label slugs)

## Other responses

- `400` — User not found.

---

[API](https://skmtc.net/epilot/apis/user-api.md) · [All operations](https://skmtc.net/epilot/apis/user-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/user-api/versions/7fae886a3c99/schema)
