REST API for querying Skool member data stored in Supabase. Data is synced from Skool every 2 hours.
https://nssmjrrwhthzrjzpfokl.supabase.co/functions/v1
| Endpoint | Method | Description |
|---|---|---|
/get-member-by-email |
GET/POST | Query member by email |
GET /get-member-by-email?email={email}
POST /get-member-by-email
Query a member from the database by their email address.
Authentication: None required (public endpoint)
GET Request
curl "https://nssmjrrwhthzrjzpfokl.supabase.co/functions/v1/get-member-by-email?email=user@example.com"POST Request
curl -X POST "https://nssmjrrwhthzrjzpfokl.supabase.co/functions/v1/get-member-by-email" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'Response (200 OK)
{
"member": {
"name": "John Doe",
"username": "johndoe",
"profileUrl": "https://www.skool.com/@johndoe?g=badaaas",
"avatarUrl": "https://assets.skool.com/...",
"memberSince": "2023-06-15",
"bio": "Software engineer",
"location": "San Francisco, CA",
"websiteUrl": "https://johndoe.com",
"level": 5,
"tier": "premium",
"socialLinks": {
"twitter": "https://twitter.com/johndoe",
"linkedin": "https://linkedin.com/in/johndoe",
"instagram": "https://instagram.com/johndoe",
"facebook": "https://facebook.com/johndoe",
"youtube": "https://youtube.com/@johndoe"
},
"email": "user@example.com",
"role": "group-member",
"points": 1250,
"ltv": 49.99,
"invitedBy": {
"userId": "user123",
"name": "Jane Smith",
"username": "janesmith"
},
"surveyAnswers": [
{ "question": "What is your profession?", "answer": "Software Engineer" }
],
"billing": {
"currency": "USD",
"amount": 49.99,
"interval": "month",
"model": "subscription"
}
}
}| Field | Type | Description |
|---|---|---|
name |
string | Display name |
username |
string | Skool username |
profileUrl |
string | Skool profile URL |
avatarUrl |
string? | Avatar image URL |
memberSince |
string? | Join date |
bio |
string? | User bio |
location |
string? | Location |
websiteUrl |
string? | Website URL |
level |
number? | Engagement level (1-9) |
tier |
string? | Membership tier: free, standard, premium, vip |
socialLinks |
object? | Social media URLs |
socialLinks.twitter |
string? | Twitter profile URL |
socialLinks.linkedin |
string? | LinkedIn profile URL |
socialLinks.instagram |
string? | Instagram profile URL |
socialLinks.facebook |
string? | Facebook profile URL |
socialLinks.youtube |
string? | YouTube channel URL |
email |
string? | Email address |
role |
string? | Role: group-owner, group-admin, group-moderator, group-member |
points |
number? | Engagement points |
ltv |
number? | Lifetime value (dollars) |
invitedBy |
object? | Referral info |
invitedBy.userId |
string? | User ID of inviter |
invitedBy.name |
string? | Name of inviter |
invitedBy.username |
string? | Username of inviter |
surveyAnswers |
array? | Array of survey question/answer objects |
billing |
object? | Payment details |
billing.currency |
string? | Payment currency (USD, etc.) |
billing.amount |
number? | Payment amount (dollars) |
billing.interval |
string? | Payment interval (month/year) |
billing.model |
string? | Payment model (subscription/one_time) |
| Status | Response | Description |
|---|---|---|
| 400 | {"error": "Email parameter is required"} |
Missing email |
| 404 | {"error": "Member not found", "email": "..."} |
No member with that email |
| 500 | {"error": "..."} |
Server error |
Member data is automatically synced from Skool every 2 hours via n8n automation:
- n8n triggers on schedule (every 2 hours)
- Calls Skool Scraper API to fetch latest member data
- Transforms and upserts to Supabase
memberstable - Members are matched by
username(unique key)
- Authentication: Public endpoint (no auth required)
- Data Freshness: Updated every 2 hours
- Community: Currently only
badaaascommunity is synced - Format: Response format matches Skool Scraper API (camelCase, nested objects)