PayPulse Docs

PayPulse API Quickstart

Get MRR, churn, LTV, and subscription data through a single REST API.

PayPulse Developer API

PayPulse is a subscription intelligence API. Connect your Stripe (or Braintree) account once, and read clean, normalized metrics — MRR, ARR, churn, LTV, customers, subscriptions — over HTTPS.

1. Get an API key

Sign in to PayPulse and visit Settings → API Keys. Click Create API key, name it (e.g. production), and pick the scopes you need:

  • read:metrics — MRR / ARR / churn / LTV snapshots and time series
  • read:subscriptions — list and inspect subscriptions
  • read:customers — list and inspect customers (hashed IDs, no PII)
  • write:webhooks — register and manage webhook endpoints

Copy the key (it starts with pp_live_ or pp_test_). You will only see it once.

2. Make your first request

curl https://paypulseapp.com/v1/metrics/current \
  -H "Authorization: Bearer pp_live_..."

You will receive your latest snapshot:

{
  "data": {
    "id": "snap_...",
    "date": "2026-05-13",
    "mrr_cents": 1842500,
    "arr_cents": 22110000,
    "active_subscriptions": 184,
    "churn_rate": "0.024",
    "...": "..."
  },
  "meta": { "request_id": "req_..." }
}

3. Explore the endpoints

EndpointPurpose
GET /v1/meIdentify the calling key
GET /v1/metrics/currentLatest MRR / ARR / churn snapshot
GET /v1/metrics/timeseries?metric=mrrDaily history for any metric
GET /v1/metrics/snapshotsPaginated daily snapshots
GET /v1/subscriptionsList subscriptions
GET /v1/customersList customers (hashed IDs)
GET /v1/connectionsYour active processor connections
GET /v1/billing/portalStripe billing portal URL for your PayPulse plan

Every response is wrapped in a { data, meta } envelope; errors are { error: { type, code, message, doc_url, request_id } }.

4. Rate limits

Rate limit headers are returned on every response:

  • X-RateLimit-Limit — requests per minute on your plan
  • X-RateLimit-Remaining — requests left in this window
  • X-RateLimit-Reset — unix timestamp when the bucket refills
  • Retry-After — seconds to wait (only sent on 429)

What is next

  • The same data is exposed over MCP for Claude, Cursor, and other MCP-aware tools.
  • Subscribe to webhooks to get notified the moment MRR moves.

On this page