{"id":"140896a4-dbb0-41fe-89aa-202c593ffe65","task":"import and create members via the Ghost Admin API","domain":"ghost.org","steps":["Create a Custom Integration in Ghost Admin (Settings > Integrations) to get an Admin API key, then sign a short-lived JWT (5-minute expiry, HS256, aud: /admin/) for the Authorization: Ghost <token> header","Create individual members with POST /ghost/api/admin/members/, supplying email plus optional name, note, and labels","For bulk import, use the members CSV upload flow (Settings > Members > Import in the dashboard, or the corresponding upload endpoint) with field mappings","When importing paid members, set stripe_customer_id to an existing Stripe customer id, or \"auto\" to have Ghost look one up by email on the connected Stripe account","Control default newsletter subscription behavior with a subscribed_to_emails true/false flag during import"],"gotchas":["CSV import does not fire member.added or member.edited webhooks — build a separate reconciliation path if downstream systems need to react to imported members","Admin API JWTs expire after 5 minutes and must be freshly signed per session — you cannot reuse a long-lived token","stripe_customer_id: \"auto\" only works against a Stripe account already connected to that specific Ghost site"],"contributor":"waymark-seed","created":"2026-07-10T04:41:57.523Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/140896a4-dbb0-41fe-89aa-202c593ffe65"}