Zoho Contact API

The Contact API from Zoho — 23 operation(s) for contact.

Operations 25

GET /api/v1/products/{productId}/contacts List contacts associated with product #
POST /api/v1/contacts/inviteAsEndUser Invite multiple contacts to help center #
DELETE /api/v1/contacts/{contactId}/photo Delete contact photo #
GET /api/v1/contacts/{contactId}/statistics Get contact statistics #
POST /api/v1/contacts/{contactId}/dissociateAccounts Dissociate accounts from contact #
POST /api/v1/contacts/moveToTrash Delete Contacts #
PATCH /api/v1/contacts/{contactId}/accounts/{accountId}/dissociate Dissociate account from contact #
GET /api/v1/contacts/{contactId}/helpCenters Get status of contact in help centers #
GET /api/v1/contacts/{contactId}/history Get contact history #
GET /api/v1/contacts List Contacts #
POST /api/v1/contacts Create Contact #
POST /api/v1/contacts/updateMany Update many contacts #
GET /api/v1/contacts/count Get contacts count #
GET /api/v1/contacts/contactsByIds List Contacts By Ids #
GET /api/v1/contacts/{contactId} Get Contact #
PATCH /api/v1/contacts/{contactId} Update Contact #
POST /api/v1/contacts/{contactId}/merge Merge Contacts #
POST /api/v1/contacts/{contactId}/approveEndUserInvite Approve contact for help center #
POST /api/v1/contacts/{contactId}/rejectEndUserInvite Reject contact for help center #
POST /api/v1/contacts/{contactId}/associateAccounts Associate accounts with contact #
POST /api/v1/contacts/{contactId}/associateProducts Associate products with a contact #
POST /api/v1/contacts/markSpam Mark contact as spam #
POST /api/v1/contacts/deleteSpam Delete spam contacts #
POST /api/v1/contacts/{contactId}/inviteAsEndUser Invite contact to help center #
GET /api/v1/accounts/{accountId}/contacts List Associated contacts #

Documentation

Specifications

Code Examples

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoho-contact-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoho-contact-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Helpcenter Contact API
  version: 1.0.0
