# customerCreate Creates a new customer account and returns an access token. ## Authentication > **Authentication Required**: Secret API key with scope `customer:write` ## Mutation Structure ```graphql mutation { customerCreate(input: CustomerCreateInput!) { customer { id email firstName lastName } customerAccessToken { accessToken expiresAt } customerUserErrors { field message } } } ``` ## Input Arguments | Argument | Type | Required | Description | |----------|------|----------|-------------| | input | CustomerCreateInput | Yes | The input for creating a new customer | ## Return Type [CustomerCreatePayload](/reference/storefront/v1/objects/customer-create-payload) - Payload returned by the customerCreate mutation. Contains the created customer, access token for authentication, and any validation errors that occurred during the operation. ## Example ```graphql mutation { customerCreate(input: { email: "john.doe@example.com" password: "SecurePassword123!" firstName: "John" lastName: "Doe" }) { customer { id email firstName lastName } customerAccessToken { accessToken expiresAt } customerUserErrors { field message } } } ``` ## Related Types - [CustomerCreatePayload](/reference/storefront/v1/objects/customer-create-payload) - [CustomerCreateInput](/reference/storefront/v1/inputs/customer-create-input)