x-partner-id because the token identifies the customer.
Authorization: Bearer <access_token>
Get profile
| Method | Endpoint | Auth |
|---|---|---|
GET | /users/me | Customer access token |
curl https://dev-api.keystonecommerce.in/api/v1/users/me \
-H "Authorization: Bearer <access_token>"
{
"statusCode": 200,
"message": "Success",
"data": {
"id": "cmr928qjc000002s6nh2ufmo2",
"partnerId": "<partner_id>",
"phone": "<customer_phone>",
"name": "<customer_name>",
"email": "<customer_email>",
"role": "USER",
"addresses": []
}
}
Update profile
| Method | Endpoint | Auth |
|---|---|---|
PATCH | /users/me | Customer access token |
curl -X PATCH https://dev-api.keystonecommerce.in/api/v1/users/me \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"name":"<customer_name>","email":"<customer_email>"}'
{
"statusCode": 200,
"message": "Success",
"data": {
"id": "cmr928qjc000002s6nh2ufmo2",
"partnerId": "<partner_id>",
"phone": "<customer_phone>",
"name": "<customer_name>",
"email": "<customer_email>",
"role": "USER"
}
}
List addresses
| Method | Endpoint | Auth |
|---|---|---|
GET | /users/me/addresses | Customer access token |
curl https://dev-api.keystonecommerce.in/api/v1/users/me/addresses \
-H "Authorization: Bearer <access_token>"
{
"statusCode": 200,
"message": "Success",
"data": [
{
"id": "cmr928qzz000202s6f59zezkm",
"userId": "cmr928qjc000002s6nh2ufmo2",
"label": "Home",
"line1": "221B MG Road",
"line2": "Near Trinity Metro",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001",
"landmark": "Near Trinity Metro",
"isDefault": true
}
]
}
Create address
| Method | Endpoint | Auth |
|---|---|---|
POST | /users/me/addresses | Customer access token |
curl -X POST https://dev-api.keystonecommerce.in/api/v1/users/me/addresses \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"recipientName": "Aarav Sharma",
"recipientPhone": "9876543210",
"label": "Home",
"line1": "221B MG Road",
"line2": "Near Trinity Metro",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001",
"landmark": "Near Trinity Metro",
"isDefault": true
}'
{
"statusCode": 201,
"message": "Success",
"data": {
"id": "cmr928qzz000202s6f59zezkm",
"recipientName": "Aarav Sharma",
"recipientPhone": "9876543210",
"label": "Home",
"line1": "221B MG Road",
"line2": "Near Trinity Metro",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001",
"landmark": "Near Trinity Metro",
"isDefault": true
}
}
landmark is required and accepts up to 160 characters. alternatePhone must be a 10-digit Indian mobile number when sent. formattedAddress is optional.
Update address
| Method | Endpoint | Auth |
|---|---|---|
PATCH | /users/me/addresses/{addressId} | Customer access token |
curl -X PATCH https://dev-api.keystonecommerce.in/api/v1/users/me/addresses/cmr928qzz000202s6f59zezkm \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"label":"Work","line2":"Floor 4"}'
{
"statusCode": 200,
"message": "Success",
"data": {
"id": "cmr928qzz000202s6f59zezkm",
"label": "Work",
"line1": "221B MG Road",
"line2": "Floor 4",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001",
"landmark": "Near Trinity Metro",
"isDefault": true
}
}
Delete address
| Method | Endpoint | Auth |
|---|---|---|
DELETE | /users/me/addresses/{addressId} | Customer access token |
curl -X DELETE https://dev-api.keystonecommerce.in/api/v1/users/me/addresses/cmr928qzz000202s6f59zezkm \
-H "Authorization: Bearer <access_token>"
{
"statusCode": 200,
"message": "Success",
"data": {
"id": "cmr928qzz000202s6f59zezkm",
"label": "Work",
"line1": "221B MG Road",
"line2": "Floor 4",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001",
"landmark": "Near Trinity Metro",
"isDefault": true
}
}
Accept terms
Record the customer’s acceptance of the current terms version.| Method | Endpoint | Auth |
|---|---|---|
POST | /users/me/terms-acceptance | Customer access token |
curl -X POST https://dev-api.keystonecommerce.in/api/v1/users/me/terms-acceptance \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"version":"2026-07-v1"}'
{
"statusCode": 201,
"message": "Success",
"data": {
"id": "cmr928qjc000002s6nh2ufmo2",
"partnerId": "<partner_id>",
"termsVersion": "2026-07-v1",
"termsAcceptedAt": "2026-08-05T10:00:00.000Z"
}
}