{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/blackbaud/main/json-schema/blackbaud-constituent-read-schema.json",
  "title": "ConstituentRead",
  "description": "Constituents are the individuals and organizations who support your organization by contributing time, money, and resources. The constituent entity stores information about donors, prospects, volunteers, general supporters, and more.",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/blackbaud-constituent-api-openapi.yml#/components/schemas/ConstituentRead",
  "type": "object",
  "properties": {
    "id": {
      "description": "The immutable system record ID for the constituent. This is not the same as the user-definable constituent identifier, which is stored in the <code>lookup_id</code>.",
      "type": "string"
    },
    "address": {
      "$ref": "#/$defs/AddressRead",
      "description": "The constituent's preferred address."
    },
    "age": {
      "format": "int32",
      "description": "This computed field calculates the constituent's age based on the <code>birthdate</code> property. For individuals only.",
      "type": "integer"
    },
    "birthdate": {
      "$ref": "#/$defs/FuzzyDate",
      "description": "The constituent's birthdate. For individuals only."
    },
    "date_added": {
      "format": "date-time",
      "description": "The date when the constituent was created. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
      "type": "string",
      "x-supports-datetime-offset": true
    },
    "date_modified": {
      "format": "date-time",
      "description": "The date when the constituent was last modified. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
      "type": "string",
      "x-supports-datetime-offset": true
    },
    "deceased": {
      "description": "Indicates whether the constituent is deceased. For individuals only.",
      "type": "boolean"
    },
    "deceased_date": {
      "$ref": "#/$defs/FuzzyDate",
      "description": "The date when the constituent died. For individuals only."
    },
    "email": {
      "$ref": "#/$defs/EmailAddressRead",
      "description": "The constituent's primary email address, or the constituent's first active email address if no active email address is marked as primary."
    },
    "first": {
      "description": "The constituent's first name. For individuals only.",
      "type": "string"
    },
    "former_name": {
      "description": "The constituent's former name. For individuals only.",
      "type": "string"
    },
    "fundraiser_status": {
      "description": "Indicates whether the constituent is a fundraiser. For individuals only.",
      "enum": [
        "Active",
        "Inactive",
        "None"
      ],
      "type": "string"
    },
    "gender": {
      "description": "The constituent's gender. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListGenders\"><b>Gender</b></a> table. This property defaults to <i>unknown</i> if no value is provided. For individuals only.",
      "type": "string"
    },
    "gives_anonymously": {
      "description": "Indicates whether the constituent gives anonymously.",
      "type": "boolean"
    },
    "inactive": {
      "description": "Indicates whether the constituent is inactive.",
      "type": "boolean"
    },
    "last": {
      "description": "The constituent's last name. For individuals only.",
      "type": "string"
    },
    "lookup_id": {
      "description": "The user-defined identifier for the constituent.",
      "type": "string"
    },
    "marital_status": {
      "description": "The constituent's marital status. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListMaritalStatuses\"><b>Marital Status</b></a> table.  For individuals only.",
      "type": "string"
    },
    "middle": {
      "description": "The constituent's middle name. For individuals only.",
      "type": "string"
    },
    "name": {
      "description": "If the constituent's <code>type</code> is <i>Individual</i>, this computed field indicates the full name of the constituent based on the target organization’s display name settings. If the <code>type</code> is <i>Organization</i>, this is the organization's name.",
      "type": "string"
    },
    "online_presence": {
      "$ref": "#/$defs/OnlinePresenceRead",
      "description": "The constituent's primary online presence, or the constituent's first active online presence if no active online presence is marked as primary."
    },
    "phone": {
      "$ref": "#/$defs/PhoneRead",
      "description": "The constituent's primary phone, or the constituent's first active phone if no active phone is marked as primary."
    },
    "preferred_name": {
      "description": "The constituent's preferred name. For individuals only.",
      "type": "string"
    },
    "spouse": {
      "$ref": "#/$defs/SpouseRead",
      "description": "This computed field retrieves information about the constituent's spouse using the constituent's <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListConstituentRelationshipsSingleConstituent\">relationships</a>.  For individuals only."
    },
    "suffix": {
      "description": "The constituent's primary suffix. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListSuffixes\"><b>Suffixes</b></a> table. For individuals only.",
      "type": "string"
    },
    "suffix_2": {
      "description": "The constituent's secondary suffix. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListSuffixes\"><b>Suffixes</b></a> table. For individuals only.",
      "type": "string"
    },
    "title": {
      "description": "The constituent's primary title. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListTitles\"><b>Titles</b></a> table. For individuals only.",
      "type": "string"
    },
    "title_2": {
      "description": "The constituent's secondary title. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListTitles\"><b>Titles</b></a> table. For individuals only.",
      "type": "string"
    },
    "type": {
      "description": "The type of constituent. Available values are <i>Individual</i> and <i>Organization</i>.",
      "enum": [
        "Individual",
        "Organization"
      ],
      "type": "string"
    },
    "birthplace": {
      "description": "The birthplace of the constituent. For individuals only.",
      "type": "string"
    },
    "ethnicity": {
      "description": "The ethnicity of the constituent. For individuals only.",
      "type": "string"
    },
    "income": {
      "description": "The income for the constituent. For individuals only.",
      "type": "string"
    },
    "religion": {
      "description": "The religion of the constituent. For individuals only.",
      "type": "string"
    },
    "industry": {
      "description": "The industry of the constituent. For organizations only.",
      "type": "string"
    },
    "matches_gifts": {
      "description": "Indicates if the constituent matches gifts. For organizations only.",
      "type": "boolean"
    },
    "matching_gift_per_gift_min": {
      "$ref": "#/$defs/Currency",
      "description": "The minimum matching gift per gift for the constituent. For organizations only."
    },
    "matching_gift_per_gift_max": {
      "$ref": "#/$defs/Currency",
      "description": "The maximum matching gift per gift for the constituent. For organizations only."
    },
    "matching_gift_total_min": {
      "$ref": "#/$defs/Currency",
      "description": "The minimum matching gift total for the constituent. For organizations only."
    },
    "matching_gift_total_max": {
      "$ref": "#/$defs/Currency",
      "description": "The maximum matching gift total for the constituent. For organizations only."
    },
    "matching_gift_factor": {
      "format": "double",
      "description": "The matching gift factor for the constituent. For organizations only.",
      "type": "number"
    },
    "matching_gift_notes": {
      "description": "The matching gift notes for the constituent. For organizations only.",
      "type": "string"
    },
    "num_employees": {
      "format": "int32",
      "description": "The number of employees for the constituent. For organizations only.",
      "type": "integer"
    },
    "is_memorial": {
      "description": "Indicates whether the constituent is for honor/memorial.",
      "type": "boolean"
    },
    "is_solicitor": {
      "description": "Indicates whether the constituent is a solicitor.",
      "type": "boolean"
    },
    "no_valid_address": {
      "description": "Indicates whether the constituent does not have a valid address.",
      "type": "boolean"
    },
    "receipt_type": {
      "description": "The receipt type of the constituent.",
      "enum": [
        "One receipt per gift",
        "Consolidated receipts"
      ],
      "type": "string"
    },
    "target": {
      "description": "The target of the constituent.",
      "type": "string"
    },
    "requests_no_email": {
      "description": "Indicates whether the constituent requests no email.",
      "type": "boolean"
    },
    "import_id": {
      "description": "The import id for the constituent.",
      "type": "string"
    },
    "is_constituent": {
      "description": "Flag indicating whether or not this individual or organization is a constituent",
      "type": "boolean"
    },
    "num_subsidiaries": {
      "format": "int32",
      "description": "The number of subsidiaries for the constituent. For organizations only.",
      "type": "integer"
    },
    "parent_corporation_name": {
      "description": "The parent corporation name of the constituent. For organizations only.",
      "type": "string"
    },
    "parent_corporation_id": {
      "format": "int32",
      "description": "The parent corporation identifier of the constituent. For organizations only.",
      "type": "integer"
    }
  },
  "x-display-name": "Constituent",
  "x-display-id": "Constituent_01",
  "$defs": {
    "AddressRead": {
      "description": "Addresses store information about constituent residences and other addresses along with information about where or whether to send mail.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable system record ID of the address.",
          "type": "string"
        },
        "address_lines": {
          "description": "The address lines.",
          "type": "string"
        },
        "city": {
          "description": "The city of the address.",
          "type": "string"
        },
        "constituent_id": {
          "description": "The immutable system record ID of the constituent associated with the address.",
          "type": "string"
        },
        "country": {
          "description": "The country of the address.",
          "type": "string"
        },
        "county": {
          "description": "The county of the address.",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "description": "The date when the address was created. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "date_modified": {
          "format": "date-time",
          "description": "The date when the address was last modified. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "do_not_mail": {
          "description": "Indicates whether the constituent requests not to be contacted at this address.",
          "type": "boolean"
        },
        "end": {
          "format": "date-time",
          "description": "The date when the constituent ceased to reside at this address. Uses <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43</i>.",
          "type": "string",
          "x-supports-datetime-offset": false
        },
        "formatted_address": {
          "description": "This computed field retrieves the formatted address in the configured format of the country.",
          "type": "string"
        },
        "inactive": {
          "description": "This computed field indicates that the address is active if the current date is before any <code>end</code> date.",
          "type": "boolean"
        },
        "postal_code": {
          "description": "The postal code of the address.",
          "type": "string"
        },
        "preferred": {
          "description": "Indicates whether this is the constituent's preferred address.",
          "type": "boolean"
        },
        "seasonal_end": {
          "$ref": "#/$defs/FuzzyDate",
          "description": "The time of the year ceases to reside at this address."
        },
        "seasonal_start": {
          "$ref": "#/$defs/FuzzyDate",
          "description": "The time of year that the constituent begins residing at this address."
        },
        "start": {
          "format": "date-time",
          "description": "The date when the constituent began residing at this address. Uses <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43</i>.",
          "type": "string",
          "x-supports-datetime-offset": false
        },
        "state": {
          "description": "The state of the address.",
          "type": "string"
        },
        "suburb": {
          "description": "The suburb of the address.",
          "type": "string"
        },
        "type": {
          "description": "The address type. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListAddressTypes\"><b>Address Types</b></a> table.",
          "type": "string"
        }
      },
      "x-display-name": "Address",
      "x-display-id": "Address",
      "x-additional-info": "\r\n<p>Some <b>Address</b> entity properties include international address support.</p>\r\n\r\n<div class=\"table-responsive\">\r\n    <table class=\"table table-striped table-hover\">\r\n        <thead>\r\n            <tr>\r\n                <th><strong>Property</strong></th>\r\n                <th><strong>United States</strong></th>\r\n                <th><strong>Canada</strong></th>\r\n                <th><strong>United Kingdom</strong></th>\r\n                <th><strong>Australia</strong></th>\r\n                <th><strong>New Zealand</strong></th>\r\n            </tr>\r\n        </thead>\r\n        <tbody>\r\n            <tr>\r\n                <td>address_lines</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n            </tr>\r\n            <tr>\r\n                <td>city</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i>*</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n            </tr>\r\n            <tr>\r\n                <td>suburb</td>\r\n                <td></td>\r\n                <td></td>\r\n                <td></td>\r\n                <td></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n            </tr>\r\n            <tr>\r\n                <td>state</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i>!</td>\r\n                <td></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td></td>\r\n            </tr>\r\n            <tr>\r\n                <td>postal_code</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n            </tr>\r\n            <tr>\r\n                <td>county</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td></td>\r\n                <td></td>\r\n            </tr>\r\n            <tr>\r\n                <td>country</td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n                <td><i class=\"fa fa-check\"></i></td>\r\n            </tr>\r\n        </tbody>\r\n    </table>\r\n</div>\r\n\r\n<div class=\"footnotes\">\r\n    <p class=\"footnote\">* <b>Australia</b> &mdash; For <code>GET</code> operations, the <code>city</code> property returns city or suburb data. For <code>POST</code> and <code>PATCH</code> operations, you can use either the <code>suburb</code> or <code>city</code> properties, but not both. An error occurs if you provide values for both properties.</p>\r\n    <p class=\"footnote\">! <b>Canada</b> &mdash; Use the <code>state</code> property to track provinces.</p>\r\n</div>"
    },
    "Currency": {
      "description": "For consistency, currency is configured at the organization level. This ensures that all monetary amounts are consistent, regardless of where they are entered or viewed.",
      "type": "object",
      "properties": {
        "value": {
          "format": "double",
          "description": "The monetary value.",
          "type": "number"
        }
      }
    },
    "EmailAddressRead": {
      "description": "Email addresses store information about constituent email accounts and where to send email correspondences for individuals and organizations.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable system record ID of the email address.",
          "type": "string"
        },
        "address": {
          "description": "The email address.",
          "type": "string"
        },
        "constituent_id": {
          "description": "The immutable system record ID of the constituent associated with the email address.",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "description": "The date when the email address was created. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "date_modified": {
          "format": "date-time",
          "description": "The date when the email address was last modified. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "do_not_email": {
          "description": "Indicates whether the constituent requests not to be contacted at this email address.",
          "type": "boolean"
        },
        "inactive": {
          "description": "Indicates whether the email address is inactive.",
          "type": "boolean"
        },
        "primary": {
          "description": "Indicates whether this is the constituent's primary email address.",
          "type": "boolean"
        },
        "type": {
          "description": "The type of email address. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListEmailAddressTypes\"><b>Phone Types</b></a> table.",
          "type": "string"
        }
      },
      "x-display-name": "Email address",
      "x-display-id": "EmailAddress"
    },
    "FuzzyDate": {
      "description": "Fuzzy dates provide a versatile date type to create partial dates such as February 9 (with no year indicated).",
      "type": "object",
      "properties": {
        "d": {
          "format": "int32",
          "description": "The day in the fuzzy date.",
          "type": "integer"
        },
        "m": {
          "format": "int32",
          "description": "The month in the fuzzy date.",
          "type": "integer"
        },
        "y": {
          "format": "int32",
          "description": "The year in the fuzzy date.",
          "type": "integer"
        }
      },
      "x-display-name": "Fuzzy date",
      "x-display-id": "FuzzyDate"
    },
    "OnlinePresenceRead": {
      "description": "Online presence entities store a constituent’s social media accounts, websites, and other means of reaching out or gaining more information about the constituent.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable system record ID of the online presence.",
          "type": "string"
        },
        "address": {
          "description": "The web address for the online presence.",
          "type": "string"
        },
        "constituent_id": {
          "description": "The immutable system record ID of the constituent associated with the online presence.",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "description": "The date when the online presence was created. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "date_modified": {
          "format": "date-time",
          "description": "The date when the online presence was last modified. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "inactive": {
          "description": "Indicates whether the online presence is inactive.",
          "type": "boolean"
        },
        "primary": {
          "description": "Indicates whether this is the constituent's primary online presence.",
          "type": "boolean"
        },
        "type": {
          "description": "The online presence type. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListOnlinePresenceTypes\"><b>Phone Types</b></a> table.",
          "type": "string"
        }
      },
      "x-display-name": "Online presence",
      "x-display-id": "OnlinePresence"
    },
    "PhoneRead": {
      "description": "Phones store information about constituent phone numbers and where to call individuals and organizations.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable system record ID of the phone.",
          "type": "string"
        },
        "constituent_id": {
          "description": "The immutable system record ID of the constituent associated with the phone.",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "description": "The date when the phone was created. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "date_modified": {
          "format": "date-time",
          "description": "The date when the phone was last modified. Includes an offset from UTC in <a href=\"https://tools.ietf.org/html/rfc3339\">ISO-8601 format: </a><i>1969-11-21T10:29:43-04:00</i>.",
          "type": "string",
          "x-supports-datetime-offset": true
        },
        "do_not_call": {
          "description": "Indicates whether the constituent requests not to be contacted at this number.",
          "type": "boolean"
        },
        "inactive": {
          "description": "Indicates whether the phone is inactive.",
          "type": "boolean"
        },
        "number": {
          "description": "The phone number.",
          "type": "string"
        },
        "primary": {
          "description": "Indicates whether this is the constituent's primary phone.",
          "type": "boolean"
        },
        "type": {
          "description": "The phone type. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListPhoneTypes\"><b>Phone Types</b></a> table.",
          "type": "string"
        }
      },
      "x-display-name": "Phone",
      "x-display-id": "Phone"
    },
    "SpouseRead": {
      "description": "The spouse entity describes spouses for individual constituents.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable system record ID of the spouse.",
          "type": "string"
        },
        "first": {
          "description": "The spouse's first name.",
          "type": "string"
        },
        "last": {
          "description": "The spouse's last name.",
          "type": "string"
        },
        "is_head_of_household": {
          "description": "Indicates whether the spouse is the head household. Only applies to constituent spouses.",
          "type": "boolean"
        }
      },
      "x-display-name": "Spouse",
      "x-display-id": "Spouse"
    }
  }
}