M Mindie

API docs

Public endpoints for the Mindie umbrella. No auth, no API key. Drop the widget script into your site or call directly from your backend.

Contents:

Widget embeds InboxKit feedback WaitlistKit PingBot DigestKit Rate limits

Widget embeds

Drop these one-liners into your <head> or where you want the widget to appear.

InboxKit feedback widget (floating button)

<script src="https://inbox.mindie.dev/widget.js"
  data-board="YOUR_PUBLIC_KEY"
  data-color="#10b981"
  data-position="br"
  async></script>

WaitlistKit signup widget (inline form)

<script src="https://inbox.mindie.dev/waitlist.js"
  data-list="YOUR_LIST_KEY"
  data-color="#10b981"
  data-theme="dark"
  defer></script>

Renders an inline form at the script tag's location. After signup, shows a position-in-line card with a copy-able referral link.

InboxKit — feedback collection

POST/v1/feedback/public/:publicKey no auth

Submit feedback to a board.

# Request
curl -X POST https://inbox.mindie.dev/v1/feedback/public/YOUR_KEY \
  -H "Content-Type: application/json" \
  -d '{"title":"Dark mode please","body":"My eyes","email":"[email protected]"}'

# Response
{ "id": "cfb_xyz123..." }
GET/v1/boards/public/:publicKey no auth

Read public board metadata (used by the widget to fetch brand color, emoji).

WaitlistKit — pre-launch signups

GET/v1/waitlists/public/:publicKey no auth

Get list metadata + total signups.

# Response
{
  "id": "cwl_abc...",
  "name": "Mindie Newsletter",
  "publicKey": "MindieNews",
  "total": 42,
  "referralOn": true
}
POST/v1/waitlists/public/:publicKey/signup no auth

Submit an email to the waitlist. Returns position + referral code.

# Request
curl -X POST https://inbox.mindie.dev/v1/waitlists/public/YOUR_KEY/signup \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","ref":"OPTIONAL_REFERRAL_CODE"}'

# Response
{
  "position": 324,
  "referralCode": "k2pf83",
  "already": false
}
GET/v1/waitlists/public/:publicKey/position?email=[email protected] no auth

Look up a returning visitor's position.

PingBot — uptime monitor

GET/v1/ping/public/:publicKey no auth

Get current status + 24h history for an uptime monitor.

# Response
{
  "name": "InboxKit API",
  "url": "https://inbox.mindie.dev/v1/health",
  "currentOk": true,
  "lastChecked": "2026-05-18T23:10:00.150Z",
  "uptime24h": 100,
  "buckets": [
    { "hour": 23, "ok": 60, "fail": 0 },
    ...
  ]
}

DigestKit — brand mention digest

GET/v1/digest/public/:publicKey no auth

Recent HN + Reddit mentions for a tracked keyword.

# Response
{
  "term": "mindie",
  "sources": ["hn", "reddit"],
  "total": 21,
  "mentions": [
    {
      "source": "hn",
      "title": "Anthropic acquires Stainless",
      "url": "https://news.ycombinator.com/item?id=...",
      "author": "wiether",
      "score": 0,
      "postedAt": "2026-05-18T20:19:26.000Z"
    }
  ]
}

Rate limits

Per-endpoint rate limiting via Nest Throttler: 60 requests per minute per IP. Public endpoints are not strictly throttled today, but excessive abuse will earn a 429.

SurfaceLimitNotes
POST /v1/feedback/public/*60/min/IPSpam protection planned
POST /v1/waitlists/public/*/signup60/min/IPPer-list rate limit planned
GET /v1/ping/public/*60/min/IPUse a CDN if embedding
GET /v1/digest/public/*60/min/IPReturns last 25 mentions

CORS

All public endpoints accept Origin: * with credentials. Safe to call from any browser.