Contacts
Retrieve Contacts
Retrieving a single contact is pretty straightforward. You'll just use the id
of the contact to get it. When you are retrieving multiple contacts, there are additional search and filter options available.
Retrieve Contact
Get a single contact using its id
.
List Contacts
Example
When you want to retrieve multiple contacts, your data
property on the result will always be an array
even if you don't have any contacts. The contacts are returned in alphabetical order by name.
Pagination
If the has_more
property on the pagination object is set to true, you know there are more contacts in the database that have not been returned to you. The pagination object also has a page
property indicating your current offset and a limit property. The total_count property in pagination returns the the total number of contacts in the database.
By default the page
is set to 1
and the limit
is 10
.
If we want to query for contacts 11 - 20, we would request page 2 with a query parameter.
Filter
You can filter contacts by location_id
, address_hash
, group_id
, and metadata
properties.
- location_id - Add a PackageX location ID to filter all contacts in that location.
- address_hash - Add a PackageX address hash to filter all contacts in that location.
- group_id = Add a PackageX group ID to filter all contacts in that group. Multiple group IDs can be used at once by separating them with a comma.
- metadata - contacts can be filtered by a specific
metadata
key-value pair. Only one key-value pair can be used at a time. - created_at - Filter contacts by the date they were created.
- updated_at - Filter contacts by the date they were last updated.
Sorting
Sorting describes in what order you want your responses to come in. You can select an available property by which to sort, as well as the direction.
- order_by - The property by which to sort. Available properties are:
name
,email
,created_at
,updated_at
,_relevance
,_similarity
. The last two are only applicable when doing a search - direction - The direction to sort. Available directions are:
asc
anddesc
By default, contacts will be sorted by name in ascending order.
Search
There are times when filtering is not enough and you want to find a specific contact by some other attribute. In this case, you can do a fuzzy, typo-tolerant search of every contact in the database.
Below are the properties that are supported by our full text search.
Searchable Properties
search.name
: the primary name of the contactsearch.names
: all the names of the contact, including primary, alternate and nicknamessearch.email
: the primary email of the contactsearch.emails
: all the emails of the contact, including primary and alternatessearch.phone
: the primary phone of the contactsearch.phones
: all the phones of the contact, including primary and alternatessearch.groups
: all the group names of the contact
search.id_number
: the ID number of the contactsearch.metadata
: the custom metadata of the contact
To perform a general search, simply provide a string to search by using the search
query param. The results will be order by the most relevant first.
To perform a targeted search, or a mixture of targeted search and general search, or to use various modifiers to boost a particular field, refer to the general section on search, while using the searchable properties provided above
If you want to highlight matching search results for a frontend, we provide a special property for search-returned contact objects called _search
which will have the matched text surrounded with <mark>
handles.
We also provide a _searchV2
object that has a searchV2.scores
property for scores and searchV2.contact
property with all matches highlighted with <mark>
handles; this object has the same structure as the contact object, except only those properties are present where there are highlights.
Ordering Search Results
By default, search results are ordered by relevance. However, if you include an order_by
parameter along with your search query, the results will be ordered by the specified property instead of by relevance.
Relevance Score
Relevance scores are included in the search results by default. Note that this could add up to 10ms of extra time to the request.