Invite users to the organization

posthttps://api.expiryedge.com/v1/invite
admin30/15 minIdempotency-Key
Request
curl -X POST 'https://api.expiryedge.com/v1/invite' \
  -H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "emails": [
    "maria@northwinddental.com"
  ],
  "role": "viewer"
}'
Response
{
  "message": "1 invitation(s) sent successfully",
  "invitations": [
    {
      "id": "inv_5Rt2kWq",
      "email": "maria@northwinddental.com",
      "organization_id": "org_northwind",
      "invited_by": "u_71bXq",
      "inviter_name": "Dana Brooks",
      "status": "pending",
      "role": "viewer",
      "created_at": "2026-09-27T14:05:00.000Z",
      "expires_at": "2026-10-04T14:05:00.000Z"
    }
  ]
}

Up to 50 emails per request. Emails already in the organization or with a pending invitation are skipped. Pending invitations count toward the plan's user limit. Invitations expire after 7 days.

Headers

  • Idempotency-Keystring
    Optional client-generated key (1-255 characters of letters, digits, - _ : .).
    pattern: ^[A-Za-z0-9_\-:.]{1,255}$

Body parameters

application/json
  • emailsarray of stringrequired
    format: email · min items: 1 · max items: 50
  • rolestring
    AllowedadmineditorviewerDefault editor

Returns

201
Invitations created and emailed.
  • messagestringrequired
  • invitationsarray of objectsrequired

Errors

400
Invalid emails or role, not enough user seats, or every email was skipped.
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
A request with the same Idempotency-Key is still being processed. Retry after Retry-After seconds.
422
The Idempotency-Key was already used with a different request body.
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.
500
Unexpected server error. Retry later; quote requestId to support.