{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/phone-com/main/json-schema/phone-com-extension-contact-schema.json",
  "title": "ExtensionContact",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/phone-com-phoenix-api-by-phone-com-openapi.yml#/components/schemas/ExtensionContact",
  "type": "object",
  "properties": {
    "first_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "First name or given name"
    },
    "middle_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Middle or second name"
    },
    "last_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Last name or surname"
    },
    "nickname": {
      "type": [
        "string",
        "null"
      ],
      "description": "Nickname, or a shortened informal version of the contact's name"
    },
    "organization": {
      "type": [
        "string",
        "null"
      ],
      "description": "Contact organization"
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "Contact title"
    },
    "emails": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "primary",
              "alternate"
            ],
            "description": "Email type, one of: primary or alternate. Default is primary."
          },
          "email": {
            "type": "string",
            "description": "Email address"
          }
        },
        "required": [
          "email"
        ]
      },
      "description": "Array of Contact Email Objects"
    },
    "addresses": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "home",
              "business"
            ],
            "description": "Address type, one of: home or business. Default is home."
          },
          "street": {
            "type": [
              "string",
              "null"
            ],
            "description": "House number and street name, including apartment, suite, etc."
          },
          "city": {
            "type": [
              "string",
              "null"
            ],
            "description": "City"
          },
          "state": {
            "type": [
              "string",
              "null"
            ],
            "description": "State or province"
          },
          "zip": {
            "type": [
              "string",
              "null"
            ],
            "description": "Zip code or postal code"
          },
          "country": {
            "type": [
              "string",
              "null"
            ],
            "description": "Country name"
          }
        }
      },
      "description": "Array of Contact Address Objects"
    },
    "phone_numbers": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Type of phone number, must be one of: home, business, mobile, fax, pager. Default is home."
          },
          "number": {
            "description": "Phone number, as entered. Does not need to be formatted in any particular way if it is a USA phone number. It also accepts partial phone numbers like +1-212. This kind of contact can be used for call routing as part of the call handling rules and represents all the numbers (caller ID) starting with +1-212 (in this case all New York 212 area code numbers)"
          },
          "favorite": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Favorite phone number"
          }
        },
        "required": [
          "number"
        ]
      },
      "description": "Array of Contact Phone Number Objects"
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 1024,
      "description": "Notes"
    },
    "group": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Group name"
        },
        "id": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "description": "Group ID"
        }
      },
      "description": "Contact Group that this contact is filed under"
    }
  }
}