Get a contact

gethttps://api.expiryedge.com/v1/getContact
any role (admin, editor or viewer)60/min
Anfrage
curl 'https://api.expiryedge.com/v1/getContact?id=c_8Hk2pQ' \
  -H "Authorization: Bearer $EXPIRYEDGE_API_KEY"
Antwort
{
  "id": "c_8Hk2pQ",
  "user_id": "u_71bXq",
  "organization_id": "org_northwind",
  "firstName": "Priya",
  "lastName": "Shah",
  "email": "priya.shah@northwinddental.example",
  "smsPhone": "+15550123456",
  "whatsappPhone": null,
  "contactType": "Staff",
  "jobTitle": "Practice Manager",
  "timezone": "America/New_York",
  "contactGroup": "Licensing",
  "is_default": true,
  "email_opt_in": true,
  "sms_opt_in": true,
  "whatsapp_opt_in": false,
  "sendNotifications": true,
  "createdAt": "2026-09-27T14:05:00.000Z",
  "updatedAt": "2026-09-27T14:05:00.000Z"
}

Returns the contact as a flat camelCase object (not wrapped). A contact in another organization returns 403.

Query-Parameter

  • idstringerforderlich
    Contact id.

Rückgabe

200
The contact.
  • firstNamestring
  • lastNamestring
    Send '' when unknown (create stores it as given).
  • emailstring | null
    Unique per organization (case-insensitive) on create.
    format: email
  • smsPhonestring | null
    E.164 phone for SMS, e.g. +15550123456.
  • whatsappPhonestring | null
  • contactTypestring | null
    Free-text category, e.g. Client, Staff, Vendor.
  • jobTitlestring | null
  • timezonestring
    IANA timezone. Defaults to Europe/London on create.
  • contactGroupstring | null
    Group name (not id). A new name creates the group.
  • is_defaultboolean
    Default contact added to new expiries. Defaults to false. isDefault is also accepted on create.
  • email_opt_inboolean
    Defaults to true.
  • sms_opt_inboolean
    Defaults to false.
  • whatsapp_opt_inboolean
    Defaults to false.
  • sendNotificationsboolean
    Master switch for reminders to this contact. Defaults to true.
  • idstringschreibgeschützt
  • user_idstringschreibgeschützt
    Creator's user id.
  • organization_idstringschreibgeschützt
  • createdAtstring
    UTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).
    format: date-time
  • updatedAtstring
    UTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).
    format: date-time

Fehler

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.
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.