# Login or Create User by Magic Link **POST /v1/auth/magic_links/email/login_or_create** Create an email Magic Link to the provided email for login verification. If no user account exists, a new user will be created and Magic Link sent. ## HTTP Request `POST /v1/auth/magic_links/email/login_or_create` ## Returns A successful response returns an object with `user_id`, `user_created` indicating if the user has been newly created, and `email_id` properties. ## Servers - Production: https://api.moonkey.fun (Production) ## Authentication methods - Authorization ## Parameters ## Body parameters Content-type: application/json - **email** (string) `Required` Email that uniquely identifies the user. - **login_redirect_url** (string) The base url we will use to construct the final login magic link and send to the user via email if this is a login (existing user). If the `redirect_url` is `https://moonkey.fun/authenticate`, final url user sees in email will be `https://moonkey.fun/authenticate?token=autogeneratedmagictoken`. We will redirect to your app in this url and your app should handle and parse the `token` parameter and allow the user log in. If no url is sent in, we will use the default redirect url set in the Console and if no default redirect url is available, an error will be returned. - **registration_redirect_url** (string) The base url we will use to construct the final login magic link and send to the user via email if this is a registration (new user). If the `redirect_url` is `https://moonkey.fun/authenticate`, final url user sees in email will be `https://moonkey.fun/authenticate?token=autogeneratedmagictoken`. We will redirect to your app in this url and your app should handle and parse the `token` parameter and register the user. If no url is sent in, we will use the default redirect url set in the Console and if no default redirect url is available, an error will be returned. - **login_expires_in** (number) Expiration time of the magic link in minutes for login (when an existing user is found) Must be between 5 to 10080 minutes (7 days), defaults to 60 minutes. - **registration_expires_in** (number) Expiration time of the magic link in minutes for registration (when a new user is created). Must be between 5 to 10080 minutes (7 days), defaults to 60 minutes. - **requires_verification** (boolean) Determines if verification for the authentication method (email, phone_number) is required before marking the user as active. - **device_fingerprint** (object) Device fingerprinting metadata for fraud detection during verification step. This is useful to ensure that the user who originated the request matches the user that verifies the token. Verification requirements can be enabled in the `Verify Token` step by matching fields in the `device_fingerprint` such as IP, User Agent or the combination of them (more fraud detection features **coming soon**!) ## Responses ### 200: OK #### Body Parameters: application/json (object) - **user_id** (string) - **user_created** (boolean) - **status** (string) - **email_id** (string) [Powered by Bump.sh](https://bump.sh)