User Extra
The User Extra API provides
endpointscomprehensiveformanagementmanagingofadditionalextended user profile informationand extended attributesbeyond basicuseraccountprofiles.details. These endpoints allow you tostore, retrieve,store andmodifyretrievesupplementaryadditional demographic, contact, and custom data for users, supporting detailed userdataprofilingsuchforasanalytics,preferences, custom fields,personalization, anddevicecomplianceassociations within your organization's user management system.requirements.
Base URL: https://gate.zequenze.com/api/v1
Authentication: All endpoints require a Bearer token:
Authorization: Bearer <your-api-token>
Overview
The User Extra API category enables comprehensiveorganizations managementto ofcollect extendedand manage supplementary user information that supplements core user profiles. This API is designed for applications that need to store additional user attributes, preferences, device associations, and custom metadata that goesextends beyond standard user accountaccounts. fields.This includes demographic data (gender, age, location), contact information (address, telephone), business details (company, title), identification data (passport numbers, tax IDs), and flexible custom fields for organization-specific requirements.
KeyCommon Features:use cases include:
-
ExtendedUserProfiles:Analytics & Segmentation:StoreCollectcustomdemographicattributesdata for user behavior analysis andpreferencestargetedfor userscampaigns -
DeviceEventAssociation:Registration:LinkGatherusersadditionalwith specific deviceattendee informationandformetadataconferences, webinars, or corporate events -
OrganizationComplianceContext:& KYC:FilterStore identification andmanage userverification datawithinfororganizationalregulatedboundariesindustries -
FlexiblePersonalization: Use location and preference data to customize user experiences
Common Integration Scenarios:
TheThese endpoints work together to provide full CRUD operations,operations on user extra data, with advancedlist filtering capabilities for organization-based data segregation and optional device information inclusion for comprehensive user-deviceuser relationship management.profiling.
Endpoints
GET /user_extra/
Description: Retrieves a paginated list of all user extra information records. This endpoint supportsis essential for viewing collected user data across your organization, with filtering options to narrow results by organization and parent user relationships, making it ideal for multi-tenant applications or when you need to fetch user data within specific organizational contexts.organization.
Use Cases:
Display all extendedGenerate userprofilesdemographic reports foran organization's admin dashboard
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/?parent__organization_id=12345123&limit=50&device_info=true&limit=25&offset=0
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| parent | string | query | No | Filter by parent user ID to get specific user's extra |
| parent__organization_id | string | query | No | Filter |
| limit | integer | query | No | Number of results to return per page ( |
| offset | integer | query | No | The initial index from which to return results for pagination |
| device_info | boolean | query | No | Include |
cURL Example:
curl -X GET "https://gate.zequenze.com/api/v1/user_extra/?parent__organization_id=12345123&limit=20&device_info=true&limit=10"true" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"count": 157,156,
"next": "https://gate.zequenze.com/api/v1/user_extra/?limit=1020&offset=1020&parent__organization_id=12345&device_info=true"123",
"previous": null,
"results": [
{
"id": 1,42,
"parent": 42,1001,
"organization_id"gender": "12345"f",
"preferences": {
"theme"age_range": "dark"25-34",
"notifications"age": true,28,
"language"birthday": "en"
}1995-06-15",
"custom_fields": {
"department"locale": "Engineering"en-US",
"employee_id"address": "EMP001"123 Main Street, Suite 100",
"access_level"hometown": "senior"
}Springfield",
"device_info": {
"assigned_devices": [
{
"device_id"city": "DEV-001"Chicago",
"device_type"state": "laptop"Illinois",
"serial_number"country": "ABC123456"United States",
"assigned_date"location": "2024-01-15T10:30:00Z"Chicago, }IL, ]
}USA",
"created_at"telephone": "2024-01-15T10:30:00Z"+1-555-123-4567",
"updated_at"accept_terms": "2024-02-01T14:20:00Z"true
}
]
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Returns paginated list of user extra |
| 401 | Unauthorized - Invalid or missing |
| 403 | Forbidden - Insufficient permissions to access user data |
POST /user_extra/
Description: Creates anew newextended user extra information record with custom attributes, preferences, and metadata.records. This endpoint allowsis youtypically toused extendduring user profilesonboarding, withevent organization-specificregistration, or when collecting additional profile data andfrom customexisting fields tailored to your application's needs.users.
Use Cases:
CreateCollectextendedadditionalprofilesuser information during registration flows
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/
Parameters:
cURL Example:
curl -X POST "https://gate.zequenze.com/api/v1/user_extra/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"parent": 42,1001,
"organization_id"gender": "12345"m",
"preferences"age": {32,
"theme"birthday": "light"1991-03-22",
"notifications"city": "San Francisco",
"state": "California",
"country": "United States",
"telephone": "+1-555-987-6543",
"company": "Tech Innovations Inc",
"title": "Senior Developer",
"accept_terms": true,
"language"custom_field_1": "en"Premium }Member",
"custom_fields": {
"department"custom_field_2": "Marketing",Annual "employee_id": "EMP002",
"access_level": "standard",
"hire_date": "2024-01-15"
}Subscription"
}'
Example Response:
{
"id": 158,43,
"parent": 42,
"organization_id"gender": "12345"m",
"preferences"age_range": {null,
"theme"age": 32,
"birthday": "light"1991-03-22",
"notifications"locale": null,
"address": null,
"hometown": null,
"city": "San Francisco",
"state": "California",
"postal_code": null,
"country": "United States",
"location": null,
"telephone": "+1-555-987-6543",
"company": "Tech Innovations Inc",
"title": "Senior Developer",
"passport_number": null,
"country_id": null,
"tax_id": null,
"event": null,
"accept_terms": true,
"language"custom_field_1": "en"Premium }Member",
"custom_fields": {
"department"custom_field_2": "Marketing"Annual Subscription",
"employee_id"custom_field_3": "EMP002",null,
"access_level"custom_field_4": "standard",null,
"hire_date"custom_field_5": "2024-01-15"
},null,
"created_at"custom_field_6": "2024-02-15T09:15:00Z",null,
"updated_at"custom_field_7": null,
"2024-02-15T09:15:00Z"custom_field_8": null
}
Response Codes:
| Status | Description |
|---|---|
| 201 | Created - User extra |
| 400 | Bad Request - Invalid data format or missing required fields |
| 401 | Unauthorized - Invalid or missing |
| 409 | Conflict - User extra |
GET /user_extra/{id}/
Description: Retrieves detailed information for a specific user extra record by its unique identifier.ID. This endpoint providesis accessuseful tofor allviewing customcomplete attributes,user preferences,profiles, andincluding optionallyoptional device information for acomprehensive singleuser user's extended profile.analysis.
Use Cases:
- Display
user-specificdetailedsettingsuserand preferencesprofiles inapplicationadminUIdashboards - Retrieve
customspecificemployeeuser data forHRcustomermanagement systemssupport FetchAccessuser-deviceuserassociationsinformation forITpersonalizationasset managementfeatures
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/158/42/?device_info=true
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| id | integer | path | Yes | Unique identifier of the user extra record |
| device_info | boolean | query | No | Include |
cURL Example:
curl -X GET "https://gate.zequenze.com/api/v1/user_extra/158/42/?device_info=true" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"id": 158,42,
"parent": 42,1001,
"organization_id"gender": "12345"f",
"preferences": {
"theme"age_range": "dark"25-34",
"notifications"age": false,28,
"language"birthday": "es"1995-06-15",
"timezone"locale": "America/Los_Angeles"
}en-US",
"custom_fields": {
"department"address": "Engineering"123 Main Street, Suite 100",
"employee_id"hometown": "EMP002"Springfield",
"access_level"city": "senior"Chicago",
"manager_id"state": "EMP001"Illinois",
"office_location"country": "BuildingUnited A, Floor 3"
}States",
"device_info": {
"assigned_devices": [
{
"device_id"location": "DEV-002"Chicago, IL, USA",
"device_type"telephone": "laptop"+1-555-123-4567",
"serial_number"accept_terms": "XYZ789012",
"model": "MacBook Pro 16",
"assigned_date": "2024-01-15T10:30:00Z",
"status": "active"
},
{
"device_id": "DEV-003",
"device_type": "phone",
"serial_number": "MOB456789",
"model": "iPhone 15 Pro",
"assigned_date": "2024-01-20T14:00:00Z",
"status": "active"
}
],
"device_count": 2
},
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-10T16:45:00Z"true
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Returns |
| 401 | Unauthorized - Invalid or missing |
| 404 | Not Found - User extra record with specified ID does not exist |
| 403 | Forbidden - Insufficient permissions to access this user's data |
PUT /user_extra/{id}/
Description: Completely replacesupdates allan data for a specificexisting user extra recordrecord, replacing all fields with new information.values. This endpoint performs a full update, requiringrequires all fieldsdata to be provided inand theis requestideal body.for Usecomprehensive thisprofile when you need to replace the entire user extra profile.updates.
Use Cases:
CompleteUpdateprofilecompleteupdatesuserduringprofilesemployeeafterroledatachangesverificationBulk synchronization ofSync userdatainformation from external systemsResettingRefresh all userpreferencesdatatoduringnewperiodicdefault configurationsupdates
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/158/42/
Parameters:
cURL Example:
curl -X PUT "https://gate.zequenze.com/api/v1/user_extra/158/42/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"parent": 42,
"organization_id"gender": "12345"f",
"preferences"age": {29,
"theme"birthday": "auto"1995-06-15",
"notifications"locale": "en-US",
"address": "456 Oak Avenue, Apt 5B",
"city": "Chicago",
"state": "Illinois",
"postal_code": "60601",
"country": "United States",
"telephone": "+1-555-123-4567",
"company": "Design Solutions LLC",
"title": "Creative Director",
"accept_terms": true,
"language"custom_field_1": "fr"Enterprise Client",
"timezone"custom_field_2": "Europe/Paris"VIP },
"custom_fields": {
"department": "Sales",
"employee_id": "EMP002",
"access_level": "manager",
"manager_id": null,
"office_location": "Building B, Floor 2",
"promotion_date": "2024-02-01"
}Status"
}'
Example Response:
{
"id": 158,
"parent": 42,
"organization_id"gender": "12345"f",
"preferences"age_range": {null,
"theme"age": 29,
"birthday": "auto"1995-06-15",
"notifications"locale": "en-US",
"address": "456 Oak Avenue, Apt 5B",
"hometown": null,
"city": "Chicago",
"state": "Illinois",
"postal_code": "60601",
"country": "United States",
"location": null,
"telephone": "+1-555-123-4567",
"company": "Design Solutions LLC",
"title": "Creative Director",
"passport_number": null,
"country_id": null,
"tax_id": null,
"event": null,
"accept_terms": true,
"language"custom_field_1": "fr"Enterprise Client",
"timezone"custom_field_2": "Europe/Paris"VIP }Status",
"custom_fields": {
"department": "Sales",
"employee_id": "EMP002",
"access_level": "manager",
"manager_id"custom_field_3": null,
"office_location"custom_field_4": "Building B, Floor 2",null,
"promotion_date"custom_field_5": "2024-02-01"
},null,
"created_at"custom_field_6": "2024-01-15T10:30:00Z",null,
"updated_at"custom_field_7": null,
"2024-02-15T11:20:00Z"custom_field_8": null
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - User extra |
| 400 | Bad Request - Invalid data format or validation errors |
| 401 | Unauthorized - Invalid or missing |
| 404 | Not Found - User extra record with specified ID does not exist |
PATCH /user_extra/{id}/
Description: Partially updates specific fields of aan existing user extra recordrecord. This endpoint allows selective field updates without affecting other existingdata, data.making Thisit endpoint is idealperfect for updatingincremental individualprofile preferences, custom fields, or specific attributes while preserving all other information.updates.
Use Cases:
- Update specific user
preferencesfields like contact information
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/158/42/
Parameters:
cURL Example:
curl -X PATCH "https://gate.zequenze.com/api/v1/user_extra/158/42/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"preferences": {
"theme"telephone": "dark"+1-555-999-8888",
"notifications"company": false"New }Company Name Inc",
"custom_fields": {
"access_level"custom_field_1": "senior_manager"Updated }Status"
}'
Example Response:
{
"id": 158,
"parent": 42,
"organization_id"gender": "12345"f",
"preferences": {
"theme": "dark",
"notifications": false,
"language": "fr",
"timezone": "Europe/Paris"
},
"custom_fields": {
"department": "Sales",
"employee_id": "EMP002",
"access_level": "senior_manager",
"manager_id"age_range": null,
"office_location"age": 29,
"birthday": "Building B, Floor 2"1995-06-15",
"promotion_date"locale": "2024-02-01"
}en-US",
"created_at"address": "2024-01-15T10:30:00Z"456 Oak Avenue, Apt 5B",
"updated_at"hometown": null,
"city": "2024-02-15T14:30:00Z"Chicago",
"state": "Illinois",
"postal_code": "60601",
"country": "United States",
"location": null,
"telephone": "+1-555-999-8888",
"company": "New Company Name Inc",
"title": "Creative Director",
"passport_number": null,
"country_id": null,
"tax_id": null,
"event": null,
"accept_terms": true,
"custom_field_1": "Updated Status",
"custom_field_2": "VIP Status",
"custom_field_3": null,
"custom_field_4": null,
"custom_field_5": null,
"custom_field_6": null,
"custom_field_7": null,
"custom_field_8": null
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - |
| 400 | Bad Request - Invalid |
| 401 | Unauthorized - Invalid or missing |
| 404 | Not Found - User extra record with specified ID does not exist |
DELETE /user_extra/{id}/
Description: Permanently removes a user extra record andfrom allthe associated custom data, preferences, and metadata.system. This actionendpoint cannotshould be undoneused andcarefully willas completelyit deletepermanently thedeletes all extended user profileinformation information.associated with the specified ID.
Use Cases:
Clean upRemove user datawhenuponemployeesaccountleavedeletionthefororganizationGDPR complianceRemoveClean up test orduplicateinvalid user extra recordsComplyHandlewithuser requests for dataretention policies and user data deletion requestsremoval
Full URL Example:
https://gate.zequenze.com/api/v1/user_extra/158/42/
Parameters:
cURL Example:
curl -X DELETE "https://gate.zequenze.com/api/v1/user_extra/158/42/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
Example-H Response:
HTTP/1.1 204 No Contentapplication/json"
Response Codes:
| Status | Description |
|---|---|
| 204 | No Content - User extra |
| 401 | Unauthorized - Invalid or missing |
| 404 | Not Found - User extra record with specified ID does not exist |
| 403 | Forbidden - Insufficient permissions to delete this |
Common Use Cases
UseEvent Case 1: Employee OnboardingRegistration System
CreateUse comprehensivePOST employee/user_extra/ profilesto duringcollect onboardingattendee information including contact details, company information, and dietary preferences in custom fields. Filter by organization using POSTGET /user_extra/with parent__organization_id to initializegenerate attendee lists per company.
User Analytics Dashboard
Retrieve demographic data with GET /user_extra/ including age ranges and locations to create user segmentation reports. Use the pagination parameters to handle large datasets efficiently.
Profile Management Interface
Implement a user profile editor using GET /user_extra/{id}/ to load current data, then PATCH /user_extra/{id}/ for incremental updates as users modify their information.
Compliance Data Collection
Store KYC information using passport numbers, tax IDs, and country identification. Use custom employeefields data,for preferences,industry-specific compliance requirements, and devicedelete assignments.records Thenwith useDELETE PATCH/user_extra/{id}/ requestswhen torequired graduallyfor updatedata specificprivacy information as the employee completes different onboarding stages.regulations.
UseMulti-tenant Case 2: Multi-Tenant Application DataUser Management
LeverageFilter theusers by organization using parent__organization_id filter with GET /user_extra/parameter to maintainmanage user data across different tenants while maintaining data isolation between different organizations. This ensures each tenant only sees their own user data while sharing the same API infrastructure.
Use Case 3: User Preference Management
Use PATCH /user_extra/{id}/ for real-time preference updates when users change settings in your application. This allows granular updates without overwriting other custom fields or device associations.
Use Case 4: Device Assignment Tracking
Utilize the device_info parameter with GET requests to track user-device relationships for IT asset management. Combine with organization filtering to manage devices across different departments or business units.
Use Case 5: Data Cleanup and Compliance
proper Implementaccess automated data retention policies using DELETE /user_extra/{id}/ for removing user data after employment termination or when users request data deletion for privacy compliance.controls.
Best Practices
-
PaginationDataManagement:Privacy: Alwaysuseimplement proper access controls and consider GDPR/privacy regulations when collecting and storing user data
Efficient Filtering: Use parent__organization_id filtering early in your queries to reduce data transfer and improve response times in multi-tenant environments.
Selective Device Information: Only request device_info when necessary, as it can significantly increase response size and processing time for large user bases.
Partial Updates: Prefer PATCH over PUT for mostsingle updatefield operationsupdates to avoid accidentally overwriting existingminimize data transfer and reduce networkthe payloadrisk size.
Custom Fields: Plan your custom field usage in advance and document their purposes for your organization to maintain consistency
Error Handling: Implement properData Validation: Validate custom_fields structure and preferences format on the client side before sending requests to reduce 400 errors and improvewhen user experience.
Security Considerations: Always validate user permissions before allowing access to organization-specific data,exist, especially in multi-tenantuser-facing applications