# feat.press API docs

feat.press publishes a public HTTP API for the affiliate marketplace. The machine-readable contract is the feat.press OpenAPI 3.1 document.

## OpenAPI specification

- JSON: https://www.feat.press/openapi.json
- YAML: https://www.feat.press/api/openapi.yaml

The feat.press OpenAPI document describes:

- `GET /api/marketplace/listings`: browse live listings. Query: `q`, `sort` (charts, new, reward), `compensation` (all, commission, upfront, both), `category`, `minCommission` (20, 30, or 50), `minStorefronts` (1, 5, or 10), `offset`, `limit` (max 48). Scope: `read:listings`. No API key.
- `GET /api/marketplace/listings/{slug}`: listing detail. Scope: `read:listings`.
- `POST /api/waitlist`: waitlist intake. `email` is required. Optional: `name`, `handle`, `role`. Scope: `write:waitlist`.
- `POST /api/licenses/verify`: verify a buyer license key. `productId` is optional. Scope: `read:licenses`.
- `GET /api/app-entitlements/{id}`: entitlement snapshot (Bearer `feat_sk_live_` key). Scope: `read:entitlements`.
- `POST /api/app-entitlements/{id}/cancel`: cancel at period end. Requires `Idempotency-Key` (8 to 200 characters). Scope: `write:entitlements`.
- `POST /api/app-entitlements/{id}/resume`: undo scheduled cancel. Same idempotency header. Scope: `write:entitlements`.

Every response includes `API-Version: 2026-07-18`. Clients may send that header or omit it. Named scopes are on the OpenAPI `FeatScopes` scheme and at https://www.feat.press/.well-known/oauth-protected-resource.

## feat.press API versioning and deprecation

The current feat.press HTTP API version is 2026-07-18. A breaking change ships as a new date. The previous date stays available for at least 180 days. During that window the old date sends Deprecation (RFC 9745) and Sunset (RFC 8594). The current version does not send those headers.

Marketplace, waitlist, and entitlement errors are JSON `{ "success": false, "error": "…" }`. License verify errors are `{ "valid": false }`, with an `error` string when the key is malformed or the server fails. None of these are RFC 9457 problem documents.

See also: [feat.press authentication](https://www.feat.press/developers/authentication), [feat.press webhooks](https://www.feat.press/developers/webhooks), [feat.press MCP server](https://www.feat.press/developers/mcp).
