> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search With Preferences

> Searching the phone list.

Search is based on the supplied preferences.
NsApiSlow threshold: 2000 ms.



## OpenAPI

````yaml /openapi/agent/openapi-v3-PhoneListAgent.json post /api/v1/Agents/PhoneList/SearchWithPreferences
openapi: 3.0.0
info:
  version: v1-Agents
  title: SuperOffice Agent API v1
  description: SuperOffice Agent API - PhoneListAgent
  contact:
    name: SuperOffice DevNet
    url: https://docs.superoffice.com/en/api/index.html
    email: sdk@superoffice.com
servers:
  - url: http://localhost:56350
  - url: https://localhost:56350
security: []
tags: []
externalDocs:
  description: >-
    The SuperOffice DevNet Community has more documentation, examples, and
    discussion forums.
  url: https://community.superoffice.com/en/developer/
paths:
  /api/v1/Agents/PhoneList/SearchWithPreferences:
    post:
      tags:
        - PhoneList_Agent
      summary: Search With Preferences
      description: "Searching the phone list.\n\nSearch is based on the supplied preferences.\r\nNsApiSlow threshold: 2000 ms."
      operationId: v1PhoneListAgent_SearchWithPreferences
      parameters:
        - name: $select
          in: query
          description: >-
            Optional comma separated list of properties to include in the
            result. Other fields are then nulled out to reduce payload size:
            "Name,department,category". Default = show all fields.
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code.
          required: false
          schema:
            type: string
        - name: SO-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code. Overrides Accept-Language value.
          required: false
          schema:
            type: string
        - name: SO-Culture
          in: header
          description: >-
            Number, date formatting in a specified culture (iso2 language) code.
            Partially overrides SO-Language/Accept-Language value. Ignored if no
            Language set.
          required: false
          schema:
            type: string
        - name: SO-TimeZone
          in: header
          description: >-
            Specify the timezone code that you would like date/time responses
            converted to.
          required: false
          schema:
            type: string
        - name: SO-AppToken
          in: header
          description: >-
            The application token that identifies the partner app. Used when
            calling Online WebAPI from a server.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          text/json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          application/xml:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          text/xml:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          application/x-www-form-urlencoded:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          application/json-patch+json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
          application/merge-patch+json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest
        description: SearchString, Preferences
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
            application/xml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
            text/xml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
            application/json-patch+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
            application/merge-patch+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListItem'
      security:
        - SuperOffice_Password: []
          SuperId_Authentication: []
components:
  schemas:
    SuperOffice.WebApi.v1.Carriers.PhoneListCarriers.SearchWithPreferencesRequest:
      description: >-
        SearchWithPreferences: Searching the phone list. Search is based on the
        supplied preferences.
      type: object
      properties:
        SearchString:
          type: string
        Preferences:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.PhoneListPreferences'
    SuperOffice.CRM.Services.PhoneListItem:
      description: "Carrier object for PhoneListItem.\r\nServices for the PhoneListItem Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IPhoneListAgent\">PhoneList Agent</see>."
      type: object
      properties:
        PersonDirectPhone:
          description: Person Direct Phone
          type: string
        PersonCellPhone:
          description: Person Cell Phone
          type: string
        PersonPrivatePhone:
          description: Person Private Phone
          type: string
        PersonFaxNumber:
          description: Actual phone number as eneterd by the user
          type: string
        PersonPagerNumber:
          description: Actual phone number as eneterd by the user
          type: string
        PersonEmail:
          description: The address itself
          type: string
        Id:
          format: int32
          description: The contact or person's id
          type: integer
        Name:
          description: The contact or person's name
          type: string
        Tooltip:
          description: ''
          type: string
        UniqueId:
          description: >-
            Property setting a unique id indicating if this is a person or
            contact
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.PhoneListPreferences:
      description: "Search preferences for a phone list search\r\n<para />\r\nCarrier object for PhoneListPreferences.\r\nServices for the PhoneListPreferences Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IPhoneListAgent\">PhoneList Agent</see>."
      type: object
      properties:
        SearchCompany:
          description: True if you want to search for Companies by their name.
          type: boolean
        SearchFirstname:
          description: True if you want to search for Persons by their firstname.
          type: boolean
        SearchLastname:
          description: True if you want to search for Persons by their lastname.
          type: boolean
        SearchDepartment:
          description: >-
            True if you want to search for Departments where your colleagues
            work.
          type: boolean
        SearchModeCompany:
          description: >-
            The Company name search type, e.g. BeginsWith, Contains, Endswith,
            Matches
          enum:
            - Exact
            - BeginsWith
            - EndsWith
            - Contains
          type: string
        SearchModeDepartment:
          description: >-
            The Department search type, e.g. BeginsWith, Contains, Endswith,
            Matches
          enum:
            - Exact
            - BeginsWith
            - EndsWith
            - Contains
          type: string
        SearchModeFirstname:
          description: >-
            The firstname search type, e.g. BeginsWith, Contains, Endswith,
            Matches
          enum:
            - Exact
            - BeginsWith
            - EndsWith
            - Contains
          type: string
        SearchModeLastname:
          description: >-
            The lastname search type, e.g. BeginsWith, Contains, Endswith,
            Matches
          enum:
            - Exact
            - BeginsWith
            - EndsWith
            - Contains
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Security.TableRight:
      description: "Wraps a table right together with an explanatory reason.\r\nCode can indicate why access is restricted."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string
    SuperOffice.CRM.Security.FieldProperty:
      description: >-
        Class holding properties like field length, field type about a field in
        the carrier.
      type: object
      properties:
        FieldRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldRight'
        FieldType:
          type: string
        FieldLength:
          format: int32
          description: ''
          type: integer
    SuperOffice.CRM.Security.FieldRight:
      description: "Wraps the field right together with an explanatory reason.\r\nAlso adds logical operators to the field rights so that they can be easily combined."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string

````

## Related topics

- [Search](/en/api/reference/restful/agent/phonelist_agent/search.md)
- [Set Preferences](/en/api/reference/restful/agent/phonelist_agent/set-preferences.md)
- [NSPhoneListPreferences](/en/automation/crmscript/reference/CRMScript.NetServer.NSPhoneListPreferences.md)
- [SuperOffice.WebApi.Data.PhoneList SearchWithPreferencesRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.PhoneList_SearchWithPreferencesRequest.md)
- [SuperOffice.WebApi.Data.PhoneListPreferences](/en/api/reference/webapi/SuperOffice.WebApi.Data.PhoneListPreferences.md)
- [NSPhoneListAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSPhoneListAgent.md)
