Profiles reference

API class

class gravify.ProfileAPI(*, api_key: str | None = None, api_base_url: str = 'https://api.gravatar.com/v3')[source]

Client for interacting with the Gravatar API.

__init__(*, api_key: str | None = None, api_base_url: str = 'https://api.gravatar.com/v3') None[source]

Initialize the Gravatar API client.

Parameters:
  • api_key – The API key to use for authentication.

  • api_base_url – The base URL for the Gravatar API.

get_profile(email: str) Profile[source]

Fetch the Gravatar profile for a given email address.

Parameters:

email – The email address to fetch the profile for.

Returns:

A Profile object containing the Gravatar profile data.

Data models

Gravatar API data models.

pydantic model gravify.profiles.models.ContactInfo[source]

Contact information for a Gravatar user.

Show JSON schema
{
   "title": "ContactInfo",
   "description": "Contact information for a Gravatar user.",
   "type": "object",
   "properties": {
      "home_phone": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Home Phone"
      },
      "work_phone": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Work Phone"
      },
      "cell_phone": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Cell Phone"
      },
      "email": {
         "anyOf": [
            {
               "format": "email",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Email"
      },
      "contact_form": {
         "anyOf": [
            {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Contact Form"
      },
      "calendar": {
         "anyOf": [
            {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Calendar"
      }
   }
}

Fields:
field calendar: HttpUrl | None = None
field cell_phone: str | None = None
field contact_form: HttpUrl | None = None
field email: EmailStr | None = None
field home_phone: str | None = None
field work_phone: str | None = None
pydantic model gravify.profiles.models.CryptoWalletAddress[source]

A cryptocurrency wallet address associated with a Gravatar user.

Show JSON schema
{
   "title": "CryptoWalletAddress",
   "description": "A cryptocurrency wallet address associated with a Gravatar user.",
   "type": "object",
   "properties": {
      "label": {
         "title": "Label",
         "type": "string"
      },
      "address": {
         "title": "Address",
         "type": "string"
      }
   },
   "required": [
      "label",
      "address"
   ]
}

Fields:
field address: str [Required]
field label: str [Required]
pydantic model gravify.profiles.models.GalleryImage[source]

An image in a Gravatar user’s gallery.

Show JSON schema
{
   "title": "GalleryImage",
   "description": "An image in a Gravatar user's gallery.",
   "type": "object",
   "properties": {
      "url": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Url",
         "type": "string"
      },
      "alt_text": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Alt Text"
      }
   },
   "required": [
      "url"
   ]
}

Fields:
field alt_text: str | None = None
field url: HttpUrl [Required]
pydantic model gravify.profiles.models.Interest[source]

An interest of a Gravatar user.

Show JSON schema
{
   "title": "Interest",
   "description": "An interest of a Gravatar user.",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "type": "integer"
      },
      "name": {
         "title": "Name",
         "type": "string"
      },
      "slug": {
         "title": "Slug",
         "type": "string"
      }
   },
   "required": [
      "id",
      "name",
      "slug"
   ]
}

Fields:
field id: int [Required]
field name: str [Required]
field slug: str [Required]
pydantic model gravify.profiles.models.Language[source]

A language spoken by a Gravatar user.

Show JSON schema
{
   "title": "Language",
   "description": "A language spoken by a Gravatar user.",
   "type": "object",
   "properties": {
      "code": {
         "title": "Code",
         "type": "string"
      },
      "name": {
         "title": "Name",
         "type": "string"
      },
      "is_primary": {
         "title": "Is Primary",
         "type": "boolean"
      },
      "order": {
         "title": "Order",
         "type": "integer"
      }
   },
   "required": [
      "code",
      "name",
      "is_primary",
      "order"
   ]
}

Fields:
field code: str [Required]
field is_primary: bool [Required]
field name: str [Required]
field order: int [Required]

A link associated with a Gravatar profile.

Show JSON schema
{
   "title": "Link",
   "description": "A link associated with a Gravatar profile.",
   "type": "object",
   "properties": {
      "label": {
         "title": "Label",
         "type": "string"
      },
      "url": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Url",
         "type": "string"
      }
   },
   "required": [
      "label",
      "url"
   ]
}

