Skip to content
Leadtime
English
Esc
navigateopen⌘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:** ```json [ { "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):** ```json [ { "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:** ```json [ { "field": "field_name", "direction": "asc|desc" } ] ``` **Default Sort:** name (asc)
fieldsToReturnany[]
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
200Successfully retrieved contacts grid
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/contacts/grid" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
Successfully retrieved contacts grid