## Get member `members.retrieve(strmember_id) -> MemberRetrieveResponse` **get** `/v1/members/{member_id}` Retrieves a member's profile by ID — identity, demographics, address, contact details, tobacco status, and profile status. Access is scoped to the authenticated principal; a member not visible to the caller returns a 404. ### Parameters - `member_id: str` Unique member identifier (mbr_*) ### Returns - `class MemberRetrieveResponse: …` Response containing a single member resource. - `data: Data` A member's profile: identity, contact details, address, demographics, and onboarding status. - `id: str` Unique member identifier with 'mbr_' prefix - `age: int` Member's age in years, derived from date of birth - `date_of_birth: date` Date of birth (YYYY-MM-DD) - `first_name: str` Member's legal first name - `last_name: str` Member's legal last name - `name: str` Member's full legal name - `status: Literal["onboarded", "pending_onboarding"]` Member profile status (onboarded or pending onboarding) - `"onboarded"` - `"pending_onboarding"` - `address: Optional[DataAddress]` Member's residential address - `address_line_1: str` Primary street address - `city: str` City name - `state: Literal["AL", "AK", "AZ", 59 more]` * `AL` - AL * `AK` - AK * `AZ` - AZ * `AR` - AR * `CA` - CA * `CO` - CO * `CT` - CT * `DC` - DC * `DE` - DE * `FL` - FL * `GA` - GA * `HI` - HI * `ID` - ID * `IL` - IL * `IN` - IN * `IA` - IA * `KS` - KS * `KY` - KY * `LA` - LA * `ME` - ME * `MD` - MD * `MA` - MA * `MI` - MI * `MN` - MN * `MS` - MS * `MO` - MO * `MT` - MT * `NE` - NE * `NV` - NV * `NH` - NH * `NJ` - NJ * `NM` - NM * `NY` - NY * `NC` - NC * `ND` - ND * `OH` - OH * `OK` - OK * `OR` - OR * `PA` - PA * `RI` - RI * `SC` - SC * `SD` - SD * `TN` - TN * `TX` - TX * `UT` - UT * `VT` - VT * `VA` - VA * `WA` - WA * `WI` - WI * `WV` - WV * `WY` - WY * `PR` - PR * `GU` - GU * `AS` - AS * `VI` - VI * `MP` - MP * `MH` - MH * `PW` - PW * `FM` - FM * `AE` - AE * `AA` - AA * `AP` - AP - `"AL"` - `"AK"` - `"AZ"` - `"AR"` - `"CA"` - `"CO"` - `"CT"` - `"DC"` - `"DE"` - `"FL"` - `"GA"` - `"HI"` - `"ID"` - `"IL"` - `"IN"` - `"IA"` - `"KS"` - `"KY"` - `"LA"` - `"ME"` - `"MD"` - `"MA"` - `"MI"` - `"MN"` - `"MS"` - `"MO"` - `"MT"` - `"NE"` - `"NV"` - `"NH"` - `"NJ"` - `"NM"` - `"NY"` - `"NC"` - `"ND"` - `"OH"` - `"OK"` - `"OR"` - `"PA"` - `"RI"` - `"SC"` - `"SD"` - `"TN"` - `"TX"` - `"UT"` - `"VT"` - `"VA"` - `"WA"` - `"WI"` - `"WV"` - `"WY"` - `"PR"` - `"GU"` - `"AS"` - `"VI"` - `"MP"` - `"MH"` - `"PW"` - `"FM"` - `"AE"` - `"AA"` - `"AP"` - `zipcode: str` ZIP code (5 or 9 digit) - `address_line_2: Optional[str]` Secondary street address (apt, suite, etc.) - `email: Optional[str]` Email address - `gender: Optional[Literal["Male", "Female", "Transgender", 2 more]]` * `Male` - Male * `Female` - Female * `Transgender` - Transgender * `Non-binary` - Non Binary * `Prefer not to respond` - Prefer Not To Respond - `"Male"` - `"Female"` - `"Transgender"` - `"Non-binary"` - `"Prefer not to respond"` - `marital_status: Optional[Literal["Single", "Married"]]` * `Single` - Single * `Married` - Married - `"Single"` - `"Married"` - `middle_name: Optional[str]` Member's legal middle name - `phone: Optional[str]` Phone number (10-digit US domestic string) - `preferred_language: Optional[Literal["en", "es", "zh", 3 more]]` * `en` - English * `es` - Spanish * `zh` - Chinese * `ru` - Russian * `sw` - Swahili * `th` - Thai - `"en"` - `"es"` - `"zh"` - `"ru"` - `"sw"` - `"th"` - `sex_at_birth: Optional[Literal["Male", "Female", "Other", "Unknown"]]` * `Male` - Male * `Female` - Female * `Other` - Other * `Unknown` - Unknown - `"Male"` - `"Female"` - `"Other"` - `"Unknown"` - `suffix: Optional[Literal["Sr", "Jr", "I", 4 more]]` * `Sr` - Sr * `Jr` - Jr * `I` - I * `II` - II * `III` - III * `IV` - IV * `V` - V - `"Sr"` - `"Jr"` - `"I"` - `"II"` - `"III"` - `"IV"` - `"V"` - `tobacco_status: Optional[bool]` Whether the member uses tobacco, if known ### Example ```python import os from vitable_connect import VitableConnect client = VitableConnect( api_key=os.environ.get("VITABLE_CONNECT_API_KEY"), # This is the default and can be omitted ) member = client.members.retrieve( "mbr_abc123def456", ) print(member.data) ``` #### Response ```json { "data": { "id": "mbr_abc123def456", "name": "Jane Doe", "first_name": "Jane", "middle_name": null, "last_name": "Doe", "suffix": null, "email": "jane.doe@example.com", "phone": "4155550100", "address": { "address_line_1": "123 Main Street", "address_line_2": "Apt 4B", "city": "San Francisco", "state": "CA", "zipcode": "94102" }, "date_of_birth": "1990-04-12", "age": 36, "sex_at_birth": "Female", "gender": "Female", "preferred_language": "en", "tobacco_status": false, "status": "onboarded" } } ```