> For the complete documentation index, see [llms.txt](https://docs.spurtcommerce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.spurtcommerce.com/api-reference/store/customer-profile.md).

# Customer profile

Retrieve and update the signed-in customer profile and read customer permission modules and assignments.

## Get the current customer user profile.

> Get the current customer user profile.\
> \
> \*\*Authentication:\*\* Customer bearer token required.\
> \
> \*\*Feature area:\*\* Customer profile\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/CustomerUserProfileController.ts\`\
> \
> \*\*Request example provenance:\*\* Source handler returns status, message and serialized customer user record.\
> \
> \*\*Response example provenance:\*\* Source handler returns status, message and serialized customer user record.\
> \
> \> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Customer profile","description":"Retrieve and update the signed-in customer profile and read customer permission modules and assignments."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste the JWT access token returned by the corresponding login endpoint."}}},"paths":{"/api/customer-user-profile":{"get":{"operationId":"getApiCustomerUserProfile","summary":"Get the current customer user profile.","description":"Get the current customer user profile.\n\n**Authentication:** Customer bearer token required.\n\n**Feature area:** Customer profile\n\n**Implementation source:** `src/api/store/controllers/CustomerUserProfileController.ts`\n\n**Request example provenance:** Source handler returns status, message and serialized customer user record.\n\n**Response example provenance:** Source handler returns status, message and serialized customer user record.\n\n> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.","tags":["Customer profile"],"responses":{"200":{"description":"Successful response. Source handler returns status, message and serialized customer user record.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","properties":{"userId":{"type":"integer"},"username":{"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"phoneNumber":{"type":"string"},"isActive":{"type":"integer"}},"additionalProperties":true}},"additionalProperties":true}}}}}}}}}
```

## Update customer user profile fields.

> Update customer user profile fields.\
> \
> \*\*Authentication:\*\* Customer bearer token required.\
> \
> \*\*Feature area:\*\* Customer profile\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/CustomerUserProfileController.ts\`\
> \
> \*\*Request example provenance:\*\* Body fields copied from source API comment; response envelope illustrative.\
> \
> \*\*Response example provenance:\*\* Body fields copied from source API comment; response envelope illustrative.\
> \
> \> \*\*Example status: Illustrative.\*\* The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Customer profile","description":"Retrieve and update the signed-in customer profile and read customer permission modules and assignments."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste the JWT access token returned by the corresponding login endpoint."}}},"paths":{"/api/customer-user-profile":{"put":{"operationId":"putApiCustomerUserProfile","summary":"Update customer user profile fields.","description":"Update customer user profile fields.\n\n**Authentication:** Customer bearer token required.\n\n**Feature area:** Customer profile\n\n**Implementation source:** `src/api/store/controllers/CustomerUserProfileController.ts`\n\n**Request example provenance:** Body fields copied from source API comment; response envelope illustrative.\n\n**Response example provenance:** Body fields copied from source API comment; response envelope illustrative.\n\n> **Example status: Illustrative.** The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.","tags":["Customer profile"],"responses":{"200":{"description":"Successful response. Body fields copied from source API comment; response envelope illustrative. Example is illustrative and does not guarantee a stable response contract.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}},"additionalProperties":true}}}}},"requestBody":{"required":false,"description":"Sample request body. Body fields copied from source API comment; response envelope illustrative. Treat this as an illustrative example, not a complete DTO contract.","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"email":{"type":"string"},"phoneNumber":{"type":"string"},"address":{"type":"string"},"avatar":{"type":"string"}},"additionalProperties":true}}}}}}}}
```

## Update the customer profile.

> Update the customer profile.\
> \
> \*\*Authentication:\*\* Customer bearer token required.\
> \
> \*\*Feature area:\*\* Customer profile\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/CustomerController.ts\`\
> \
> \*\*Request example provenance:\*\* Request field names are defined by controller annotations; example response envelope is illustrative.\
> \
> \*\*Response example provenance:\*\* Request field names are defined by controller annotations; example response envelope is illustrative.\
> \
> \> \*\*Example status: Illustrative.\*\* The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Customer profile","description":"Retrieve and update the signed-in customer profile and read customer permission modules and assignments."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste the JWT access token returned by the corresponding login endpoint."}}},"paths":{"/api/customer/edit-profile":{"post":{"operationId":"postApiCustomerEditProfile","summary":"Update the customer profile.","description":"Update the customer profile.\n\n**Authentication:** Customer bearer token required.\n\n**Feature area:** Customer profile\n\n**Implementation source:** `src/api/store/controllers/CustomerController.ts`\n\n**Request example provenance:** Request field names are defined by controller annotations; example response envelope is illustrative.\n\n**Response example provenance:** Request field names are defined by controller annotations; example response envelope is illustrative.\n\n> **Example status: Illustrative.** The example is included to demonstrate request/response shape in the reference UI; verify the owning controller and request DTO before using it as a contract.","tags":["Customer profile"],"responses":{"200":{"description":"Successful response. Request field names are defined by controller annotations; example response envelope is illustrative. Example is illustrative and does not guarantee a stable response contract.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}},"additionalProperties":true}}}}},"requestBody":{"required":false,"description":"Sample request body. Request field names are defined by controller annotations; example response envelope is illustrative. Treat this as an illustrative example, not a complete DTO contract.","content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"password":{"type":"string","writeOnly":true},"emailId":{"type":"string"}},"additionalProperties":true}}}}}}}}
```

## Retrieve the current customer profile.

> Retrieve the current customer profile.\
> \
> \*\*Authentication:\*\* Customer bearer token required.\
> \
> \*\*Feature area:\*\* Customer profile\
> \
> \*\*Implementation source:\*\* \`src/api/store/controllers/CustomerController.ts\`\
> \
> \*\*Request example provenance:\*\* Response fields abbreviated from source @api example.\
> \
> \*\*Response example provenance:\*\* Response fields abbreviated from source @api example.\
> \
> \> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.

```json
{"openapi":"3.0.3","info":{"title":"SpurtCommerce Store API","version":"6.0.0"},"tags":[{"name":"Customer profile","description":"Retrieve and update the signed-in customer profile and read customer permission modules and assignments."}],"servers":[{"url":"https://api.example.com","description":"Replace with your SpurtCommerce API host. Paths include the /api prefix."}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste the JWT access token returned by the corresponding login endpoint."}}},"paths":{"/api/customer/get-profile":{"get":{"operationId":"getApiCustomerGetProfile","summary":"Retrieve the current customer profile.","description":"Retrieve the current customer profile.\n\n**Authentication:** Customer bearer token required.\n\n**Feature area:** Customer profile\n\n**Implementation source:** `src/api/store/controllers/CustomerController.ts`\n\n**Request example provenance:** Response fields abbreviated from source @api example.\n\n**Response example provenance:** Response fields abbreviated from source @api example.\n\n> Example is based on the linked repository source. Replace example identifiers and credentials with values from your tenant.","tags":["Customer profile"],"responses":{"200":{"description":"Successful response. Response fields abbreviated from source @api example.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"status":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"integer"},"firstName":{"type":"string"},"lastName":{"type":"string"},"emailId":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}}}}}}}}
```