Fields:
field label: str [Required]
field url: HttpUrl [Required]
pydantic model gravify.profiles.models.PaymentInformation[source]

Payment information for a Gravatar user.

Show JSON schema
{
   "title": "PaymentInformation",
   "description": "Payment information for a Gravatar user.",
   "type": "object",
   "properties": {
      "links": {
         "items": {
            "$ref": "#/$defs/Link"
         },
         "title": "Links",
         "type": "array"
      },
      "crypto_wallets": {
         "items": {
            "$ref": "#/$defs/CryptoWalletAddress"
         },
         "title": "Crypto Wallets",
         "type": "array"
      }
   },
   "$defs": {
      "CryptoWalletAddress": {
         "description": "A cryptocurrency wallet address associated with a Gravatar user.",
         "properties": {
            "label": {
               "title": "Label",
               "type": "string"
            },
            "address": {
               "title": "Address",
               "type": "string"
            }
         },
         "required": [
            "label",
            "address"
         ],
         "title": "CryptoWalletAddress",
         "type": "object"
      },
      "Link": {
         "description": "A link associated with a Gravatar profile.",
         "properties": {
            "label": {
               "title": "Label",
               "type": "string"
            },
            "url": {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Url",
               "type": "string"
            }
         },
         "required": [
            "label",
            "url"
         ],
         "title": "Link",
         "type": "object"
      }
   },
   "required": [
      "links",
      "crypto_wallets"
   ]
}

Fields:
field crypto_wallets: list[CryptoWalletAddress] [Required]
pydantic model gravify.profiles.models.Profile[source]

A Gravatar profile.

