List contacts

gethttps://api.expiryedge.com/v1/getAllContacts
any role (admin, editor or viewer)60/min
Request
curl 'https://api.expiryedge.com/v1/getAllContacts?selectedTeam=0&contactGroup=Vendors&contactType=Client' \
  -H "Authorization: Bearer $EXPIRYEDGE_API_KEY"
Response
[
  {
    "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 organization's contacts as a bare array (camelCase fields). No pagination or ordering: limit defaults to 5000 and no maximum is enforced. Filters are equality-only.

Query parameters

  • selectedTeamstring
    Only contacts with this team_id. 0 or omitted means all teams.
  • contactGroupstring
    Only contacts in this group (group name). Ignored when ungrouped is true.
  • contactTypestring
    Only contacts with this contactType.
  • ungroupedboolean
    When true, only contacts with no group.
  • limitinteger
    Maximum contacts returned. Default 5000; not clamped.
    Default 5000min: 1

Returns

200
Array of contacts (empty array when none match).
  • 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.
  • idstringread-only
  • user_idstringread-only
    Creator's user id.
  • organization_idstringread-only
  • 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

Errors

401
Missing, expired or invalid bearer token.
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.
500
Unexpected server error. Retry later; quote requestId to support.