newsletter

Embed
Preview of the card
<a href="https://hermeticor.com/docs/ref-newsletter"><img src="https://hermeticor.com/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/6ddb6b60-e4af-4ab8-9e30-d59475817fd4/social-card.svg?v=3e7ae33eec8b" alt="newsletter" width="600" height="315"></a>
GEThttps://hermeticor.com/v1/newsletter/revenue

MRR, ARR, churn, ARPU, LTV, trial conversion, by tier and by month

Parameters

monthsintegerquery
= 12

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/newsletter/revenue" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "currency": "string",
  "mrrMinor": 0,
  "arrMinor": 0,
  "activePaid": 0,
  "trialing": 0,
  "newLast30": 0,
  "churnedLast30": 0,
  "churnRate": 0,
  "arpuMinor": 0,
  "ltvMinor": 0,
  "trialConversion": 0,
  "byTier": [
    {
      "tierId": "string",
      "name": "string",
      "members": 0,
      "mrrMinor": 0
    }
  ],
  "byMonth": [
    {
      "month": "string",
      "newPaid": 0,
      "churned": 0,
      "netNew": 0,
      "mrrMinor": 0,
      "revenueMinor": 0,
      "tipsMinor": 0
    }
  ]
}
Schema
currencystringrequired
mrrMinorintegerrequired
arrMinorintegerrequired
activePaidintegerrequired
trialingintegerrequired
newLast30integerrequired
churnedLast30integerrequired
churnRatenumberrequired
arpuMinorintegerrequired
ltvMinorintegerrequired
trialConversionnumberrequired
byTierobject[]required
Show child parameters
tierIdstringrequired
namestringrequired
membersintegerrequired
mrrMinorintegerrequired
byMonthobject[]required
Show child parameters
monthstringrequired
newPaidintegerrequired
churnedintegerrequired
netNewintegerrequired
mrrMinorintegerrequired
revenueMinorintegerrequired
tipsMinorintegerrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

GEThttps://hermeticor.com/v1/newsletter/revenue.csv

Revenue by month as CSV

Parameters

monthsintegerquery
= 12

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/newsletter/revenue.csv" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/webhooks/stripe-memberships/{workspaceId}

Parameters

workspaceIdstringpathrequired

Code samples

cURL
curl -X POST "https://hermeticor.com/webhooks/stripe-memberships/{workspaceId}"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "received": true
}
Schema
receivedbooleanrequired
true
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/p/checkout/{ws}

Public: start a paid subscription Checkout (used by paywall and subscribe pages)

Parameters

wsstringpathrequired

Request body

application/json
emailstringrequired
tierIdstringrequired
intervalstring
month | year = month
couponCodestring
seatsinteger
successUrlstring
cancelUrlstring
optInboolean
= false
fromPostIdstring
{
  "email": "string",
  "tierId": "string",
  "interval": "month",
  "couponCode": "string",
  "seats": 0,
  "successUrl": "string",
  "cancelUrl": "string",
  "optIn": false,
  "fromPostId": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/p/checkout/{ws}" \
  -H "Content-Type: application/json" \
  -d '{"email":"string","tierId":"string","interval":"month","couponCode":"string","seats":0,"successUrl":"string","cancelUrl":"string","optIn":false,"fromPostId":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "url": "string"
}
Schema
urlstringrequired
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/p/tip/{ws}

Public: tip or pay-what-you-want one-off payment

Parameters

wsstringpathrequired

Request body

application/json
emailstring
amountMinorintegerrequired
currencystring
messagestring
successUrlstring
cancelUrlstring
{
  "email": "string",
  "amountMinor": 0,
  "currency": "string",
  "message": "string",
  "successUrl": "string",
  "cancelUrl": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/p/tip/{ws}" \
  -H "Content-Type: application/json" \
  -d '{"email":"string","amountMinor":0,"currency":"string","message":"string","successUrl":"string","cancelUrl":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 200 · POST /p/checkout/{ws}

4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/p/gift-buy/{ws}

Public: buy a gift subscription (returns the Checkout link)

Parameters

wsstringpathrequired

Request body

application/json
buyerEmailstringrequired
recipientEmailstring
tierIdstringrequired
intervalstring
month | year = year
messagestring
successUrlstring
cancelUrlstring
{
  "buyerEmail": "string",
  "recipientEmail": "string",
  "tierId": "string",
  "interval": "year",
  "message": "string",
  "successUrl": "string",
  "cancelUrl": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/p/gift-buy/{ws}" \
  -H "Content-Type: application/json" \
  -d '{"buyerEmail":"string","recipientEmail":"string","tierId":"string","interval":"year","message":"string","successUrl":"string","cancelUrl":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "gift": {
    "id": "string",
    "tierId": "string",
    "interval": "month",
    "status": "pending_payment",
    "recipientEmail": "string",
    "buyerEmail": "string",
    "redeemUrl": "string",
    "redeemedAt": "2024-01-01T00:00:00Z",
    "createdAt": "2024-01-01T00:00:00Z"
  },
  "checkoutUrl": "string"
}
Schema
giftobjectrequired
Show child parameters
idstringrequired
tierIdstringrequired
intervalstringrequired
month | year
statusstringrequired
pending_payment | paid | redeemed | expired
recipientEmailstringrequired
buyerEmailstringrequired
redeemUrlstringrequired
redeemedAtstringrequired
createdAtstringrequired
checkoutUrlstringrequired
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

GEThttps://hermeticor.com/p/gift/{ws}/{code}

Gift redeem page

Parameters

wsstringpathrequired
codestringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/p/gift/{ws}/{code}"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/p/gift/{ws}/{code}

Redeem a gift subscription for an email address

Parameters

wsstringpathrequired
codestringpathrequired

Request body

application/json
{}

Code samples

cURL
curl -X POST "https://hermeticor.com/p/gift/{ws}/{code}" \
  -H "Content-Type: application/json" \
  -d '{}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

GEThttps://hermeticor.com/p/account/{token}

Reader account page behind a signed link: plan, invoices, change plan, cancel

Parameters

tokenstringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/p/account/{token}"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

POSThttps://hermeticor.com/p/account/{token}/{action}

Account page actions (change plan, cancel, resume, billing portal, team seats)

Parameters

tokenstringpathrequired
actionstringpathrequired
plan | cancel | resume | portal | invite | remove

Request body

application/json
{}

Code samples

cURL
curl -X POST "https://hermeticor.com/p/account/{token}/{action}" \
  -H "Content-Type: application/json" \
  -d '{}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
"string"
4XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

5XX Default Response

Same as 4XX · GET /v1/newsletter/revenue

Updated