Skip to content

Instantly share code, notes, and snippets.

@hmseeb
Last active January 31, 2026 14:44
Show Gist options
  • Select an option

  • Save hmseeb/1c7ef981b487f99f49bdda2394c6ca0d to your computer and use it in GitHub Desktop.

Select an option

Save hmseeb/1c7ef981b487f99f49bdda2394c6ca0d to your computer and use it in GitHub Desktop.
Badaaas Supabase API Documentation

Badaaas Supabase API Documentation

REST API for querying Skool member data stored in Supabase. Data is synced from Skool every 2 hours.

Base URL

https://nssmjrrwhthzrjzpfokl.supabase.co/functions/v1

Overview

Endpoint Method Description
/get-member-by-email GET/POST Query member by email

Endpoints

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

Member Fields

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)

Errors

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

Data Sync

Member data is automatically synced from Skool every 2 hours via n8n automation:

  1. n8n triggers on schedule (every 2 hours)
  2. Calls Skool Scraper API to fetch latest member data
  3. Transforms and upserts to Supabase members table
  4. Members are matched by username (unique key)

Notes

  • Authentication: Public endpoint (no auth required)
  • Data Freshness: Updated every 2 hours
  • Community: Currently only badaaas community is synced
  • Format: Response format matches Skool Scraper API (camelCase, nested objects)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment