Overview
The Identify API authenticates users through their UIP identity and returns verified personal information. Users always see exactly what data you’re requesting and can choose to approve or deny the request.Biometric Security
Authentication with verified identity data
QR Code Ready
Automatic generation for desktop flows
Granular Control
Request only the data you need
Real-time Webhooks
Instant authentication notifications
Request Parameters
webhook_url (required)
webhook_url (required)
Type: string (URL format)URL to receive authentication results. Must be HTTPS in production.Your webhook will receive a POST request when the user completes or cancels authentication.
requested_data (optional)
requested_data (optional)
Type: array of stringsSpecific data fields to request from the user. If empty or omitted, requests all available data.Available fields:
name- User’s complete legal namedate_of_birth- Date of birth as Unix timestampcountry_of_origin- Country where identity was verified (ISO 3166-1 alpha-2)expiry_date- ID card expiration date as Unix timestamp (must be explicitly requested)
name, date_of_birth, and country_of_origin (unless specific fields requested)device_type (optional)
device_type (optional)
Type: stringIndicates the user’s device context for optimal flow:
mobile- User wants to authenticate on their current mobile devicedesktop- User wants to scan QR code with another device
desktopredirect_url (optional)
redirect_url (optional)
Type: string (URL format)Deep link URL to return the user to your app after mobile authentication. Required when
device_type: "mobile".Format: yourapp://auth-callback or https://yourapp.com/auth-callbackmin_age (optional)
min_age (optional)
Type: integerNote: This parameter is not currently supported. The API always returns
date_of_birth as a Unix timestamp. Developers must calculate age from the timestamp in their application logic.For age verification: Request date_of_birth, convert the Unix timestamp to a date, calculate age, and apply restrictions in your backend.metadata (optional)
metadata (optional)
Type: objectAdditional data to associate with the authentication session for your records.Common fields: user_ip, session_info, internal_user_id, contextNote: Metadata is returned in webhook responses
Available Data Fields
Control exactly what information you receive. Users will see your business name and the specific data you’re requesting.- Standard Fields
- Optional Fields
name
User’s complete legal name as verified during identity verification (powered by Didit).Example:"Alice Marie Johnson"Privacy note: Only request if you need the user’s real name.Included by default: Yesdate_of_birth
User’s date of birth as a Unix timestamp (seconds since epoch).Example:643852800 (represents May 15, 1990)Note: Developers must convert Unix timestamp to desired date format. To verify age, calculate age from timestamp in your application logic.Included by default: Yescountry_of_origin
Country where the user’s identity was verified, using ISO 3166-1 alpha-2 country codes.Example:"US", "GB", "CA"Use case: Geographic restrictions, compliance requirementsIncluded by default: YesPrivacy Best Practice
Only request the data you actually need
uip_id regardless of requested fields.
Request Examples
Request Default Fields
Request Default Fields
Omit the
requested_data parameter or pass an empty array to request the standard fields.This returns:uip_id(always included)namedate_of_birthcountry_of_origin
expiry_date is NOT included by default—must be explicitly requested.Use case: Initial user registration where you need complete profile information.Request Specific Fields
Request Specific Fields
Only request the fields you need for your use case.Example: Only request name and date of birth.This returns:
uip_id(always included)namedate_of_birth
Request ID Expiry Date
Request ID Expiry Date
Include This returns:
expiry_date to verify the user’s government ID has not expired.uip_id(always included)namedate_of_birthcountry_of_originexpiry_date- ID card expiration date
Age Verification
Age Verification
The Identify API always returns Use case: Age-restricted content, alcohol sales, gambling, mature content verification
date_of_birth as a Unix timestamp. Developers must calculate age from this timestamp in their application.To verify age:- Request
date_of_birthfield (included by default) - Receive Unix timestamp in webhook response
- Convert timestamp to date and calculate age in your backend
- Apply age restrictions based on your requirements
Mobile Device Flow
Mobile Device Flow
For users authenticating on their mobile device, specify
device_type: "mobile" and provide a redirect URL.Response includes an app_url that opens the UIP app directly, skipping the QR code.Use case: Mobile web apps, progressive web appsCommon Use Cases
- Passwordless Login
- Age Verification
- KYC Compliance
- Account Recovery
Goal: Replace username/password authenticationFlow:
- User clicks “Login with UIP”
- Call Identify API with empty
requested_data(or just name) - Display QR code or redirect to app
- Receive webhook confirmation
- Create user session using
uip_id
- No password storage or management
- Government-verified identities
- Biometric security
- Zero friction for users
Response Times
API Response
< 200msInitial API call returns QR code or deep link instantly
User Action
10-30 secondsAverage time for user to scan and authenticate
Webhook Delivery
< 1 secondWebhook sent immediately after user completes action