Less Annoying CRM logo Less Annoying CRM LACRM
Core API Functions

Search

Use these functions to list all items in the CRM, or narrow the results using search terms and advanced filtering.

Search or list all contacts

Given search terms, return a list of matching contacts. If no search terms are provided, return all contacts. The advanced filter system is documented here.

How to call this function
Function name
GetContacts
Parameters
SearchTerms Text

Values to search for in record fields.

RequiresWriteAccess Bool Default: false

If true, only return contacts that the current user has permission to edit.

RecordTypeFilter Text Default: NULL

Contacts, Companies, or omit to return all.

OwnerFilter Array of Uids Default: NULL

Only returns contacts assigned to these UserIds. If null, return all contacts.

AdvancedFilters Array of objects

List of filters to apply to search results.

Each item in the array should be an object with the following fields:
Name Text Required

Name of field to filter on.

Operation Text Required

Type of filter operation to perform.

Value Default: NULL

Value to filter on.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
{
"HasMoreResults": false,
"Results": [
{
Multi-type. Example output for type Contact:
{
"ContactId": "3862515354732873260518907940136",
"AssignedTo": 483823,
"IsCompany": false,
"CompanyId": "3862515354732873260518907240315",
"Name": {
"Salutation": "Mr.",
"FirstName": "John",
"MiddleName": "",
"LastName": "Doe",
"Suffix": ""
}
"Email": [
{
"Text": "john.doe@email.com",
"Type": "Work",
"TypeId": "3862515354732873260518908027407"
},
{...},
{...}
]
"Phone": [
{
"Text": "(314) 555-5555",
"Type": "Work",
"TypeId": "3862515354732873260518908815836"
},
{...},
{...}
]
"Company Name": "",
"Job Title": "",
"Address": [
{
"Street": "123 Main Street",
"City": "St. Louis",
"State": "MO",
"Zip": "63101",
"Country": "USA",
"Type": "Work",
"TypeId": "3862515354735179103528121615658"
},
{...},
{...}
]
"Background Info": "",
"Website": [
{
"Text": "www.lessannoyingcrm.com"
},
{...},
{...}
]
"Birthday": "2023-01-30",
"CompanyMetaData": {
"CompanyName": ""
}
"DateCreated": "2023-01-30T09:16:55-08:00",
"LastUpdate": "2023-01-30T09:16:55-08:00",
"UserMetaData": {
"FirstName": "Your",
"LastName": "Name"
}
}
Multi-type. Example output for type Company:
{
"ContactId": "3862515354735179103528121356207",
"AssignedTo": 483823,
"IsCompany": true,
"Company Name": "B&B Enterprises",
"Email": [
{
"Text": "john.doe@email.com",
"Type": "Work",
"TypeId": "3862515354735179103528120853588"
},
{...},
{...}
]
"Phone": [
{
"Text": "(314) 555-5555",
"Type": "Work",
"TypeId": "3862515354735179103528121201562"
},
{...},
{...}
]
"Address": [
{
"Street": "123 Main Street",
"City": "St. Louis",
"State": "MO",
"Zip": "63101",
"Country": "USA",
"Type": "Work",
"TypeId": "3862515354735179103528120976768"
},
{...},
{...}
]
"Background Info": "",
"Website": [
{
"Text": "www.lessannoyingcrm.com"
},
{...},
{...}
]
"DateCreated": "2023-01-30T09:16:55-08:00",
"LastUpdate": "2023-01-30T09:16:55-08:00",
"UserMetaData": {
"FirstName": "Your",
"LastName": "Name"
}
}
},
{...},
{...}
]
}

List all events

This function will get all events between a date range; will return all visible events by default, but can be filtered by calendar, contact, or user.

How to call this function
Function name
GetEvents
Parameters
SortDirection Enum Default: Ascending
Valid options: Ascending, Descending

Whether the results should be sorted in ascending or descending order.

StartDate DateTime Default: NULL

The start date (inclusive) of the range of events you want to retrieve.

EndDate DateTime Default: NULL

The end date (inclusive) of the range of events you want to retrieve.

UserIds Array of Uids Default: Array

