# `api.contacts.update_details` > `PUT /contacts/{contactId}/editdetails` — ACPortal **Python** ```python api.contacts.update_details(contact_id: str, *, data: ContactEditRequest | dict, franchisee_id: str | None = None) -> None ``` **CLI** ```bash ab contacts update_details [--data ...] [--franchisee-id ...] ``` PUT /contacts/{contactId}/editdetails. Args: contact_id: Contact identifier. data: Contact edit payload with name, email, phone, addresses. Accepts a :class:`ContactEditRequest` instance or a dict. franchisee_id: Franchisee UUID filter (query param). Request model: :class:`ContactEditRequest` Params model: :class:`ContactEditParams` ## Request body — `ContactEditRequest` | Field | Type | Required | Description | |---|---|---|---| | `firstName` | `Optional[str]` | no | First name | | `lastName` | `Optional[str]` | no | Last name | | `email` | `Optional[str]` | no | Email address | | `phone` | `Optional[str]` | no | Phone number | | `addresses` | `Optional[list[dict]]` | no | Contact addresses | ## Query parameters — `ContactEditParams` | Field | Type | Required | Description | |---|---|---|---| | `franchiseeId` | `Optional[str]` | no | Franchisee UUID filter | ## Response No response body. --- [← Back to api.contacts](../contacts.md)