tags:
- name: Contact
paths:
  /api/v1/products/{productId}/contacts:
    get:
      tags:
      - Contact
      summary: List contacts associated with product
      description: This API lists the contacts associated with a product.
      operationId: getContactsUnderProduct
      parameters:
      - name: include
        in: query
        description: Key that fetches secondary information related to the contact.Value allowed is @accounts@
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: Key that fetches secondary information related to the contact.Value allowed is @accounts@
          items:
            type:
            - string
            - 'null'
            enum:
            - accounts
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - name: sortBy
        in: query
        description: 'Parameter that sorts contacts by one of these attributes: !@firstName,@! !@lastName,@! !@phone,@! !@email,@! !@account,@! !@createdTime,@! !@modifiedTime@!'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: 'Parameter that sorts contacts by one of these attributes: !@firstName,@! !@lastName,@! !@phone,@! !@email,@! !@account,@! !@createdTime,@! !@modifiedTime@!'
          enum:
          - firstName
          - lastName
          - phone
          - email
          - account
          - createdTime
          - modifiedTime
          maxLength: 100
          minLength: 0
      - $ref: '#/components/parameters/isSpam'
      - name: productId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          pattern: ([0-9]+)
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '200':
          $ref: '#/components/responses/contactListViewArray'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.contacts.READ
      x-audience:
      - external-public
  /api/v1/contacts/inviteAsEndUser:
    post:
      tags:
      - Contact
      summary: Invite multiple contacts to help center
      description: This API helps invite multiple contacts as end-users to your help center.
      operationId: inviteContactsAsEndUser
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/inviteContactsAsEndUser'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/photo:
    delete:
      tags:
      - Contact
      summary: Delete contact photo
      description: This API deletes the display picture of a contact.
      operationId: deleteContactPhoto
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/statistics:
    get:
      tags:
      - Contact
      summary: Get contact statistics
      description: This API fetches the overall statistics of an contact.
      operationId: getContactStatistics
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/getStatistics'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/dissociateAccounts:
    post:
      tags:
      - Contact
      summary: Dissociate accounts from contact
      description: This API dissociates multiple accounts from a particular contact.
      operationId: dissociateAccountsWithContact
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/dissociateAccountsWithContact'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/moveToTrash:
    post:
      tags:
      - Contact
      summary: Delete Contacts
      description: This API moves the contacts specified to the Recycle Bin.
      operationId: deleteContact
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/deleteContactsRequest'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.DELETE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/accounts/{accountId}/dissociate:
    patch:
      tags:
      - Contact
      summary: Dissociate account from contact
      description: This API dissociates a particular account from a contact.
      operationId: dissociateAccountWithContact
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/helpCenters:
    get:
      tags:
      - Contact
      summary: Get status of contact in help centers
      description: This API fetches a particular contact's activation status in all the help centers they are part of.
      operationId: getContactActivationStatusAcrossHelpCenters
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./ResponseHelpCenterUser.json#/components/responses/listHelpCenters
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/history:
    get:
      tags:
      - Contact
      summary: Get contact history
      description: This API fetches the ticket history of a contact.
      operationId: getContactTicketHistory
      parameters:
      - name: agentId
        in: query
        description: ' Key that filters ticket activities performed by a particular agent'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          description: ' Key that filters ticket activities performed by a particular agent'
          pattern: ([0-9]+)
      - name: departmentId
        in: query
        description: ' ID of the department from which the history details must be fetched'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          description: ' ID of the department from which the history details must be fetched'
          pattern: ([0-9]+)
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: ./TicketHistory.json#/components/responses/accountContactHistoryResponse
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '401':
          $ref: ./Common.json#/components/responses/unauthorizedErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
        - Desk.tickets.READ
      x-audience:
      - external-public
  /api/v1/contacts:
    get:
      tags:
      - Contact
      summary: List Contacts
      description: 'This API lists a particular number of contacts, based on the limit specified. '
      operationId: getContacts
      parameters:
      - name: include
        in: query
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          items:
            type:
            - string
            - 'null'
            enum:
            - accounts
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - $ref: '#/components/parameters/viewId'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - name: sortBy
        in: query
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          enum:
          - firstName
          - lastName
          - phone
          - email
          - account
          - createdTime
          - modifiedTime
          maxLength: 100
          minLength: 0
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/contactListViewArray'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
    post:
      tags:
      - Contact
      summary: Create Contact
      description: This API creates a contact in your help desk portal.
      operationId: createContact
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/contactjson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/contactResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.CREATE
      x-audience:
      - external-public
  /api/v1/contacts/updateMany:
    post:
      tags:
      - Contact
      summary: Update many contacts
      description: This API updates multiple contacts at once.
      operationId: bulkUpdateContacts
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/contact_massupdate'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '401':
          $ref: ./Common.json#/components/responses/unauthorizedErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/count:
    get:
      tags:
      - Contact
      summary: Get contacts count
      description: This API displays the count for the number of contacts in a custom view
      operationId: getContactsCount
      parameters:
      - name: viewId
        in: query
        required: true
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          pattern: ([0-9]+)
      - name: startsWith
        in: query
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          maxLength: 100
          minLength: 0
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '200':
          $ref: '#/components/responses/countJson'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
  /api/v1/contacts/contactsByIds:
    get:
      tags:
      - Contact
      summary: List Contacts By Ids
      description: This API lists details of specific contacts, based on the IDs passed in the request.
      operationId: getContactsByIds
      parameters:
      - name: ids
        in: query
        description: List of Contact Ids (separated by comma) which must be fetched. The maximum number of IDs allowed is 20.
        required: true
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: List of Contact Ids (separated by comma) which must be fetched. The maximum number of IDs allowed is 20.
          items:
            type:
            - string
            - 'null'
            - integer
            format: int64
            pattern: ([0-9]+)
          uniqueItems: false
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '200':
          $ref: '#/components/responses/contactListViewArray'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}:
    get:
      tags:
      - Contact
      summary: Get Contact
      description: This API fetches a single contact from your help desk portal.
      operationId: getContact
      parameters:
      - name: include
        in: query
        description: 'Allowed values are :  @accounts@ , @owner@'
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: 'Allowed values are :  @accounts@ , @owner@'
          items:
            type:
            - string
            - 'null'
            enum:
            - accounts
            - owner
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/contactResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
    patch:
      tags:
      - Contact
      operationId: updateContact
      summary: Update Contact
      description: This API updates details of an existing contact.
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/updateContact_contactjson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/contactResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/merge:
    post:
      tags:
      - Contact
      summary: Merge Contacts
      description: This API merges two or more contacts  <br/></br/>_Note:_<br/>Though portal users (users who signed up via the help center) are saved as contacts in the help desk, their records cannot be merged with other records/contacts.
      operationId: mergeContacts
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/contactMergeRequest'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: '#/components/responses/contactResponse'
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/approveEndUserInvite:
    post:
      tags:
      - Contact
      summary: Approve contact for help center
      description: This API helps approve a particular contact as an end-user to your help center.
      operationId: approveEndUserInvite
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/updateSignupApproval'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/rejectEndUserInvite:
    post:
      tags:
      - Contact
      summary: Reject contact for help center
      description: This API helps reject a particular contact from being added as an end-user to your help center.
      operationId: rejectEndUserInvite
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/rejectEndUserInvite_updateSignupApproval'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/associateAccounts:
    post:
      tags:
      - Contact
      summary: Associate accounts with contact
      description: This API associates multiple accounts with a particular contact.
      operationId: associateAccountsWithContact
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/associateAccountsWithContact'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/associateProducts:
    post:
      tags:
      - Contact
      summary: Associate products with a contact
      description: This API associates products with a contact. Only a maximum of 10 products can be associated with a contact through a single API request.
      operationId: associateProductsWithContact
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/associateProductsWithContact'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/markSpam:
    post:
      tags:
      - Contact
      summary: Mark contact as spam
      description: This API marks contacts as spam.
      operationId: markContactsAsSpam
      requestBody:
        $ref: '#/components/requestBodies/markSpamContactPayload'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/contacts/deleteSpam:
    post:
      tags:
      - Contact
      summary: Delete spam contacts
      description: This API deletes the given spam contacts
      operationId: deleteSpamContacts
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/deleteSpamContacts_deleteContactsRequest'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.DELETE
      x-audience:
      - external-public
  /api/v1/contacts/{contactId}/inviteAsEndUser:
    post:
      tags:
      - Contact
      summary: Invite contact to help center
      description: This API helps invite a particular contact as an end-user to your help center.
      operationId: inviteContactAsEndUser
      parameters:
      - $ref: '#/components/parameters/contactId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/inviteContactAsEndUser'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
      x-audience:
      - external-public
  /api/v1/accounts/{accountId}/contacts:
    get:
      tags:
      - Contact
      summary: List Associated contacts
      description: This API lists the contacts associated with an account
      operationId: getContactsUnderAccount
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - name: sortBy
        in: query
        description: 'Parameter that sorts contacts by one of these attributes: !@firstName,@! !@lastName,@! !@fullName,@! !@phone,@! !@email,@! !@createdTime,@! !@modifiedTime@!'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: 'Parameter that sorts contacts by one of these attributes: !@firstName,@! !@lastName,@! !@fullName,@! !@phone,@! !@email,@! !@createdTime,@! !@modifiedTime@!'
          enum:
          - firstName
          - lastName
          - phone
          - fullName
          - email
          - createdTime
          - modifiedTime
          maxLength: 100
          minLength: 0
      - $ref: '#/components/parameters/isSpam'
      - $ref: '#/components/parameters/accountId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '200':
          $ref: '#/components/responses/contactListViewArrayWithMappingInfo'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
      x-audience:
      - external-public
