Skip to main content

User Acquisition Integration

Overview​

This document outlines the requirements for Membership Organizations (MOs) to integrate with our Customer Data Platform (CDP) and personalized recommendation system. Our system polls your user profile data 4 times daily to maintain up-to-date user profiles for personalized content recommendations.


Polling Schedule​

Our system polls your API 4 times per day at:

  • 00:00 UTC (Midnight)
  • 06:00 UTC (6 AM)
  • 12:00 UTC (Noon)
  • 18:00 UTC (6 PM)

API Requirements​

1. API Endpoint Configuration​

To enable integration, the membership organization admin must complete the following information in the Settings section of the Membership Organization Portal:

ConfigurationDescription
Base API URLYour API's base URL (e.g., https://api.yourmembershiporg.com)
API KeyAuthentication key for secure access to your user data
Membership Organization IDYour unique identifier in our system

User Acquisition Settings in Membership Organization Portal

2. Required API Endpoints​

Your API must implement the following endpoint:

GET /users​

  • Description: Returns user profile data for all users or users updated since a specific date.

Query Parameters:

NameTypeRequiredDescription
limitintegerYesMaximum number of users to return per request (we use 100)
offsetintegerNoNumber of users to skip for pagination
from_datestringNoISO 8601 datetime for incremental updates (e.g., 2024-01-15T12:00:00Z)

Request Headers:

X-Api-Key: your-api-key
Content-Type: application/json

Response Format:

{
"users": [
{
// User profile data according to schema below
}
],
"pagination": {
"total_count": 1500,
"limit": 100,
"offset": 0
}
}

3. Authentication​

We support API Key authentication via the X-Api-Key header. Ensure your API key:

  • Has read access to user profile endpoints
  • Does not expire (or provide advance notice of renewal)
  • Is kept secure and not shared publicly

4. Rate Limiting & Performance​

Please ensure your API can handle:

  • Concurrent requests: Up to 5 requests per second
  • Bulk data retrieval: Pagination support for large user bases
  • Incremental updates: Support for from_date parameter to retrieve only updated records

Data Schema Requirements​

Your API must return user data conforming to the following JSON schema:

User Profile Schema​

Required Fields​

{
"user_id": "string", // Unique identifier (alphanumeric, max 128 chars)
"email": "string", // Valid email format
"created_at": "string", // ISO 8601 datetime
"updated_at": "string", // ISO 8601 datetime
"communication_preferences": {
"email_opt_in": boolean,
"sms_opt_in": boolean,
"push_opt_in": boolean
}
}

Optional Fields​

{
"phone": "string", // E.164 format (e.g., +1234567890)
"birth_date": "string", // ISO date format (YYYY-MM-DD)
"device_ids": ["string"], // Array of device identifiers
"demographics": {
"age_range": "string", // Enum: "18-20", "21-24", "25-29", etc.
"education_and_occupation": "string", // See full enum list below
"gender": "string", // Enum: "Female", "Male", "Other Gender", "Unknown Gender"
"language": "string", // Country name (see full enum list below)
"marital_status": "string", // Enum: "Co-Habiting", "Married", "Single"
"income": "string", // Enum: "$10,000-$14,999", "$15,000-$19,999", etc.
"location": {
"country": "string", // ISO 3166-1 alpha-2 (e.g., "US", "CA")
"region": "string", // State/province code (max 3 chars)
"city": "string", // City name
"postal_code": "string", // ZIP/postal code
"timezone": "string" // IANA timezone (e.g., "America/New_York")
},
"mo_location": {
"country": "string", // Your organization's country
"region": "string", // Your organization's state/region
"city": "string" // Your organization's city
}
},
"content_preferences": {
"interests": ["string"], // Array of interest categories
"favorite_content_types": ["string"], // Content type preferences
"preferred_content_length": "string", // "short", "medium", "long"
"content_frequency": "string" // "daily", "weekly", "monthly"
}
}

Field Enums and Validation​

Age Range Options​

  • 18-20, 21-24, 25-29, 30-34, 35-39, 40-44, 45-49, 50-54, 55-59, 60-64, 65-69, 70-74, 75+

Education and Occupation Options​

  • Primary Education, Secondary Education, College Education, Professional School, Postgraduate Education, Undergraduate Education, Work from Home, Director/Managerial, Homemaker / Domestic Work, Office Worker, Part-Time Worker, Professional, Public Sector, Retired, Self Employed, Shop Worker, Skilled/Manual Work, Student, Unemployed, Employment Sector / Industry, Employed, Part-Time, Full-Time, Self-Employed, Unemployed / Job Seeker

Income Brackets​

  • $10,000-$14,999, $15,000-$19,999, $20000 - $39999, $40000 - $49999, $50000 - $74999, $75000 - $99999, $100000 - $149999, $150,000-$174,999, $175,000-$199,999, $200,000-$249,999, $250,000+

Interest Categories​

  • Automotive, Books and Literature, Business and Finance, Careers, Education, Academic Interests, Family and Relationships, Fine Art, Food & Drink, Healthy Living, Hobbies & Interests, Home & Garden, Movies, Music and Audio, News and Politics, Personal Finance, Pets, Pop Culture, Real Estate, Religion & Spirituality, Science, Shopping, Sports, Style & Fashion, Technology & Computing, Television, Travel, Video Gaming

Example Complete User Profile​

{
"user_id": "user123",
"email": "john.doe@example.com",
"phone": "+1234567890",
"birth_date": "1985-06-15",
"created_at": "2024-01-01T10:00:00Z",
"updated_at": "2024-01-15T14:30:00Z",
"device_ids": ["device1", "device2"],
"demographics": {
"age_range": "35-39",
"education_and_occupation": "Professional",
"gender": "Male",
"language": "United States",
"marital_status": "Married",
"income": "$75000 - $99999",
"location": {
"country": "US",
"region": "CA",
"city": "San Francisco",
"postal_code": "94105",
"timezone": "America/Los_Angeles"
},
"mo_location": {
"country": "US",
"region": "NY",
"city": "New York"
}
},
"communication_preferences": {
"email_opt_in": true,
"sms_opt_in": false,
"push_opt_in": true
},
"content_preferences": {
"interests": ["Technology & Computing", "Business and Finance", "News and Politics"],
"favorite_content_types": ["article", "video"],
"preferred_content_length": "medium",
"content_frequency": "daily"
}
}