def contact(self, id):
try:<EOL><INDENT>json = self.skype.conn("<STR_LIT:POST>", "<STR_LIT>".format(SkypeConnection.API_USER),<EOL>json={"<STR_LIT>": [id]}, auth=SkypeConnection.Auth.SkypeToken).json()<EOL>contact = SkypeContact.fromRaw(self.skype, json[<NUM_LIT:0>])<EOL>if contact.id not in self.contactIds:<EOL><INDENT>self.contactIds.append(contact.id)<EOL><DEDENT>return self.merge(contact)<EOL><DEDENT>except SkypeApiException as e:<EOL><INDENT>if len(e.args) >= <NUM_LIT:2> and getattr(e.args[<NUM_LIT:1>], "<STR_LIT>", None) == <NUM_LIT>:<EOL><INDENT>return None<EOL><DEDENT>raise<EOL><DEDENT>
Retrieve all details for a specific contact, including fields such as birthday and mood.

Args:
    id (str): user identifier to lookup

Returns:
    SkypeContact: resulting contact object