{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/zoominfo/main/json-schema/zoominfo-contact-search-response-schema.json",
  "title": "ContactSearchResponse",
  "description": "A list of contacts that match the criteria specified in the request",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/zoominfo-search-api-openapi.yml#/components/schemas/ContactSearchResponse",
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Contact"
      },
      "description": "The primary data of the document"
    },
    "meta": {
      "allOf": [
        {
          "$ref": "#/$defs/ResultMeta"
        }
      ],
      "description": "Non-standard meta information about the document"
    },
    "links": {
      "allOf": [
        {
          "$ref": "#/$defs/Links"
        }
      ],
      "description": "Links related to the primary data"
    }
  },
  "$defs": {
    "Contact": {
      "type": "object",
      "required": [
        "id",
        "type",
        "attributes"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for the resource"
        },
        "type": {
          "type": "string",
          "description": "The type of the resource",
          "default": "Contact",
          "pattern": "Contact"
        },
        "attributes": {
          "allOf": [
            {
              "$ref": "#/$defs/ContactSearchResponseAttributes"
            }
          ],
          "description": "The attributes defining the resource"
        }
      },
      "description": "ZoomInfo Contact"
    },
    "ContactCompanySearch": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "Unique ZoomInfo identifier for a company."
        },
        "name": {
          "type": "string",
          "description": "Company Name."
        }
      },
      "description": "Contact's company data."
    },
    "ContactSearchResponseAttributes": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "Contact first name."
        },
        "middleName": {
          "type": "string",
          "description": "Contact middle name."
        },
        "lastName": {
          "type": "string",
          "description": "Contact last name."
        },
        "validDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date on which the contact record was last validated."
        },
        "lastUpdatedDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date on which the contact record was last updated."
        },
        "jobTitle": {
          "type": "string",
          "description": "Contact job title at current place of employment."
        },
        "contactAccuracyScore": {
          "type": "number",
          "format": "double",
          "description": "This score indicates the likelihood that a contact is reachable and still employed by the company listed. Minimum score is 75 and maximum is 99."
        },
        "managementLevel": {
          "type": "string",
          "description": "Comma-separated list of contact management levels."
        },
        "school": {
          "type": "string",
          "description": "Get last Education information."
        },
        "hasEmail": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has an email address for the contact."
        },
        "hasSupplementalEmail": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a supplemental email address for the contact."
        },
        "hasDirectPhone": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a direct phone number for the contact."
        },
        "hasMobilePhone": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a mobile phone number for the contact."
        },
        "hasCompanyIndustry": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has company industry for the contact."
        },
        "hasCompanyPhone": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a company phone number for the contact."
        },
        "hasCompanyStreet": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a street address for the contact."
        },
        "hasCompanyState": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a state for the contact."
        },
        "hasCompanyZipCode": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a zip code or postal code for the contact."
        },
        "hasCompanyCountry": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has a country for the contact."
        },
        "hasCompanyRevenue": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has company revenue data for the contact."
        },
        "hasCompanyEmployeeCount": {
          "type": "boolean",
          "description": "Indicates whether ZoomInfo has company headcount data for the contact."
        },
        "directPhoneDoNotCall": {
          "type": "boolean",
          "description": "Contact flagged with do not call for direct phone."
        },
        "mobilePhoneDoNotCall": {
          "type": "boolean",
          "description": "Contact flagged with do not call for mobile phone."
        },
        "managementStatus": {
          "allOf": [
            {
              "$ref": "#/$defs/ManagementStatus"
            }
          ],
          "description": "Management status of the record."
        },
        "company": {
          "allOf": [
            {
              "$ref": "#/$defs/ContactCompanySearch"
            }
          ],
          "description": "Contact's company data for search request."
        }
      },
      "description": "Response attributes for contact search.",
      "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true)"
    },
    "Links": {
      "type": "object",
      "properties": {
        "first": {
          "type": "string",
          "format": "uri",
          "description": "A link to the first page of data"
        },
        "last": {
          "type": "string",
          "format": "uri",
          "description": "A link to the last page of data"
        },
        "prev": {
          "type": "string",
          "format": "uri",
          "description": "A link to the previous page of data"
        },
        "next": {
          "type": "string",
          "format": "uri",
          "description": "A link to the next page of data"
        }
      },
      "description": "Helpful links for fetching different pages of data from the current result set. When using these links, please provide the exact same request body between requests"
    },
    "ManagementStatus": {
      "type": "object",
      "properties": {
        "underManagement": {
          "type": "boolean",
          "description": "Indicates whether record is under management within the contract period."
        },
        "purchaseDate": {
          "type": "string",
          "format": "date-time",
          "description": "Indicates when record was purchased if it is under management."
        }
      },
      "description": "Management status of the record."
    },
    "Page": {
      "type": "object",
      "required": [
        "total",
        "number"
      ],
      "properties": {
        "total": {
          "type": "integer",
          "format": "uint32",
          "description": "The total number of pages within the current result set"
        },
        "number": {
          "type": "integer",
          "format": "uint32",
          "description": "The current page number of the results"
        }
      },
      "description": "Meta information related to the current page and total number of pages"
    },
    "ResultMeta": {
      "type": "object",
      "required": [
        "totalResults",
        "page"
      ],
      "properties": {
        "totalResults": {
          "type": "integer",
          "format": "uint32",
          "description": "The total number of results based on the specified filters"
        },
        "page": {
          "allOf": [
            {
              "$ref": "#/$defs/Page"
            }
          ],
          "description": "Paging information for the current result set"
        }
      },
      "description": "Metadata including paging information and the total number of records in the result set"
    }
  }
}