Resend an invitation email

posthttps://api.expiryedge.com/v1/resendInvitation
admin30/15 min
Request
curl -X POST 'https://api.expiryedge.com/v1/resendInvitation' \
  -H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "invitationId": "inv_5Rt2kWq"
}'
Response
{
  "message": "Invitation email resent.",
  "email": "maria@northwinddental.com",
  "last_resent_at": "2026-09-27T14:05:00.000Z",
  "cooldown_seconds": 60
}

One resend per invitation every 60 seconds; an earlier retry is rejected with 429 (code: RATE_LIMITED, retry_after_seconds, Retry-After header). invitationId may also be passed as a query parameter.

Body parameters

application/json
  • invitationIdstringrequired

Returns

200
Invitation email resent.
  • messagestringrequired
  • emailstringrequired
  • last_resent_atstringrequired
    UTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).
    format: date-time
  • cooldown_secondsintegerrequired

Errors

400
The request is missing required fields or contains invalid values.
401
Missing, expired or invalid bearer token.
403
Authenticated, but your role or organization does not allow this action.
404
The record does not exist or is not in your organization.
405
The endpoint does not accept this HTTP method.
409
The invitation is no longer pending (code: INVITATION_NOT_PENDING).
410
The invitation has expired (code: INVITATION_EXPIRED).
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.
500
Unexpected server error. Retry later; quote requestId to support.
502
The email provider failed to send the invitation.