API Changelog
Download source
  • JSON OpenAPI specification
  • YAML OpenAPI specification
Authentication API Reference | Streambird logo

Topics

  • Introduction
  • Authentication

Endpoints

  • Users
    • Create User POST
    • Search Users (beta) POST
    • Get User GET
    • Update User PUT
    • Delete User DELETE
    • Delete User Email DELETE
    • Delete User Phone Number DELETE
    • Delete User Wallet DELETE
    • Delete User WebAuthn Credential DELETE
    • Delete User TOTP DELETE
  • Magic Links
    • Login or Create User by Magic Link POST
    • Invite User by Magic Link POST
    • Create Embeddable Magic Link POST
    • GetMagicLinkLoginStatus POST
    • Verify Token POST
  • OTPs
    • Login or Create User by SMS POST
    • Create SMS OTP POST
    • Login or Create User by Email OTP POST
    • Create Email OTP POST
    • Verify OTP (One-time passcode) POST
  • OAuth
    • Google GET
    • Apple GET
    • Microsoft GET
    • Discord GET
    • Github GET
    • Verify Token POST
  • Wallets Login
    • Begin Wallet Registration POST
    • Get Wallet Registration Nonce POST
    • Verify Wallet (beta) POST
    • Verify Siwe Wallet Registration POST
  • Managed Wallets
    • Create Wallet (beta) POST
    • Wallet Sign Transaction (beta) POST
    • Wallet Sign Message (beta) POST
    • Get Wallet Balance (beta) POST
    • Get Wallet (beta) GET
    • List Wallet (beta) GET
  • Sessions
    • GetJWKs GET
    • GetJWKsByApp GET
    • List Sessions GET
    • Verify Session POST
    • Delete Session DELETE
  • TOTP (Time-based one-time passcode)
    • Create TOTP (beta) POST
    • Verify TOTP (beta) POST
    • Get TOTP Recovery Codes (beta) POST
    • TOTP Recovery (beta) POST
  • Passwords
    • Update Password by Session (Enterprise) POST
    • Verify Password (Enterprise) POST
    • PasswordStrengthCheck (Enterprise) POST
  • Transfers
    • Create Transfer (beta) POST
    • Confirm Transfer (beta) POST
    • Get Transfer (beta) GET
    • List Transfer (beta) GET
  • WebAuthn
    • Initiate WebAuthn Registration (beta) POST
    • Create WebAuthn Registration (beta) POST
    • Initiate WebAuthn Authentication (beta) POST
    • Verify WebAuthn Authentication (beta) POST
Powered by Bump.sh
API Changelog
Download source
  • JSON OpenAPI specification
  • YAML OpenAPI specification
Authentication API Reference | Streambird logo

Login or Create User by Magic Link

POST /v1/auth/magic_links/email/login_or_create
Authorization

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.

application/json

Body

  • email string Required

    Required Email that uniquely identifies the user.

    Minimum length is 1.

  • 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://streambird.io/authenticate, final url user sees in email will be https://streambird.io/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://streambird.io/authenticate, final url user sees in email will be https://streambird.io/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!)

    Hide device_fingerprint attributes Show device_fingerprint attributes object
    • ip string

      IP of the user originating the request.

    • user_agent string

      User Agent of the browser originating the request.

Responses

  • 200 application/json

    OK

    Hide response attributes Show response attributes object
    • user_id string Required

      Minimum length is 1.

    • user_created boolean Required
    • status string Required
    • email_id string Required

      Minimum length is 1.

POST /v1/auth/magic_links/email/login_or_create
curl \
 --request POST 'https://api.streambird.io/v1/auth/magic_links/email/login_or_create' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"email":"sandbox@streambird.io","expires_in":60,"login_redirect_url":"http://localhost:8081/authenticate","registration_redirect_url":"http://localhost:8081/authenticate"}'
Request example
{
  "email": "sandbox@streambird.io",
  "expires_in": 60,
  "login_redirect_url": "http://localhost:8081/authenticate",
  "registration_redirect_url": "http://localhost:8081/authenticate"
}
Response examples (200)
{
  "status": "active",
  "user_id": "user_24wFP9pDa9YiMJLun94iKykoZs2",
  "email_id": "email_24oXBL3PufzHkH1Jzyjc2EXYeo7",
  "created_at": 1630989225,
  "updated_at": 1630989225,
  "user_created": false
}