Skip to main content

Self Serve Migration

Self Serve Migration empowers organizations to migrate their customer data to LoginRadius independently using our comprehensive APIs and tools. This approach gives you complete control over the migration timeline, data handling, and process customization while maintaining the highest security standards.

Key Benefits

  • Complete Control: Execute migrations on your schedule with custom data transformation
  • Enhanced Security: Encrypted transfers with comprehensive audit trails and compliance support
  • Cost Efficient: Leverage existing infrastructure without external dependencies
  • Zero Downtime: Migrate users without impacting current operations

Supported Data Formats

FormatUse CaseMax File Size
JSONAPI-based real-time migration10MB per request

Password Hash Support

LoginRadius supports migration of existing password hashes to ensure users don't need to reset passwords.

Some of the supported hash types include:

  • bcrypt
  • scrypt
  • SHA1, SHA256
  • PBKDF2, and more

Refer to the Hashing Algorithm documentation for details.

For any other hash type, not directly listed on the above list, reach out to the LoginRadius Support Team at support@loginradius.com.

API-Based Migration

API-based migration provides real-time data transfer with immediate feedback and error handling. This method is ideal for applications that need to migrate users dynamically or maintain real-time synchronization.

Step 1: Authentication Setup

Obtain your API credentials from the LoginRadius Admin Console:

# Set your environment variables
export LR_API_KEY="your-lr-api-key"
export LR_API_SECRET="your-lr-api-secret"

Step 2: Bulk User Upload

Use the migration API to transfer user profiles:

curl -X POST "https://migration.loginradius.com/v2/bulk/upsert?apikey=${LR_API_KEY}&apisecret=${LR_API_SECRET}" \
-H "Content-Type: application/json" \
-d '{
"PasswordEncryption": {
"Type": "PBKDF2",
"IsPerPasswordSalt": true,
"NumberOfIteration": 100000,
"SaltKeyLength": 16,
"SubKeyLength": 32,
"Salt": "c2FsdFZhbHVlMTIz",
"SaltAttachType": "Prepend",
"PasswordHashEncodingType": "Base64",
"PasswordSaltEncodingType": "Base64"
},
"Profiles": [
{
"FirstName": "John",
"LastName": "Doe",
"FullName": "John Doe",
"UserName": "johndoe",
"Email": [
{
"Type": "Primary",
"Value": "john.doe@example.com"
}
],
"PhoneId": "+1234567890",
"PhoneNumbers": [
{
"PhoneType": "Mobile",
"PhoneNumber": "+1234567890"
}
],
"Password": "hashed_password_here",
"BirthDate": "1990-01-15",
"Gender": "M",
"Website": "https://johndoe.com",
"TimeZone": "America/New_York",
"LocalLanguage": "en",
"EmailVerified": true,
"IsActive": true,
"Addresses": [
{
"Type": "Home",
"Address1": "123 Main St",
"City": "New York",
"State": "NY",
"PostalCode": "10001",
"Country": "US"
}
],
"CustomFields": {
"user_id": "12345",
"registration_source": "web",
"subscription_tier": "premium"
}
}
]
}'

Data Mapping and Transformation

Standard Field Mapping

Refer to the following table to map your source fields to the LoginRadius user schema:

Source FieldLoginRadius FieldData Type
emailEmail[].ValueArray of Objects
first_nameFirstNameString
last_nameLastNameString
full_nameFullNameString
usernameUserNameString
phonePhoneIdString
phone_numbersPhoneNumbers[]Array of Objects
password_hashPasswordString
birth_dateBirthDateString
genderGenderString
created_dateCreatedDateString
signup_dateSignupDateString
last_loginLastLoginDateString
is_verifiedEmailVerifiedBoolean
is_activeIsActiveBoolean
addressesAddresses[]Array of Objects
websiteWebsiteString
profile_imageImageUrlString
timezoneTimeZoneString
languageLocalLanguageString

Custom Fields Support

LoginRadius supports custom fields for storing additional user attributes. Make sure that these custom fields are already added in our tenant:

{
"CustomFields": {
"user_id": "legacy_system_id_12345",
"subscription_tier": "premium",
"registration_source": "mobile_app",
"marketing_consent": true,
"last_purchase_date": "2023-12-15",
"preferred_language": "en-US",
"account_type": "business"
}
}

Troubleshooting

Common Issues and Solutions

Authentication Errors

  • Invalid Credentials: Verify API key and secret are correct and active
  • Permission Denied: Ensure your account has migration permissions enabled
  • Token Expiration: Refresh authentication tokens as needed

Data Validation Failures

  • Invalid Email Format: Check email addresses conform to RFC standards
  • Missing Required Fields: Ensure all mandatory fields are provided
  • Data Type Mismatches: Verify field types match the expected schema

Performance Issues

  • Slow Upload Speed: Reduce batch sizes or increase processing intervals
  • API Rate Limiting: Implement proper rate limiting and retry logic
  • Memory Issues: Optimize data processing to handle large datasets efficiently

Migration Resources