---
title: customerAccessTokenCreate - Storefront API
description: >-
  For legacy customer accounts only.


  Creates a
  [`CustomerAccessToken`](/docs/api/storefront/2026-10/objects/CustomerAccessToken)
  using the customer's email and password. The access token is required to read
  or modify the

  [`Customer`](/docs/api/storefront/2026-10/objects/Customer)

  object, such as updating account information or managing addresses.


  The token has an expiration time. Use
  [`customerAccessTokenRenew`](/docs/api/storefront/2026-10/mutations/customerAccessTokenRenew)

  to extend the token before it expires, or create a new token if it's already
  expired.


  > Caution:

  > This mutation handles customer credentials. Always transmit requests over
  HTTPS and never log or expose the password.
api_version: 2026-10
source_url:
  html: >-
    https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate
  md: >-
    https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate.md
api_name: storefront
api_type: graphql
type: mutation
---

# customer​Access​Token​Create

mutation

Requires `unauthenticated_write_customers` access scope.

For legacy customer accounts only.

Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/2026-10/objects/CustomerAccessToken) using the customer's email and password. The access token is required to read or modify the [`Customer`](https://shopify.dev/docs/api/storefront/2026-10/objects/Customer) object, such as updating account information or managing addresses.

The token has an expiration time. Use [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/2026-10/mutations/customerAccessTokenRenew) to extend the token before it expires, or create a new token if it's already expired.

***

**Caution:** This mutation handles customer credentials. Always transmit requests over HTTPS and never log or expose the password.

***

## Arguments

* input

  [Customer​Access​Token​Create​Input!](https://shopify.dev/docs/api/storefront/latest/input-objects/CustomerAccessTokenCreateInput)

  required

  The fields used to create a customer access token.

***

## Customer​Access​Token​Create​Payload returns

* customer​Access​Token

  [Customer​Access​Token](https://shopify.dev/docs/api/storefront/latest/objects/CustomerAccessToken)

  The newly created customer access token object.

* customer​User​Errors

  [\[Customer​User​Error!\]!](https://shopify.dev/docs/api/storefront/latest/objects/CustomerUserError)

  non-null

  The list of errors that occurred from executing the mutation.

* user​Errors

  [\[User​Error!\]!](https://shopify.dev/docs/api/storefront/latest/objects/UserError)

  non-nullDeprecated

  The list of errors that occurred from executing the mutation.

***

## Examples

* ### Create a customer access token

  #### Description

  Creates a unique customer access token that's required to read and modify the \[Customer]\(https://shopify.dev/api/storefront/latest/objects/customer) object.

  #### Query

  ```graphql
  mutation customerAccessTokenCreate {
    customerAccessTokenCreate(input: {email: "ghaida@example.com", password: "7dx2gx2Z"}) {
      customerAccessToken {
        accessToken
      }
      customerUserErrors {
        message
      }
    }
  }
  ```

  #### cURL

  ```bash
  curl -X POST \
  https://your-development-store.myshopify.com/api/2026-10/graphql.json \
  -H 'Content-Type: application/json' \
  -H 'X-Shopify-Storefront-Access-Token: {storefront_access_token}' \
  -d '{
  "query": "mutation customerAccessTokenCreate { customerAccessTokenCreate(input: {email: \"ghaida@example.com\", password: \"7dx2gx2Z\"}) { customerAccessToken { accessToken } customerUserErrors { message } } }"
  }'
  ```

  #### React Router

  ```javascript
  import { unauthenticated } from "../shopify.server";

  export const loader = async () => {
    const { storefront } = await unauthenticated.storefront(
      'your-development-store.myshopify.com'
    );
    const response = await storefront.graphql(
      `#graphql
    mutation customerAccessTokenCreate {
      customerAccessTokenCreate(input: {email: "ghaida@example.com", password: "7dx2gx2Z"}) {
        customerAccessToken {
          accessToken
        }
        customerUserErrors {
          message
        }
      }
    }`,
    );
    const json = await response.json();
    return json.data;
  }
  ```

  #### Node.js

  ```javascript
  const client = new shopify.clients.Storefront({
    domain: 'your-development-store.myshopify.com',
    storefrontAccessToken,
  });
  const data = await client.query({
    data: `mutation customerAccessTokenCreate {
      customerAccessTokenCreate(input: {email: "ghaida@example.com", password: "7dx2gx2Z"}) {
        customerAccessToken {
          accessToken
        }
        customerUserErrors {
          message
        }
      }
    }`,
  });
  ```

  #### Response

  ```json
  {
    "customerAccessTokenCreate": {
      "customerAccessToken": {
        "accessToken": "ghaidas_token"
      },
      "customerUserErrors": []
    }
  }
  ```

* ### Get a customer by customer access token

  #### Description

  Retrieves the customer with the associated access token and returns the customer fields specified in the query.

  #### Query

  ```graphql
  query {
    customer(customerAccessToken: "bobs_token") {
      id
      firstName
      lastName
      acceptsMarketing
      email
      phone
    }
  }
  ```

  #### cURL

  ```bash
  curl -X POST \
  https://your-development-store.myshopify.com/api/2026-10/graphql.json \
  -H 'Content-Type: application/json' \
  -H 'X-Shopify-Storefront-Access-Token: {storefront_access_token}' \
  -d '{
  "query": "query { customer(customerAccessToken: \"bobs_token\") { id firstName lastName acceptsMarketing email phone } }"
  }'
  ```

  #### React Router

  ```javascript
  import { unauthenticated } from "../shopify.server";

  export const loader = async () => {
    const { storefront } = await unauthenticated.storefront(
      'your-development-store.myshopify.com'
    );
    const response = await storefront.graphql(
      `#graphql
    query {
      customer(customerAccessToken: "bobs_token") {
        id
        firstName
        lastName
        acceptsMarketing
        email
        phone
      }
    }`,
    );
    const json = await response.json();
    return json.data;
  }
  ```

  #### Node.js

  ```javascript
  const client = new shopify.clients.Storefront({
    domain: 'your-development-store.myshopify.com',
    storefrontAccessToken,
  });
  const data = await client.query({
    data: `query {
      customer(customerAccessToken: "bobs_token") {
        id
        firstName
        lastName
        acceptsMarketing
        email
        phone
      }
    }`,
  });
  ```

  #### Response

  ```json
  {
    "customer": {
      "id": "gid://shopify/Customer/410535040",
      "firstName": "John",
      "lastName": "Smith",
      "acceptsMarketing": false,
      "email": "johnsmith@example.com",
      "phone": "+16134504533"
    }
  }
  ```

* ### customerAccessTokenCreate reference
