Skip to main content

Documentation Index

Fetch the complete documentation index at: https://documentation.outpost.pub/llms.txt

Use this file to discover all available pages before exploring further.

The Integration API is available to publications using the Custom Integration feature. To enable it, go to Integrations → Custom in Outpost and connect a custom integration.
The Outpost Integration API lets you create, read, update, and delete members programmatically. It’s designed for connecting external systems — CRMs, form tools, membership platforms — that need to sync member data with Outpost.

Base URL

All API requests use the integration endpoint:
https://your-outpost-domain.com/integration

Authentication

Authenticate using the Integration key from your Custom Integration settings. Include it as a Bearer token in the Authorization header:
GET /integration/members/jane@example.com
Authorization: Bearer your_integration_key
Content-Type: application/json
Your integration key is found in Integrations → Custom after connecting the integration.
Store your integration key securely. It provides full access to create, read, update, and delete members on your publication.

Response format

All responses use a consistent JSON structure: Success:
{
  "success": true,
  "data": {
    "guid": "abc-123-def",
    "email": "jane@example.com",
    "name": "Jane Smith",
    "is_subscribed": true,
    "note": "Joined via partner form",
    "labels": ["partner", "newsletter"],
    "tier_id": null,
    "status": "free",
    "created_at": "2026-01-15T10:30:00Z",
    "updated_at": "2026-01-15T10:30:00Z"
  },
  "message": "Member retrieved successfully."
}
Error:
{
  "success": false,
  "message": "Member not found."
}

Member fields

FieldTypeDescription
guidstringUnique member identifier
emailstringMember’s email address
namestringFull name
is_subscribedbooleanWhether the member is subscribed to newsletters
notestringNotes or description
labelsarrayLabel names applied to the member
tier_idstring | nullStripe product ID of the member’s tier (null for free members)
member_idstring | nullCustom member ID (only when using Custom ID mode)
statusstringOne of: free, paid, complimentary
created_attimestampWhen the member was created
updated_attimestampWhen the member was last updated

Integration modes

Custom integrations operate in one of two modes: Email mode (default) — Members are identified by email address in all API requests. One member per email. Custom ID mode — Members are identified by a custom ID you provide (e.g., an ID from your external system). This mode optionally allows multiple members to share the same email address. The mode is configured when you set up the custom integration in Outpost.

Rate limiting

API requests are limited to 30 requests per minute. Exceeding this returns a 429 Too Many Requests response with a Retry-After header.

Endpoints

See Members API for the full endpoint reference.

FAQ

The API creates free members only. Paid subscriptions require a Stripe checkout flow. You can set a member’s tier_id to associate them with a tier, but billing is managed through Stripe.
Yes. All member changes made via the API are automatically synced to your connected Ghost publication.
Email mode identifies members by their email address (one member per email). Custom ID mode lets you assign your own identifier to each member, which is useful when syncing with external systems that have their own member IDs. Custom ID mode can optionally allow duplicate emails.
Not currently. The API supports get, create, update, and delete operations on individual members. For bulk data, use the Data Export feature.