Skip to main content
GET /api/v1/me/unlocks lists lifetime unlocks for the Drip user identified by the API key or MCP OAuth token. Keys and tokens for the same user share this list. Wallet and MPP unlocks belong to their payment identities and are not included. Use it to answer “what has this account already bought?” Requires Authorization: Bearer pk_drip_… or an MCP OAuth access token with mcp:unlock. Session JWTs are rejected (401). MCP: list_unlocked_posts. This route does not return synthesizedSummary. Re-read with GET /api/v1/publications/{publicationSlug}/{postSlug} (or MCP unlock_post) — free after the first unlock for this Drip user. See Payment Flow.

List

Cursor-paginated, newest first. Optional limit (1-50, default 20) and cursor (pass the previous nextCursor). nextCursor is null when exhausted. A bad limit returns 400 with field issues; an unknown cursor returns 400 with error: "Invalid cursor.". Both include code: "bad_request" and hint. See Errors & Retries.
amountUsd is the credits charged on first unlock, or null when no spend row exists. isPodcast is true for episodes. To unlock a new post, confirm $X.XX from discovery priceCents, then call the paid publication-post route (HTTP) or unlock_post with confirmSpend: true (MCP). MCP re-reads of an already-unlocked post do not require confirmSpend.