Ghost · Schema

Ghost Member

A member represents a person who has signed up for a Ghost publication. Members can be free subscribers who receive newsletters, or paid subscribers with access to premium content through membership tiers. Members have associated labels for segmentation, newsletter subscriptions, and Stripe-based paid subscriptions.

PublishingNewslettersMembershipsSubscriptionCMSOpen-SourceContent

Properties

Name Type Description
id string Unique identifier for the member
uuid string Universally unique identifier for the member
email string Email address of the member, used as the primary identifier for signups
name stringnull Display name of the member
note stringnull Internal note about the member, visible only to staff
geolocation stringnull Geolocation data captured at signup time, stored as a JSON string
status string Membership status based on subscription state
labels array Labels applied to the member for segmentation and filtering
subscriptions array Paid subscriptions associated with the member, managed through Stripe
newsletters array Newsletters the member is subscribed to receive
avatar_image string Gravatar URL generated from the member email address
email_count integer Total number of emails sent to this member
email_opened_count integer Total number of emails opened by this member
email_open_rate numbernull Email open rate as a percentage
created_at string ISO 8601 timestamp when the member signed up
updated_at string ISO 8601 timestamp when the member record was last updated
View JSON Schema on GitHub

JSON Schema

ghost-org-member-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ghost.org/schemas/ghost/member.json",
  "title": "Ghost Member",
  "description": "A member represents a person who has signed up for a Ghost publication. Members can be free subscribers who receive newsletters, or paid subscribers with access to premium content through membership tiers. Members have associated labels for segmentation, newsletter subscriptions, and Stripe-based paid subscriptions.",
  "type": "object",
  "required": ["id", "email"],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the member"
    },
    "uuid": {
      "type": "string",
      "format": "uuid",
      "description": "Universally unique identifier for the member"
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "Email address of the member, used as the primary identifier for signups"
    },
    "name": {
      "type": ["string", "null"],
      "description": "Display name of the member",
      "maxLength": 191
    },
    "note": {
      "type": ["string", "null"],
      "description": "Internal note about the member, visible only to staff",
      "maxLength": 2000
    },
    "geolocation": {
      "type": ["string", "null"],
      "description": "Geolocation data captured at signup time, stored as a JSON string"
    },
    "status": {
      "type": "string",
      "description": "Membership status based on subscription state",
      "enum": ["free", "paid", "comped"]
    },
    "labels": {
      "type": "array",
      "description": "Labels applied to the member for segmentation and filtering",
      "items": {
        "$ref": "#/$defs/Label"
      }
    },
    "subscriptions": {
      "type": "array",
      "description": "Paid subscriptions associated with the member, managed through Stripe",
      "items": {
        "$ref": "#/$defs/Subscription"
      }
    },
    "newsletters": {
      "type": "array",
      "description": "Newsletters the member is subscribed to receive",
      "items": {
        "$ref": "#/$defs/NewsletterSubscription"
      }
    },
    "avatar_image": {
      "type": "string",
      "format": "uri",
      "description": "Gravatar URL generated from the member email address"
    },
    "email_count": {
      "type": "integer",
      "description": "Total number of emails sent to this member",
      "minimum": 0
    },
    "email_opened_count": {
      "type": "integer",
      "description": "Total number of emails opened by this member",
      "minimum": 0
    },
    "email_open_rate": {
      "type": ["number", "null"],
      "description": "Email open rate as a percentage",
      "minimum": 0,
      "maximum": 100
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the member signed up"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the member record was last updated"
    }
  },
  "$defs": {
    "Label": {
      "type": "object",
      "description": "A label for categorizing and segmenting members",
      "required": ["name"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the label"
        },
        "name": {
          "type": "string",
          "description": "Display name of the label",
          "minLength": 1,
          "maxLength": 191
        },
        "slug": {
          "type": "string",
          "description": "URL-safe slug for the label",
          "maxLength": 191
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Creation timestamp"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Last update timestamp"
        }
      }
    },
    "Subscription": {
      "type": "object",
      "description": "A paid subscription managed through Stripe, linking a member to a membership tier",
      "properties": {
        "id": {
          "type": "string",
          "description": "Stripe subscription identifier"
        },
        "customer": {
          "type": "object",
          "description": "Stripe customer associated with the subscription",
          "properties": {
            "id": {
              "type": "string",
              "description": "Stripe customer ID"
            },
            "name": {
              "type": ["string", "null"],
              "description": "Customer display name"
            },
            "email": {
              "type": "string",
              "format": "email",
              "description": "Customer email address"
            }
          }
        },
        "status": {
          "type": "string",
          "description": "Current subscription status",
          "enum": ["active", "trialing", "canceled", "unpaid", "past_due"]
        },
        "start_date": {
          "type": "string",
          "format": "date-time",
          "description": "When the subscription started"
        },
        "default_payment_card_last4": {
          "type": ["string", "null"],
          "description": "Last four digits of the payment card on file",
          "pattern": "^\\d{4}$"
        },
        "cancel_at_period_end": {
          "type": "boolean",
          "description": "Whether the subscription will cancel at the end of the current billing period"
        },
        "cancellation_reason": {
          "type": ["string", "null"],
          "description": "Reason provided for subscription cancellation"
        },
        "current_period_end": {
          "type": "string",
          "format": "date-time",
          "description": "End date of the current billing period"
        },
        "price": {
          "type": "object",
          "description": "Pricing details for the subscription",
          "properties": {
            "id": {
              "type": "string",
              "description": "Stripe price identifier"
            },
            "nickname": {
              "type": ["string", "null"],
              "description": "Human-readable price name"
            },
            "amount": {
              "type": "integer",
              "description": "Price amount in the smallest currency unit (e.g., cents)",
              "minimum": 0
            },
            "interval": {
              "type": "string",
              "description": "Billing interval",
              "enum": ["month", "year"]
            },
            "currency": {
              "type": "string",
              "description": "ISO 4217 currency code",
              "pattern": "^[A-Z]{3}$"
            }
          }
        }
      }
    },
    "NewsletterSubscription": {
      "type": "object",
      "description": "A newsletter that the member is subscribed to",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Newsletter identifier"
        },
        "name": {
          "type": "string",
          "description": "Newsletter display name"
        },
        "status": {
          "type": "string",
          "description": "Subscription status for this newsletter"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/ghost-org-member"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.