---
title: "Get client profile by email"
method: GET
path: "/api/checkout/pub/profiles"
tags: ["Cart attachments"]
---

# Get client profile by email

`GET /api/checkout/pub/profiles`

Retrieves a client's profile information by providing an email address.

If the response body fields are empty, the following situations may have occurred:

1. There is no client registered with the email address provided in your store, or;
2. Client profile is invalid or incomplete. However, you can use the query parameter `ensureComplete=false` to get incomplete profiles. For more information, see [SmartCheckout - Customer information automatic fill-in](https://help.vtex.com/en/tutorial/smartcheckout-customer-information-automatic-fill-in--2Nuu3xAFzdhIzJIldAdtan).

>⚠️ The authentication of this endpoint can change depending on the customer context. If you are consulting information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.

## Permissions

Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:

| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Checkout | CheckoutResources | **Shopping Cart Full Access** |

You can [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy):

| **Role** | **Resource** | 
| --------------- | ----------------- | 
| Checkout Admin | Shopping Cart Full Access |

>❗ Assigning a [predefined role](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm).

To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).

## Query parameters

- `email` string, required
- `ensureComplete` boolean
- `individualShippingEstimates` boolean

## Headers

- `Content-Type` string, required
- `Accept` string, required

## Response `200`

OK

- object
  - `userProfileId` string — Unique ID associated with the customer profile.
  - `profileProvider` string — Profile provider.
  - `availableAccounts` string[] — Available accounts.
  - `availableAddresses` object[] — Information on each available address.
    - `addressType` string — Address type.
    - `receiverName` string — Name of the receiver.
    - `addressId` string, nullable — Address ID.
    - `isDisposable` boolean — Indicates whether the address is disposable. Addresses marked as `isDisposable = true` are not saved to the shopper's profile when the order is completed, while addresses with `isDisposable = false` definitely belong to the shopper. Behavior by address type: - `giftRegistry`, `pickup`, `search`, and `inStore`: always disposable, as they do not belong to the shopper navigating the cart. - `residential`: may be disposable. Addresses from a complete shopper profile, or entered by an authenticated shopper with a complete profile, are not disposable. All other residential addresses are disposable, including those from first-time purchases, since no complete profile exists yet. - `invoice`: does not have the `isDisposable` flag, since invoice addresses are of type `Address` rather than `ShippingAddress`. In practice, only authenticated shoppers can add invoice attachments to the cart, so they are never treated as disposable. - `commercial`: corresponds to company addresses used in B2B contexts and follows the same logic as residential addresses. When a residential address is marked as disposable and the profile is complete, authentication is required to complete the order. Additionally, when a disposable residential address is used to complete a purchase, saved cards cannot be used.
    - `city` string — City of the address.
    - `state` string — State of the address.
    - `country` string — Country of the address. ISO three-letter code.
    - `street` string — Street of the address.
    - `number` string — Number of the address.
    - `neighborhood` string — Neighborhood of the address.
    - `complement` string, nullable — Complement to the address.
    - `reference` string, nullable — Reference that may help in the location of the address.
    - `geoCoordinates` number[] — Array containing two floats with geocoordinates, first longitude, then latitude.
  - `userProfile` object — Customer profile information.
    - `email` string, nullable — Email address.
    - `firstName` string, nullable — First name.
    - `lastName` string — Last name.
    - `document` string — Document.
    - `documentType` string — Document type.
    - `phone` string — Telephone number.
    - `corporateName` string, nullable — Name of the company. Used for corporate clients.
    - `tradeName` string, nullable — Trade name. Used for corporate clients.
    - `corporateDocument` string, nullable — Document. Used for corporate clients.
    - `stateInscription` string, nullable — State inscription. Used for corporate clients.
    - `corporatePhone` string, nullable — Telephone number. Used for corporate clients.
    - `isCorporate` boolean — Indicates whether the client is corporate.
    - `profileCompleteOnLoading` boolean, nullable — Profile complete when loading.
    - `profileErrorOnLoading` boolean, nullable — Profile error when loading.
    - `customerClass` string, nullable — Customer class.
  - `isComplete` boolean — Indicates whether customer profile is complete.

---

[API](https://skmtc.net/vtex/apis/checkout-api.md) · [All operations](https://skmtc.net/vtex/apis/checkout-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vtex/checkout-api/revisions/fc777477b318/schema)