If you'd like to only see events assigned to specific users, pass their UserIds into this field and we'll filter the results to only show those users' events.

CalendarFilter Array of Uids Default: NULL

If you want to fetch the events for a single calendar, pass in the CalendarIds of the calendars you'd like to fetch events for. Only works for your own calendars.

ContactId Uid Default: NULL

If you specify this parameter, only events attached to this contact will be returned. Alternatively, you can call GetEventsAttachedToContact to get the same results.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
{
"HasMoreResults": false,
"Results": [
{
"EventId": "3862515354744402475564976825127",
"Name": "",
"StartDate": "2023-01-30T09:16:55-08:00",
"EndDate": "2023-01-30T09:16:55-08:00",
"Location": "",
"Description": "",
"IsAllDay": false,
"IsRecurring": false,
"RecurrenceEventId": "3862515354744402475564976324566",
"RecurrenceRule": "",
"EndRecurrenceDate": "2023-01-30T09:16:55-08:00",
"SeriesNumber": 10,
"DateCreated": "2023-01-30T09:16:55-08:00",
"DateUpdated": "2023-01-30T09:16:55-08:00",
"ContactIds": [
3862515354746708318574189659551,
3862515354746708318574190883871,
3862515354746708318574188976648
],
"UserIds": [
3862515354746708318574189245987,
3862515354746708318574190546357,
3862515354746708318574189510097
],
"Attendees": [
{
"IsUser": false,
"AttendeeId": "3862515354746708318574191021549",
"AttendanceStatus": ""
},
{...},
{...}
]
"CalendarId": "3862515354749014161583404304902",
"ContactMetaData": [
{
"Name": "John Doe"
},
{...},
{...}
]
"UserMetaData": [
{
"FirstName": "Your",
"LastName": "Name"
},
{...},
{...}
]
"CalendarMetaData": {
"Name": "Primary calendar"
}
},
{...},
{...}
]
}

List all notes

This function gets a list of all notes entered in the CRM. You can pass additional parameters to filter and sort the results.

How to call this function
Function name
GetNotes
Parameters
SortDirection Enum Default: Descending
Valid options: Ascending, Descending

This list will always be sorted by the date of the notes. By default it will list the newest note first, but you can reverse the order if you'd like.

DateFilterStart DateTime Default: NULL

If you specify this parameter, only notes entered on or after the date you choose will be returned.

DateFilterEnd DateTime Default: NULL

If you specify this parameter, only notes entered on or before the date you choose will be returned.

UserFilter Array of Uids Default: NULL

If you'd like to only see notes entered by specific users, pass their UserIds into this field and we'll filter the results to only show those users' notes.

ContactId Uid

If you specify this parameter, only notes attached to this contact will be returned. Alternatively, you can call GetNotesAttachedToContact to get the same results.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
{
"HasMoreResults": false,
"Results": [
{
"NoteId": "3862515354753625847601831911889",
"ContactId": "3862515354753625847601831618602",
"UserId": "123",
"DateCreated": "2023-01-30T09:16:55-08:00",
"DateDisplayedInHistory": "2023-01-30T09:16:55-08:00",
"Note": "I called and got their voicemail. I'll try again next week.",
"ContactMetaData": {
"Name": "John Doe"
}
"UserMetaData": {
"FirstName": "Your",
"LastName": "Name"
}
},
{...},
{...}
]
}

List all pipeline items

This function searches all the pipeline items on your account.

How to call this function
Function name
GetPipelineItems
Parameters
PipelineId Uid Required

The pipeline item you'd like to return pipeline items for.

UserFilter Array of Uids Default: Array

If you'd like to only see pipeline items entered by specific users, pass their UserIds into this field and we'll filter the results to only show those users' pipeline items (based on the contact they are attached to). Passing an empty array will return results for all users whose contacts you have read access to.

StatusFilter Array of Uids Default: Array

If you'd like to see pipeline items in a certain set of statuses, you can pass in the StatusId into this field we'll filter the results to only show pipeline items in those statuses. An empty array or NULL value will return all active statuses by default.

SortDirection Enum Default: Ascending
Valid options: Ascending, Descending

By default, the report will be sorted by status.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
Next page: Tasks