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.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.user_management.get_magic_auth(id: "magic_auth_01HWZBQZY2M3AMQW166Q22K88F") |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.user_management.get_magic_auth(id_="magic_auth_01HWZBQZY2M3AMQW166Q22K88F") |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.UserManagement().GetMagicAuth(context.Background(), "magic_auth_01HWZBQZY2M3AMQW166Q22K88F") | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos | |
| ->userManagement() | |
| ->getMagicAuth(id: "magic_auth_01HWZBQZY2M3AMQW166Q22K88F"); |
| import com.workos.WorkOS; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| workos.userManagement.getMagicAuth("magic_auth_01HWZBQZY2M3AMQW166Q22K88F"); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.UserManagement.GetMagicAuthAsync("magic_auth_01HWZBQZY2M3AMQW166Q22K88F"); |
| use workos::Client; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .user_management() | |
| .get_magic_auth("magic_auth_01HWZBQZY2M3AMQW166Q22K88F") | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "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.api_key = "sk_example_123456789" | |
| end | |
| WorkOS.client.user_management.create_magic_auth(email: "marcelina.davis@example.com") |
| from workos import WorkOSClient | |
| client = WorkOSClient(api_key="sk_example_123456789", client_id="client_123456789") | |
| client.user_management.create_magic_auth(email="marcelina.davis@example.com") |
| package main | |
| import ( | |
| "context" | |
| "github.com/workos/workos-go/v9" | |
| ) | |
| func main() { | |
| client := workos.NewClient("sk_example_123456789") | |
| _, err := client.UserManagement().CreateMagicAuth(context.Background(), &workos.UserManagementCreateMagicAuthParams{ | |
| Email: "marcelina.davis@example.com", | |
| }) | |
| if err != nil { | |
| panic(err) | |
| } | |
| } |
| <?php | |
| use WorkOS\WorkOS; | |
| $workos = new WorkOS( | |
| apiKey: "sk_example_123456789", | |
| clientId: "client_123456789", | |
| ); | |
| $workos | |
| ->userManagement() | |
| ->createMagicAuth(email: "marcelina.davis@example.com"); |
| import com.workos.WorkOS; | |
| import com.workos.usermanagement.UserManagementApi.CreateMagicAuthOptions; | |
| WorkOS workos = new WorkOS("sk_example_123456789"); | |
| CreateMagicAuthOptions options = | |
| CreateMagicAuthOptions.builder().email("marcelina.davis@example.com").build(); | |
| workos.userManagement.createMagicAuth(options); |
| using WorkOS; | |
| var client = new WorkOSClient(new WorkOSOptions { | |
| ApiKey = "sk_example_123456789", | |
| ClientId = "client_123456789", | |
| }); | |
| await client.UserManagement.CreateMagicAuthAsync(new UserManagementCreateMagicAuthOptions { | |
| Email = "marcelina.davis@example.com", | |
| }); |
| use workos::Client; | |
| use workos::user_management::CreateMagicAuthParams; | |
| #[tokio::main] | |
| async fn main() -> Result<(), workos::Error> { | |
| let client = Client::builder() | |
| .api_key("sk_example_123456789") | |
| .client_id("client_123456789") | |
| .build(); | |
| let _result = client | |
| .user_management() | |
| .create_magic_auth( | |
| CreateMagicAuthParams { | |
| email: "marcelina.davis@example.com".into(), | |
| ..Default::default() | |
| } | |
| ) | |
| .await?; | |
| Ok(()) | |
| } |
| { | |
| "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