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
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


/**
* 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")
open class GetSlimContacts : PagedModel()
{
    /**
    * 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")
    open var SearchText:String? = null

    /**
    * 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")
    open var ContactTypes:ArrayList<UUID> = ArrayList<UUID>()

    /**
    * 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")
    open var Statuses:ArrayList<UUID> = ArrayList<UUID>()

    /**
    * 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")
    open var IncludeRemoved:Boolean? = null

    /**
    * Return all contacts matching criteria, or paged results?
    */
    @ApiMember(Description="Return all contacts matching criteria, or paged results?", Name="IsPagedMode")
    open var IsPagedMode:Boolean? = null
}

open class PagedModel
{
    /**
    * Page Number to retrieve
    */
    @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    open var PageNumber:Int? = null

    /**
    * Number of records to retrieve
    */
    @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
    open var PageSize:Int? = null

    /**
    * Index of field to sort results by
    */
    @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
    open var SortIndex:Int? = null

    /**
    * Sort Order - Ascending or Descending
    */
    @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    open var SortOrder:SortOrder? = null
}

enum class SortOrder
{
    Ascending,
    Descending,
}

@ApiResponse(Description="Contacts connected to contact by criteria, returning minimal number of columns, and response status")
open class GetSlimContactsResponse
{
    open var Contacts:ArrayList<ContactSummaryModel>? = null
    open var TotalContacts:Int? = null
    open var ResponseStatus:ResponseStatus? = null
}

open class ContactSummaryModel
{
    /**
    * Contact linked to the profile
    */
    @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    open var ContactId:UUID? = null

    /**
    * Full name of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")
    open var ContactFullName:String? = null

    /**
    * Email Address of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")
    open var EmailAddress:String? = null

    /**
    * Mobile Number of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Mobile Number of the contact linked to the profile", Name="MobileNumber")
    open var MobileNumber:String? = null

    /**
    * 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")
    open var PhoneNumber:String? = null

    /**
    * 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")
    open var ContactTypeId:UUID? = null

    /**
    * Profile photo of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")
    open var ProfilePhotoUrl:String? = null

    /**
    * Thumbnail photo of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")
    open var ProfilePhotoThumbnailUrl:String? = null

    /**
    * Profile description
    */
    @ApiMember(DataType="string", Description="Profile description", Name="Description")
    open var Description:String? = null

    /**
    * Employment Industry
    */
    @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")
    open var EmploymentIndustry:String? = null

    /**
    * Employment Role
    */
    @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")
    open var EmploymentRole:String? = null

    /**
    * Areas of Work
    */
    @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")
    open var EmploymentGeographicArea:String? = null

    /**
    * Timezone Name
    */
    @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")
    open var TimezoneName:String? = null

    /**
    * The primary address of the contact
    */
    @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query")
    open var PrimaryAddress:String? = null

    /**
    * Have all connections to the contact been removed?
    */
    @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact")
    open var IsRemovedContact:Boolean? = null
}

Kotlin GetSlimContacts DTOs

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

HTTP + CSV

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/csv
Content-Type: text/csv
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/csv
Content-Length: length

{"Contacts":[{"ContactId":"00000000-0000-0000-0000-000000000000","ContactFullName":"String","EmailAddress":"String","MobileNumber":"String","PhoneNumber":"String","ContactTypeId":"00000000-0000-0000-0000-000000000000","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"}}}