Skip to content
Leadtime
English
Esc
↑↓navigate↵open⌘Jpreview

Get contacts grid

Returns a paginated, filterable, and sortable grid of all contacts in the workspace.

What are Contacts? The contacts grid provides a unified view of all people in your workspace:

  • Employees: Internal team members from your own company
  • Organization Members: External contacts from partner or customer organizations

This unified view allows you to search, filter, and manage all contacts in one place, regardless of whether they are internal employees or external contacts.

What is returned:

  • Contact identification (ID, name, type)
  • Contact information (email, phone, position, title, degree)
  • Organization information (for organization members)
  • Complete address details
  • Employee-specific fields (employment mode, entry/exit dates, tax class)
  • Organization member-specific fields (influence level, attitude, personality type)
  • Status information (active, can login)
  • Personal details (birth date, gender, avatar)

Filtering and search:

  • Quick search across name, email, phone, position, organization, and address fields
  • Advanced filtering by contact type, status, organization, and many other fields
  • Sorting by any sortable field
  • Server-side pagination for large contact lists

Note: This endpoint requires the Contacts.canSeeContacts permission. The contacts grid is the foundation for the Address Book feature, which can be synced via CardDAV or exported as vCard.

GET/contacts/grid
Authorization
AuthorizationOAuth2 access token · headerrequired
Scopes:api:read
or
AuthorizationBearer token (JWT) · headerrequired
Query parameters
pagenumber

Page number (1-based)

pageSizenumber

Number of items per page

viewIdstring

View identifier for saved grid configurations

quickSearchstring

Quick search text. Searches across: firstName, lastName, email, phone, position, organizationName, addressStreet, addressZip, addressCity, addressCountry, addressHouseNumber

filtersstring

JSON string containing filter configuration.

Available Fields:

  • id (string): Contact ID
  • type (set): Contact type (EMPLOYEE, ORGANIZATION_MEMBER)
  • firstName (string): First name
  • lastName (string): Last name
  • email (string): Email address
  • phone (string): Phone number
  • position (string): Job position
  • title (string): Title (e.g., Dr., Prof.)
  • degree (string): Academic degree
  • organizationId (string): Organization ID (for organization members)
  • organizationName (string): Organization name (for organization members)
  • addressStreet (string): Street address
  • addressZip (string): ZIP/Postal code
  • addressCity (string): City
  • addressCountry (string): Country
  • addressHouseNumber (string): House number
  • avatarId (string): Avatar file ID
  • isActive (boolean): Whether contact is active
  • canLogin (boolean): Whether contact can login to the system
  • employmentMode (string): Employment mode (for employees)
  • entryDate (date): Entry date (for employees)
  • exitDate (date): Exit date (for employees)
  • incomeTaxClass (string): Income tax class (for employees)
  • influenceLevel (string): Influence level (for organization members)
  • attitudeLevel (string): Attitude level (for organization members)
  • personalityType (string): Personality type (for organization members)
  • socialNetworkLink (string): Social network profile link (for organization members)
  • birthDate (date): Birth date
  • gender (string): Gender
  • createdAt (date): Creation timestamp

Filter Structure:

[
  {
    "type": "string|number|date|set|boolean|array|task_status|task_type",
    "fieldName": "field_name",
    "value": {
      "comparison": "comparison_type",
      "value": "filter_value"
    }
  }
]

Group Filters (AND/OR Combinations):

[
  {
    "type": "group",
    "fieldName": "group0.18807479823070028",
    "value": {
      "type": "or",
      "filters": [
        {
          "type": "string",
          "fieldName": "fileName",
          "value": {
            "comparison": "contain",
            "value": "aa"
          }
        },
        {
          "type": "number",
          "fieldName": "rowCount",
          "value": {
            "comparison": ">=",
            "value": 33
          }
        }
      ]
    }
  }
]

Available Comparison Operators:

  • id (string): Contact ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • type (set): Contact type (EMPLOYEE, ORGANIZATION_MEMBER) (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
  • firstName (string): First name (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • lastName (string): Last name (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • email (string): Email address (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • phone (string): Phone number (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • position (string): Job position (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • title (string): Title (e.g., Dr., Prof.) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • degree (string): Academic degree (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • organizationId (string): Organization ID (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • organizationName (string): Organization name (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • addressStreet (string): Street address (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • addressZip (string): ZIP/Postal code (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • addressCity (string): City (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • addressCountry (string): Country (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • addressHouseNumber (string): House number (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • avatarId (string): Avatar file ID (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • isActive (boolean): Whether contact is active (boolean filter). Available comparisons: equal, not_equal
  • canLogin (boolean): Whether contact can login to the system (boolean filter). Available comparisons: equal, not_equal
  • employmentMode (string): Employment mode (for employees) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • entryDate (date): Entry date (for employees) (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
  • exitDate (date): Exit date (for employees) (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
  • incomeTaxClass (string): Income tax class (for employees) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • influenceLevel (string): Influence level (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • attitudeLevel (string): Attitude level (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • personalityType (string): Personality type (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • socialNetworkLink (string): Social network profile link (for organization members) (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • birthDate (date): Birth date (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
  • gender (string): Gender (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
  • createdAt (date): Creation timestamp (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty

Note: Use quickSearch parameter for simple text search instead of adding it to filters.

sortstring

JSON array of sort objects.

Sortable Fields:

  • id: Contact ID
  • type: Contact type (EMPLOYEE, ORGANIZATION_MEMBER)
  • firstName: First name
  • lastName: Last name
  • name: Full name (firstName + lastName, virtual field)
  • position: Job position
  • organizationId: Organization ID (for organization members)
  • organizationName: Organization name (for organization members)
  • addressCity: City
  • addressCountry: Country
  • isActive: Whether contact is active
  • canLogin: Whether contact can login to the system
  • employmentMode: Employment mode (for employees)
  • entryDate: Entry date (for employees)
  • exitDate: Exit date (for employees)
  • influenceLevel: Influence level (for organization members)
  • attitudeLevel: Attitude level (for organization members)
  • personalityType: Personality type (for organization members)
  • birthDate: Birth date
  • createdAt: Creation timestamp

Sort Structure:

[
  {
    "field": "field_name",
    "direction": "asc|desc"
  }
]

Default Sort: name (asc)

fieldsToReturnstring[]

Comma-separated list of field names to include in response items. If not provided, all fields are returned.

Available Fields: id, type, firstName, lastName, name, email, phone, position, title, degree, organizationId, organizationName, addressStreet, addressZip, addressCity, addressCountry, addressHouseNumber, avatarId, isActive, canLogin, employmentMode, entryDate, exitDate, incomeTaxClass, influenceLevel, attitudeLevel, personalityType, socialNetworkLink, birthDate, gender, createdAt

Responses
200

Successfully retrieved contacts grid

401

Unauthorized - Invalid or missing authentication token

403

Forbidden - Insufficient API scopes or permissions

Try it
Server
Authorization
Parameters
Request
curl -X GET "https://leadtime.app/api/public/contacts/grid" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
Successfully retrieved contacts grid