How do i activate a customer without a password?

Topic summary

Issue: Activating a Shopify customer via API using an email link (with customer ID and activation token) without requiring a password.

Context: A customer record is created via the Admin API and Shopify emails an activation link. On a Liquid storefront this link completes activation without a password. The goal is to replicate the link handling on a custom storefront via API.

What’s known: Suggested endpoints (GraphQL Admin API customerGenerateAccountActivationUrl and REST customers/{id}/account_activation_url.json) only generate/send the activation link; they don’t consume the link or finalize activation. Hydrogen (Shopify’s React framework for custom storefronts) was asked about but is not being used; any API solution is acceptable.

Status: Unresolved. The specific API entry point to validate the activation token and complete account activation (without setting a password) was not identified. Further guidance is needed on an endpoint or flow to consume the activation URL parameters (ID + token) to activate the customer.

Summarized with AI on December 21. AI used: gpt-5.

When a user signs up for our mailing list we create a customer (via admin api) and that process automatically emails the customer a link to activate the account/verify the email. This url has the customer id and the activation token in it.

What api entry point do i pass the id and token to finish customer creation? Everything relevant i have found requires a password. As this process works without password on our Liquid site it seems like it should be possible using an api.

Thanks.

Hi Noisee,

You should be able to use GraphQL Admin API customerGenerateAccountActivationUrl mutation or the account_activation_url.json endpoint on the REST API for this.

Hello,

Those endpoints generate the email (and the contained link). I was asking about handling the link there generated that has the user id and the activation token in it.

Hi again - is this for a Hydrogen storefront?

Nope. We can use any of the other APIs.