feat.press

feat.press developer resources

feat.press is the affiliate marketplace for products AI helps you build. This page documents the feat.press HTTP API, OpenAPI specification, authentication, entitlement webhooks, license verification, and the feat.press MCP server so agents and app backends can integrate without scraping the UI.

feat.press OpenAPI specification

The feat.press OpenAPI 3.1 document is published at /openapi.json. It covers public marketplace reads, waitlist intake, license verification, and authenticated app entitlement endpoints.

feat.press authentication

Public marketplace reads and license verification do not require an API key.

Merchant-server calls (entitlement lookup, cancel, resume) use the product-scoped feat.press app API key:

Authorization: Bearer feat_live_<key>

License keys issued to buyers are verified with POST /api/licenses/verify and JSON { "licenseKey": "...", "productId": "..." }. Buyer PII is never returned.

feat.press webhooks

feat.press sends signed JSON to the HTTPS endpoint you configure on an app product when entitlements change.

  • Header feat-signature: t=<unix_seconds>,v1=<hex>
  • Header feat-event-id (same as payload id)
  • Verify HMAC-SHA256 of `${t}.${rawBody}` with your webhook secret. Reject timestamps older than 300 seconds with HTTP 400. Duplicates must return 200 without side effects.

Event types: webhook.test, entitlement.activated, entitlement.renewed, entitlement.updated, entitlement.cancellation_scheduled, entitlement.past_due, entitlement.expired, entitlement.revoked.

Official SDK: @feat-press/node.

feat.press MCP server

Streamable HTTP JSON-RPC lives at /mcp. Discovery: /.well-known/mcp.json. The server advertises resources and tools; resources/list returns at least one feat.press document.

feat.press public HTTP API

  • GET /api/marketplace/listings — browse live listings
  • GET /api/marketplace/listings/{slug} — listing detail
  • POST /api/waitlist — waitlist intake
  • POST /api/licenses/verify — verify a buyer license key
  • GET /api/app-entitlements/{id} — entitlement snapshot (Bearer app key)
  • POST /api/app-entitlements/{id}/cancel — cancel at period end
  • POST /api/app-entitlements/{id}/resume — undo scheduled cancel

feat.press agent entry points