Memberful

Memberful is a membership and subscription platform (owned by Patreon) that lets independent publishers, educators, and creators sell memberships, subscriptions, digital downloads, podcasts, and courses on their own site while Memberful handles checkout, recurring billing (via Stripe), and member management. Its public developer surface is a GraphQL API served per account at https://ACCOUNT.memberful.com/api/graphql, authenticated with an API key (bearer token) or OAuth 2.0 access token, covering Members, Subscriptions, Plans/Passes, Coupons, and Orders through queries and mutations. Memberful also provides OAuth 2.0 single sign-on for apps and HMAC-signed webhooks for member, subscription, plan, order, and download events.

5 APIs 0 Features
MembershipsSubscriptionsPaymentsCreatorsGraphQLPatreon

APIs

Memberful Members API

Query members and their profiles, emails, subscriptions, downloads, and custom JSON metadata (up to 50 keys), and create, update, or delete members through GraphQL mutations. Cu...

Memberful Subscriptions API

Read and manage member subscriptions - the link between a member and the pass/plan they pay for - including status, current period, trial state, activation and expiration, and t...

Memberful Plans and Passes API

Query the passes members subscribe to (called "Plans" in the dashboard) and the plans (pricing options such as monthly or annual) within each pass, including price, interval, an...

Memberful Orders API

Query orders (transaction records) for a member or account, including totals, status, coupons applied, and the member and plan involved. Orders back the order.purchased, order.c...

Memberful OAuth SSO API

OAuth 2.0 Authorization Code flow (with PKCE) for signing members into external apps. Authorize at /oauth, exchange the code at /oauth/token, then query the signed-in member at ...

Collections

GraphQL

Memberful GraphQL API

Memberful (a Patreon-owned membership and subscription platform) exposes a **native GraphQL API** - this is a real, documented GraphQL surface, not a REST-to-GraphQL projection.

GRAPHQL

Pricing Plans

Memberful Plans Pricing

3 plans

PLANS

Rate Limits

Memberful Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Memberful GraphQL API
  version: '1.0'
  description: 'Memberful (Patreon-owned membership and subscription platform) GraphQL API. Single endpoint per account: POST
    https://{{account}}.memberful.com/api/graphql, bearer-token (API key) or OAuth 2.0 authenticated. Requests POST a GraphQL
    `query`. Queries are honestly modeled from Memberful''s public docs and GraphQL API Explorer.'
request:
  auth:
    type: bearer
    token: '{{apiKey}}'
items:
- info:
    name: Members
    type: folder
  items:
  - info:
      name: Get member by ID
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { member(id: \"1\") { id fullName email subscriptions { id active plan { id label } } } }"}'
    docs: Retrieve a single member with their subscriptions.
  - info:
      name: List members (paginated)
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { members(first: 25) { edges { cursor node { id email fullName } } pageInfo { hasNextPage endCursor
          } } }"}'
    docs: List members with cursor-based pagination (first/after).
  - info:
      name: Create member
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"mutation { memberCreate(email: \"new.member@example.com\", fullName: \"New Member\") { id email fullName
          } }"}'
    docs: Create a new member (documented example mutation).
- info:
    name: Subscriptions
    type: folder
  items:
  - info:
      name: Get subscription by ID
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { subscription(id: \"1\") { id active status autorenew plan { id label priceCents interval
          } member { email } } }"}'
    docs: Retrieve a single subscription with its plan and member.
  - info:
      name: List subscriptions (paginated)
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { subscriptions(first: 25) { edges { node { id active status plan { label } } } pageInfo {
          hasNextPage endCursor } } }"}'
    docs: List subscriptions with cursor-based pagination.
- info:
    name: Plans and Passes
    type: folder
  items:
  - info:
      name: List passes
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { passes { id name forSale plans { id label priceCents interval } } }"}'
    docs: List passes (dashboard "Plans") and the pricing plans within each.
  - info:
      name: List plans
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { plans { id label priceCents currency interval intervalCount forSale } }"}'
    docs: List all plans (pricing options) across passes.
- info:
    name: Orders
    type: folder
  items:
  - info:
      name: List orders (paginated)
      type: http
    http:
      method: POST
      url: https://{{account}}.memberful.com/api/graphql
      body:
        type: json
        data: '{"query":"query { orders(first: 25) { edges { cursor node { id number status totalCents currency member { email
          } } } pageInfo { hasNextPage endCursor } } }"}'
    docs: List orders (transaction records) with cursor-based pagination.