Magic Auth is a passwordless authentication method that allows users to sign in or sign up via a unique, six digit one-time-use code sent to their email inbox. To verify the code, authenticate the user with Magic Auth.
Get the details of an existing Magic Auth code that can be used to send an email to a user for authentication.
curl "https://api.workos.com/user_management/magic_auth/magic_auth_01HWZBQZY2M3AMQW166Q22K88F" \ --header "Authorization: Bearer sk_example_123456789"
{ "object": "magic_auth", "id": "magic_auth_01HWZBQZY2M3AMQW166Q22K88F", "user_id": "user_01E4ZCR3C56J083X43JQXF3JK5", "email": "marcelina.davis@example.com", "expires_at": "2026-01-15T12:00:00.000Z", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z", "code": "123456" }
| curl "https://api.workos.com/user_management/magic_auth/magic_auth_01HWZBQZY2M3AMQW166Q22K88F" \ | |
| --header "Authorization: Bearer sk_example_123456789" |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const magicAuth = await workos.userManagement.getMagicAuth( | |
| 'magic_auth_01E4ZCR3C56J083X43JQXF3JK5', | |
| ); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.key = "sk_example_123456789" | |
| end | |
| magic_auth = WorkOS::UserManagement.get_magic_auth( | |
| id: "magic_auth_01E4ZCR3C56J083X43JQXF3JK5" | |
| ) |
| from workos import WorkOSClient | |
| workos_client = WorkOSClient( | |
| api_key="sk_example_123456789", client_id="client_123456789" | |
| ) | |
| magic_auth = workos_client.user_management.get_magic_auth( | |
| magic_auth_id="magic_auth_01E4ZCR3C56J083X43JQXF3JK5" | |
| ) |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v2/pkg/usermanagement" | |
| ) | |
| func main() { | |
| usermanagement.SetAPIKey( | |
| "sk_example_123456789", | |
| ) | |
| response, err := usermanagement.GetMagicAuth( | |
| context.Background(), | |
| usermanagement.GetMagicAuthOpts{ | |
| MagicAuth: "magic_auth_01E4ZCR3C56J083X43JQXF3JK5", | |
| }, | |
| ) | |
| } |
| <?php | |
| WorkOS\WorkOS::setApiKey("sk_example_123456789"); | |
| $userManagement = new WorkOS\UserManagement(); | |
| $magicAuth = $userManagement->getMagicAuth( | |
| "magic_auth_01E4ZCR3C56J083X43JQXF3JK5" | |
| ); |
| import com.workos.WorkOS; | |
| import com.workos.usermanagement.models.MagicAuth; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| MagicAuth magicAuth = | |
| workos.userManagement.getMagicAuth("magic_auth_01E4ZCR3C56J083X43JQXF3JK5"); |
| { | |
| "object": "magic_auth", | |
| "id": "magic_auth_01HWZBQZY2M3AMQW166Q22K88F", | |
| "user_id": "user_01E4ZCR3C56J083X43JQXF3JK5", | |
| "email": "marcelina.davis@example.com", | |
| "expires_at": "2026-01-15T12:00:00.000Z", | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z", | |
| "code": "123456" | |
| } |
GET/user_management /magic_auth /:idParameters Returns Creates a one-time authentication code that can be sent to the user’s email address. The code expires in 10 minutes. To verify the code, authenticate the user with Magic Auth.
curl --request POST \ --url "https://api.workos.com/user_management/magic_auth" \ --header "Authorization: Bearer sk_example_123456789" \ --header "Content-Type: application/json" \ -d @- <<'BODY' { "email": "marcelina.davis@example.com" } BODY
{ "object": "magic_auth", "id": "magic_auth_01HWZBQZY2M3AMQW166Q22K88F", "user_id": "user_01E4ZCR3C56J083X43JQXF3JK5", "email": "marcelina.davis@example.com", "expires_at": "2026-01-15T12:00:00.000Z", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z", "code": "123456" }
| curl --request POST \ | |
| --url "https://api.workos.com/user_management/magic_auth" \ | |
| --header "Authorization: Bearer sk_example_123456789" \ | |
| --header "Content-Type: application/json" \ | |
| -d @- <<'BODY' | |
| { | |
| "email": "marcelina.davis@example.com" | |
| } | |
| BODY |
| import { WorkOS } from '@workos-inc/node'; | |
| const workos = new WorkOS('sk_example_123456789'); | |
| const magicAuth = await workos.userManagement.createMagicAuth({ | |
| email: 'marcelina@example.com', | |
| }); |
| require "workos" | |
| WorkOS.configure do |config| | |
| config.key = "sk_example_123456789" | |
| end | |
| magic_auth = UserManagement.create_magic_auth( | |
| email: "marcelina@example.com" | |
| ) |
| from workos import WorkOSClient | |
| workos_client = WorkOSClient( | |
| api_key="sk_example_123456789", client_id="client_123456789" | |
| ) | |
| magic_auth = workos_client.user_management.create_magic_auth( | |
| email="marcelina@example.com" | |
| ) |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v2/pkg/usermanagement" | |
| ) | |
| func main() { | |
| usermanagement.SetAPIKey( | |
| "sk_example_123456789", | |
| ) | |
| response, err := usermanagement.CreateMagicAuth( | |
| context.Background(), | |
| usermanagement.CreateMagicAuthOpts{ | |
| Email: "marcelina@example.com", | |
| }, | |
| ) | |
| } |
| <?php | |
| WorkOS\WorkOS::setApiKey("sk_example_123456789"); | |
| $userManagement = new WorkOS\UserManagement(); | |
| $magicAuth = $userManagement->createMagicAuth("marcelina@example.com"); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| MagicAuth magicAuth = workos.userManagement.createMagicAuth("marcelina@example.com"); |
| { | |
| "object": "magic_auth", | |
| "id": "magic_auth_01HWZBQZY2M3AMQW166Q22K88F", | |
| "user_id": "user_01E4ZCR3C56J083X43JQXF3JK5", | |
| "email": "marcelina.davis@example.com", | |
| "expires_at": "2026-01-15T12:00:00.000Z", | |
| "created_at": "2026-01-15T12:00:00.000Z", | |
| "updated_at": "2026-01-15T12:00:00.000Z", | |
| "code": "123456" | |
| } |
POST/user_management /magic_authReturns