Portreeve documentation

Portreeve is an abuse firewall for SaaS signups, trials, checkouts, and logins: one API call per screened action, one verdict back — allow, review, or block — with the reasons behind it. This page is the map; each section below is a short, self-contained guide.

Start here

GuideWhat you’ll do
Get set up in five minutesAccount → test key → first verdict via curl → see it in the dashboard.
Install the SDKnpm install portreeve. Zero runtime dependencies.
First verdict — Next.jsA complete signup route handler.
First verdict — ExpressThe same screening as reusable middleware.
Device fingerprintingThe browser snippet. Not optional if you take payments.
Test modeVerify the integration end to end before going live.

Integrate

TopicCovers
KeysSecret vs publishable, live vs test, where they live.
What to send per event typeCanonical payloads, the required-fields matrix, signals that go dark without a field.
Failure behaviorFail-open by default, degraded results, safe retries.
FeedbackReporting confirmed abuse and false positives back to the graph.

Enforce

TopicCovers
Handling verdictsThe one page to read fully: review never blocks, and what that means for your code.
The review.resolved webhookSignature verification, revocation, retries.
Checkout patternsCapture + refund vs Stripe manual capture, and when to pick which.
Fail-open vs fail-closedWhen blocking on our outage is the right trade.

Reference

TopicCovers
REST APIEndpoints, an example call, and the stored-event payload.
Rate limitsPer-key budgets and what a 429 means.
IdempotencySafe retries and the one way to get a 409.
ErrorsEvery error code the API returns.
Reason codesEvery code a verdict can carry, grouped by signal family.

Support

Email hello@portreeve.com — you’re talking to the founder, and anything wrong or unclear in these docs gets fixed fast.