Show JSON schema
{
   "title": "Profile",
   "description": "A Gravatar profile.",
   "type": "object",
   "properties": {
      "hash": {
         "title": "Hash",
         "type": "string"
      },
      "display_name": {
         "title": "Display Name",
         "type": "string"
      },
      "profile_url": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Profile Url",
         "type": "string"
      },
      "avatar_url": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Avatar Url",
         "type": "string"
      },
      "avatar_alt_text": {
         "title": "Avatar Alt Text",
         "type": "string"
      },
      "location": {
         "title": "Location",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "type": "string"
      },
      "job_title": {
         "title": "Job Title",
         "type": "string"
      },
      "company": {
         "title": "Company",
         "type": "string"
      },
      "verified_accounts": {
         "items": {
            "$ref": "#/$defs/VerifiedAccount"
         },
         "title": "Verified Accounts",
         "type": "array"
      },
      "pronunciation": {
         "title": "Pronunciation",
         "type": "string"
      },
      "pronouns": {
         "title": "Pronouns",
         "type": "string"
      },
      "timezone": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Timezone"
      },
      "languages": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Language"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Languages"
      },
      "first_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "First Name"
      },
      "last_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Last Name"
      },
      "is_organization": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Is Organization"
      },
      "header_image": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Header Image"
      },
      "background_color": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Background Color"
      },
      "links": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Link"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Links"
      },
      "interests": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Interest"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Interests"
      },
      "payments": {
         "anyOf": [
            {
               "$ref": "#/$defs/PaymentInformation"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "contact_info": {
         "anyOf": [
            {
               "$ref": "#/$defs/ContactInfo"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "gallery": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/GalleryImage"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Gallery"
      },
      "number_verified_accounts": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Number Verified Accounts"
      },
      "last_profile_edit": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Last Profile Edit"
      },
      "registration_date": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Registration Date"
      },
      "section_visibility": {
         "anyOf": [
            {
               "$ref": "#/$defs/SectionVisibility"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      }
   },
   "$defs": {
      "ContactInfo": {
         "description": "Contact information for a Gravatar user.",
         "properties": {
            "home_phone": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Home Phone"
            },
            "work_phone": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Work Phone"
            },
            "cell_phone": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Cell Phone"
            },
            "email": {
               "anyOf": [
                  {
                     "format": "email",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Email"
            },
            "contact_form": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Contact Form"
            },
            "calendar": {
               "anyOf": [
                  {
                     "format": "uri",
                     "maxLength": 2083,
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Calendar"
            }
         },
         "title": "ContactInfo",
         "type": "object"
      },
      "CryptoWalletAddress": {
         "description": "A cryptocurrency wallet address associated with a Gravatar user.",
         "properties": {
            "label": {
               "title": "Label",
               "type": "string"
            },
            "address": {
               "title": "Address",
               "type": "string"
            }
         },
         "required": [
            "label",
            "address"
         ],
         "title": "CryptoWalletAddress",
         "type": "object"
      },
      "GalleryImage": {
         "description": "An image in a Gravatar user's gallery.",
         "properties": {
            "url": {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Url",
               "type": "string"
            },
            "alt_text": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Alt Text"
            }
         },
         "required": [
            "url"
         ],
         "title": "GalleryImage",
         "type": "object"
      },
      "Interest": {
         "description": "An interest of a Gravatar user.",
         "properties": {
            "id": {
               "title": "Id",
               "type": "integer"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "slug": {
               "title": "Slug",
               "type": "string"
            }
         },
         "required": [
            "id",
            "name",
            "slug"
         ],
         "title": "Interest",
         "type": "object"
      },
      "Language": {
         "description": "A language spoken by a Gravatar user.",
         "properties": {
            "code": {
               "title": "Code",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "is_primary": {
               "title": "Is Primary",
               "type": "boolean"
            },
            "order": {
               "title": "Order",
               "type": "integer"
            }
         },
         "required": [
            "code",
            "name",
            "is_primary",
            "order"
         ],
         "title": "Language",
         "type": "object"
      },
      "Link": {
         "description": "A link associated with a Gravatar profile.",
         "properties": {
            "label": {
               "title": "Label",
               "type": "string"
            },
            "url": {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Url",
               "type": "string"
            }
         },
         "required": [
            "label",
            "url"
         ],
         "title": "Link",
         "type": "object"
      },
      "PaymentInformation": {
         "description": "Payment information for a Gravatar user.",
         "properties": {
            "links": {
               "items": {
                  "$ref": "#/$defs/Link"
               },
               "title": "Links",
               "type": "array"
            },
            "crypto_wallets": {
               "items": {
                  "$ref": "#/$defs/CryptoWalletAddress"
               },
               "title": "Crypto Wallets",
               "type": "array"
            }
         },
         "required": [
            "links",
            "crypto_wallets"
         ],
         "title": "PaymentInformation",
         "type": "object"
      },
      "SectionVisibility": {
         "description": "Visibility settings for sections of a Gravatar profile.",
         "properties": {
            "hidden_contact_info": {
               "title": "Hidden Contact Info",
               "type": "boolean"
            },
            "hidden_feeds": {
               "title": "Hidden Feeds",
               "type": "boolean"
            },
            "hidden_links": {
               "title": "Hidden Links",
               "type": "boolean"
            },
            "hidden_interests": {
               "title": "Hidden Interests",
               "type": "boolean"
            },
            "hidden_wallet": {
               "title": "Hidden Wallet",
               "type": "boolean"
            },
            "hidden_photos": {
               "title": "Hidden Photos",
               "type": "boolean"
            },
            "hidden_verified_accounts": {
               "title": "Hidden Verified Accounts",
               "type": "boolean"
            }
         },
         "required": [
            "hidden_contact_info",
            "hidden_feeds",
            "hidden_links",
            "hidden_interests",
            "hidden_wallet",
            "hidden_photos",
            "hidden_verified_accounts"
         ],
         "title": "SectionVisibility",
         "type": "object"
      },
      "VerifiedAccount": {
         "description": "A verified account associated with a Gravatar profile.",
         "properties": {
            "service_type": {
               "title": "Service Type",
               "type": "string"
            },
            "service_label": {
               "title": "Service Label",
               "type": "string"
            },
            "service_icon": {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Service Icon",
               "type": "string"
            },
            "url": {
               "format": "uri",
               "maxLength": 2083,
               "minLength": 1,
               "title": "Url",
               "type": "string"
            },
            "is_hidden": {
               "title": "Is Hidden",
               "type": "boolean"
            }
         },
         "required": [
            "service_type",
            "service_label",
            "service_icon",
            "url",
            "is_hidden"
         ],
         "title": "VerifiedAccount",
         "type": "object"
      }
   },
   "required": [
      "hash",
      "display_name",
      "profile_url",
      "avatar_url",
      "avatar_alt_text",
      "location",
      "description",
      "job_title",
      "company",
      "verified_accounts",
      "pronunciation",
      "pronouns"
   ]
}

Fields:
field avatar_alt_text: str [Required]
field avatar_url: HttpUrl [Required]
field background_color: str | None = None
field company: str [Required]
field contact_info: ContactInfo | None = None
field description: str [Required]
field display_name: str [Required]
field first_name: str | None = None
field gallery: list[GalleryImage] | None = None
field hash: str [Required]
field header_image: str | None = None
field interests: list[Interest] | None = None
field is_organization: bool | None = None
field job_title: str [Required]
field languages: list[Language] | None = None
field last_name: str | None = None
field last_profile_edit: datetime | None = None
field location: str [Required]
field number_verified_accounts: int | None = None
field payments: PaymentInformation | None = None
field profile_url: HttpUrl [Required]
field pronouns: str [Required]
field pronunciation: str [Required]
field registration_date: datetime | None = None
field section_visibility: SectionVisibility | None = None
field timezone: str | None = None
field verified_accounts: list[VerifiedAccount] [Required]
pydantic model gravify.profiles.models.SectionVisibility[source]

Visibility settings for sections of a Gravatar profile.

Show JSON schema
{
   "title": "SectionVisibility",
   "description": "Visibility settings for sections of a Gravatar profile.",
   "type": "object",
   "properties": {
      "hidden_contact_info": {
         "title": "Hidden Contact Info",
         "type": "boolean"
      },
      "hidden_feeds": {
         "title": "Hidden Feeds",
         "type": "boolean"
      },
      "hidden_links": {
         "title": "Hidden Links",
         "type": "boolean"
      },
      "hidden_interests": {
         "title": "Hidden Interests",
         "type": "boolean"
      },
      "hidden_wallet": {
         "title": "Hidden Wallet",
         "type": "boolean"
      },
      "hidden_photos": {
         "title": "Hidden Photos",
         "type": "boolean"
      },
      "hidden_verified_accounts": {
         "title": "Hidden Verified Accounts",
         "type": "boolean"
      }
   },
   "required": [
      "hidden_contact_info",
      "hidden_feeds",
      "hidden_links",
      "hidden_interests",
      "hidden_wallet",
      "hidden_photos",
      "hidden_verified_accounts"
   ]
}

Fields:
field hidden_contact_info: bool [Required]
field hidden_feeds: bool [Required]
field hidden_interests: bool [Required]
field hidden_photos: bool [Required]
field hidden_verified_accounts: bool [Required]
field hidden_wallet: bool [Required]
pydantic model gravify.profiles.models.VerifiedAccount[source]

A verified account associated with a Gravatar profile.

Show JSON schema
{
   "title": "VerifiedAccount",
   "description": "A verified account associated with a Gravatar profile.",
   "type": "object",
   "properties": {
      "service_type": {
         "title": "Service Type",
         "type": "string"
      },
      "service_label": {
         "title": "Service Label",
         "type": "string"
      },
      "service_icon": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Service Icon",
         "type": "string"
      },
      "url": {
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Url",
         "type": "string"
      },
      "is_hidden": {
         "title": "Is Hidden",
         "type": "boolean"
      }
   },
   "required": [
      "service_type",
      "service_label",
      "service_icon",
      "url",
      "is_hidden"
   ]
}

Fields:
field is_hidden: bool [Required]
field service_icon: HttpUrl [Required]
field service_label: str [Required]
field service_type: str [Required]
field url: HttpUrl [Required]