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"
}
}