Developer Platform

Build on MemberPad

Connect trading bots, sync CRMs, automate content, and receive real-time events. The MemberPad Developer API and Webhooks give your community superpowers.

API Keys

Scoped permissions per key with rotation support. Grant only the access each integration needs.

Chat Bots

Post rich messages, trade alerts, and structured cards to any chat room in real-time.

Webhooks

Real-time event notifications with HMAC signatures, exponential backoff, and delivery tracking.

Member Sync

Read member profiles, subscription status, and engagement data for CRM and analytics.

Quick Start

Your first API call in seconds

Generate an API key from your community admin panel, then start making requests.

1

Create an API Key

Go to Admin → Developer API → Create API Key. Select the scopes you need and save the key securely.

2

Authenticate

Include your key in the X-Api-Key header on every request.

3

Make a Request

Call any endpoint on https://api.memberpad.com/dev/v1 — you're live.

# Post a message to a chat room
curl -X POST https://api.memberpad.com/dev/v1/chat/rooms/{roomId}/messages \
  -H "X-Api-Key: sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "BUY Signal - AAPL at $185.20",
    "format": "card",
    "card": {
      "title": "BUY Signal - AAPL",
      "fields": [
        { "label": "Entry", "value": "$185.20" },
        { "label": "Target", "value": "$192.00" },
        { "label": "Stop Loss", "value": "$181.50" }
      ],
      "color": "#22c55e"
    }
  }'
API Reference

Everything your integration needs

RESTful JSON API with scoped authentication, rate limiting, and comprehensive coverage.

Chat

GET/chat/rooms
POST/chat/rooms/{id}/messages
GET/chat/rooms/{id}/messages
DEL/chat/rooms/{id}/messages/{id}

Scopes: chat:readchat:write

Members

GET/members
GET/members/{id}
POST/members/invite

Scopes: members:readmembers:write

Posts

GET/posts
POST/posts
PUT/posts/{id}

Scopes: posts:readposts:write

Courses

GET/courses
GET/courses/{id}/progress/{memberId}
POST/courses/{id}/lessons/{id}/complete

Scopes: courses:readcourses:write

Events

GET/events
POST/events
PUT/events/{id}

Scopes: events:readevents:write

Stock Picks

GET/stock-picks/lists
GET/stock-picks/lists/{id}/picks
POST/stock-picks/lists/{id}/picks

Scopes: stock-picks:readstock-picks:write

HTTPS
Protocol
JSON
Format
100/min
Rate Limit
16
Permission Scopes
GUIDs
Resource IDs
Webhooks

Real-time events, delivered

Get notified instantly when things happen in your community. HMAC-signed, automatically retried, fully logged.

Membership

member.joined
member.left
member.role_changed

Subscriptions

subscription.created
subscription.cancelled
subscription.renewed
subscription.plan_changed

Payments

payment.succeeded
payment.failed
payment.refund_issued

Content

post.published
course.completed
course.lesson_completed
event.created

Commerce

product.purchased

Engagement

comment.created
chat.message_posted

HMAC-Signed Payloads

Every delivery includes a X-MemberPad-Signature header containing a SHA-256 HMAC of the JSON body, signed with your webhook's unique secret. Verify it server-side to ensure the payload is authentic.

Automatic Retries

Failed deliveries (non-2xx or timeout) are retried with exponential backoff:

1 Immediate
2 +1 min
3 +5 min
4 +30 min
5 +2 hours

Full Delivery Logs

Every attempt is logged with HTTP status, response body, duration, and error details. Retry any failed delivery with one click from the admin panel.

import crypto from "crypto";
import express from "express";

const SECRET = "whsec_your_signing_secret";
const app = express();

// Use raw body for accurate HMAC computation
app.use(express.json({
  verify: (req, res, buf) => { req.rawBody = buf; }
}));

app.post("/webhooks/memberpad", (req, res) => {
  const signature = req.headers["x-memberpad-signature"];
  const expected = "sha256=" + crypto
    .createHmac("sha256", SECRET)
    .update(req.rawBody)
    .digest("hex");

  if (!crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  )) {
    return res.status(401).send("Invalid signature");
  }

  // Handle the event
  const { event, data } = req.body;
  console.log(`Received: ${event}`, data);

  res.status(200).send("OK");
});
Use Cases

What will you build?

📈

Trading Bots

Post buy/sell signals, P&L summaries, and market alerts directly into chat rooms from your algorithmic trading system.

📊

CRM Sync

Keep your CRM up-to-date with member data, subscription status, and engagement metrics via the Members API and webhooks.

📰

Content Automation

Auto-publish posts from RSS feeds, AI pipelines, or content management systems directly into your community.

🔔

Slack / Discord Bridges

Forward new member notifications, payments, and support tickets to your team's Slack or Discord channels via webhooks.

🎓

External LMS

Sync course progress and completion data with your existing learning management system.

💰

Revenue Dashboards

Pipe payment and subscription events into analytics tools like Mixpanel, Amplitude, or Google Sheets.

Security

Built for trust

Scoped API Keys16 granular permissions. A chat bot never needs member data access.
HMAC-SHA256 SignaturesEvery webhook delivery is cryptographically signed with your unique secret.
Rate Limiting100 req/min per key with burst protection. Headers tell you your remaining budget.
Audit LogsEvery API call and webhook delivery logged with timestamps, IPs, and response codes.
HTTPS OnlyAll API traffic and webhook deliveries require TLS encryption. No exceptions.
Community IsolationAPI keys are scoped to a single community. Cross-community access is impossible.

Ready to build?

Create your community, generate an API key, and start integrating in minutes.