Platform API

<back to all web services

GetSlimContacts

Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns

Requires Authentication
The following routes are available for this service:
All Verbs/api/slimcontacts

export enum SortOrder
{
    Ascending = 'Ascending',
    Descending = 'Descending',
}

export class PagedModel
{
    /** @description Page Number to retrieve */
    // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    public PageNumber: number;

    /** @description Number of records to retrieve */
    // @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
    public PageSize: number;

    /** @description Index of field to sort results by */
    // @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
    public SortIndex: number;

    /** @description Sort Order - Ascending or Descending */
    // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    public SortOrder: SortOrder;

    public constructor(init?: Partial<PagedModel>) { (Object as any).assign(this, init); }
}

export class ContactSummaryModel
{
    /** @description Contact linked to the profile */
    // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    public ContactId: string;

    /** @description Full name of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")
    public ContactFullName: string;

    /** @description Email Address of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")
    public EmailAddress: string;

    /** @description Mobile Number of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Mobile Number of the contact linked to the profile", Name="MobileNumber")
    public MobileNumber: string;

    /** @description Primary Phone Number of the contact linked to the profile */
    // @ApiMember(DataType="string", Description="Primary Phone Number of the contact linked to the profile", Name="PhoneNumber")
    public PhoneNumber: string;

    /** @description Type of contact (person, organisation etc.) linked to the profile */
    // @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId")
    public ContactTypeId: string;

    /** @description Profile photo of contact linked to the profile */
    // @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")
    public ProfilePhotoUrl: string;

    /** @description Thumbnail photo of contact linked to the profile */
    // @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")
    public ProfilePhotoThumbnailUrl: string;

    /** @description Profile description */
    // @ApiMember(DataType="string", Description="Profile description", Name="Description")
    public Description: string;

    /** @description Employment Industry */
    // @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")
    public EmploymentIndustry: string;

    /** @description Employment Role */
    // @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")
    public EmploymentRole: string;

    /** @description Areas of Work */
    // @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")
    public EmploymentGeographicArea: string;

    /** @description Timezone Name */
    // @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")
    public TimezoneName: string;

    /** @description The primary address of the contact */
    // @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query")
    public PrimaryAddress: string;

    /** @description Have all connections to the contact been removed? */
    // @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact")
    public IsRemovedContact: boolean;

    public constructor(init?: Partial<ContactSummaryModel>) { (Object as any).assign(this, init); }
}

// @ApiResponse(Description="Contacts connected to contact by criteria, returning minimal number of columns, and response status")
export class GetSlimContactsResponse
{
    public Contacts: ContactSummaryModel[];
    public TotalContacts: number;
    public ResponseStatus: ResponseStatus;

    public constructor(init?: Partial<GetSlimContactsResponse>) { (Object as any).assign(this, init); }
}

/** @description Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns */
// @Api(Description="Get contacts connected to the current contact or licensee (if managing licensee contacts) by criteria, returning minimal number of columns")
export class GetSlimContacts extends PagedModel
{
    /** @description Specific search text to search for, e.g. Contact Name, Employment Details etc. */
    // @ApiMember(DataType="string", Description="Specific search text to search for, e.g. Contact Name, Employment Details etc.", Name="SearchText")
    public SearchText: string;

    /** @description Contact Types to search for, i.e. People and/or Organisations */
    // @ApiMember(DataType="List<Guid>", Description="Contact Types to search for, i.e. People and/or Organisations", IsRequired=true, Name="ContactTypes")
    public ContactTypes: string[] = [];

    /** @description Contact statuses to search for, i.e. Real and/or Virtual */
    // @ApiMember(DataType="List<Guid>", Description="Contact statuses to search for, i.e. Real and/or Virtual", IsRequired=true, Name="Statuses")
    public Statuses: string[] = [];

    /** @description Include contacts previously connected to the contact but now removed. */
    // @ApiMember(DataType="bool", Description="Include contacts previously connected to the contact but now removed.", Name="IncludeRemoved")
    public IncludeRemoved: boolean;

    /** @description Return all contacts matching criteria, or paged results? */
    // @ApiMember(Description="Return all contacts matching criteria, or paged results?", Name="IsPagedMode")
    public IsPagedMode: boolean;

    public constructor(init?: Partial<GetSlimContacts>) { super(init); (Object as any).assign(this, init); }
}

TypeScript GetSlimContacts DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /api/slimcontacts HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	SearchText: String,
	ContactTypes: 
	[
		00000000-0000-0000-0000-000000000000
	],
	Statuses: 
	[
		00000000-0000-0000-0000-000000000000
	],
	IncludeRemoved: False,
	IsPagedMode: False,
	PageNumber: 0,
	PageSize: 0,
	SortIndex: 0,
	SortOrder: Ascending
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Contacts: 
	[
		{
			ContactFullName: String,
			EmailAddress: String,
			MobileNumber: String,
			PhoneNumber: String,
			ProfilePhotoUrl: String,
			ProfilePhotoThumbnailUrl: String,
			Description: String,
			EmploymentIndustry: String,
			EmploymentRole: String,
			EmploymentGeographicArea: String,
			TimezoneName: String,
			PrimaryAddress: String,
			IsRemovedContact: False
		}
	],
	TotalContacts: 0,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}