components:
  responses:
    getStatistics:
      description: getStatistics template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              firstResponseTime:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              openTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              responseTime:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              spamTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              totalTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              customerHappiness:
                $ref: ./Contact.json#/components/schemas/customerHappinessCount
              resolutionTime:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              closedTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              channelWiseCount:
                type:
                - 'null'
                - object
                additionalProperties: false
                patternProperties:
                  ([0-9]+):
                    type:
                    - string
                    - 'null'
                    - integer
                    format: int64
                    pattern: ([0-9]+)
              escalatedTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              onholdTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
              overdueTickets:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
            required:
            - channelWiseCount
            - closedTickets
            - customerHappiness
            - escalatedTickets
            - firstResponseTime
            - onholdTickets
            - openTickets
            - overdueTickets
            - resolutionTime
            - responseTime
            - spamTickets
            - totalTickets
          examples:
            Valid responses Definitions:
              value:
                firstResponseTime: '120000'
                openTickets: '11'
                responseTime: '13150000'
                spamTickets: '0'
                totalTickets: '36'
                customerHappiness:
                  badCount: '50'
                  goodCount: '0'
                  okCount: '50'
                closedTickets: '23'
                resolutionTime: '0'
                channelWiseCount:
                  Web: '12'
                  Forums: '14'
                  Chat: '10'
                onholdTickets: '2'
                escalatedTickets: '0'
                overdueTickets: '0'
    countJson:
      description: countJson template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              count:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
            required:
            - count
          examples:
            Valid responses Definitions:
              value:
                count: '10'
    contactListViewArray:
      description: contactListViewArray template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              data:
                $ref: ./Contact.json#/components/schemas/data
            required:
            - data
          examples:
            Valid responses Definitions:
              value:
                data:
                - lastName: Case
                  secondaryEmail: null
                  mobile: '109000000002003'
                  ownerId: null
                  type: null
                  accountId: '1892000000091433'
                  firstName: Jonathan
                  photoURL: https://desk.zoho.com/api/v1/contacts/1892000000772003/photo
                  isAnonymous: false
                  phone: 1 888 900 9646
                  webUrl: https://desk.zoho.com/support/zylker/ShowHomePage.do#Contacts/dv/d126330fb061247d9ebddaeb9d93ba74750b0284bc703b38
                  createdTime: 1507813910000
                  isEndUser: false
                  zohoCRMContact: null
                  id: '1892000000772003'
                  customerHappiness:
                    badPercentage: '0'
                    okPercentage: '0'
                    goodPercentage: '0'
                  isSpam: false
                  email: case@zylker.com
                - lastName: Jade
                  secondaryEmail: null
                  mobile: null
                  ownerId: null
                  type: null
                  accountId: '1892000000052077'
                  firstName: Christ
                  photoURL: null
                  isAnonymous: false
                  phone: null
                  webUrl: https://desk.zoho.com/support/zylker/ShowHomePage.do#Contacts/dv/d126330fb061247d9ebddaeb9d93ba74750b0284bc703b38
                  createdTime: 1507813910000
                  isEndUser: false
                  zohoCRMContact:
                    id: '1892000000772030'
                    type: contacts_leads
                  id: '1892000000772001'
                  customerHappiness:
                    badPercentage: '22'
                    okPercentage: '31'
                    goodPercentage: '47'
                  isSpam: false
                  email: jade@zylker.com
    contactListViewArrayWithMappingInfo:
      description: contactListViewArrayWithMappingInfo template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
    

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho/refs/heads/main/openapi/zoho-contact-api-openapi.yml