{
  "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."
        }
      ]
    }
  ]
}
