Register a new user and organization

posthttps://api.expiryedge.com/v1/register
Public - no API key10/15 minAny method
Request
curl -X POST 'https://api.expiryedge.com/v1/register' \
  -H "Content-Type: application/json" \
  -d '{
  "email": "priya.shah@northwinddental.com",
  "password": "Str0ng!Passw0rd",
  "firstName": "Priya",
  "lastName": "Shah",
  "displayName": "Priya Shah",
  "is_organization": true,
  "organization_name": "Northwind Dental",
  "timezone": "America/Chicago",
  "recaptchaToken": "03AFcWeA6x..."
}'
Response
{
  "message": "User registered successfully",
  "user": {
    "id": "u_71bXq",
    "email": "priya.shah@northwinddental.com",
    "firstName": "Priya",
    "lastName": "Shah",
    "displayName": "Priya Shah",
    "user_type": "organization",
    "organization_id": "org_northwind"
  }
}

Creates the Firebase Auth user, a new organization on a 14-day trial (or the referral code's trial), default expiry types, team, contact and reminder settings, and sends a verification email. Returns no token - sign in afterwards. Business email domains only (free providers are rejected) unless googleUid is sent. With googleUid, send the Firebase ID token for that uid as the bearer token to prove ownership.

Body parameters

application/json
  • emailstringrequired
    Business email (free email providers are rejected unless googleUid is sent).
    format: email
  • firstNamestringrequired
  • lastNamestringrequired
  • passwordstring
    Required for email signups; must meet the password policy.
  • displayNamestring
  • is_organizationboolean
  • organization_namestring
    Used when is_organization is true; otherwise the workspace is named after the user.
  • photoURLstring
  • timezonestring
    IANA timezone; defaults to America/New_York.
  • referral_codestring
  • promo_codestring
    Ignored when a valid referral_code is applied. Preview with checkPromoCode.
  • appsumo_link_tokenstring
    Links an AppSumo license (preview with checkAppSumoLicense).
  • recaptchaTokenstring
  • googleUidstring
    Firebase uid of an existing Google-authenticated account (send its ID token as the bearer token).

Returns

201
User and organization created.
  • messagestringrequired
  • userobjectrequired
    A user profile (users/{uid}).

Errors

400
The request is missing required fields or contains invalid values.
401
googleUid could not be verified (missing/mismatched ID token or email).
409
The request conflicts with existing data.
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.