Unprofane

Change the base URL, keep the client

Google's Perspective API ends on December 31, 2026. api.unprofane.com/v1alpha1/comments:analyze answers the same request with the same response, the same error envelope and the key as ?key=.

80days left

One line changes

The path, the body, the response and the errors stay as they are. Only the host moves.

Same request

comment.text, requestedAttributes, languages, doNotStore, spanAnnotations. The production attributes and the experimental aliases.

Same response

attributeScores with summaryScore and spanScores, languages, detectedLanguages. Errors come back in Google's envelope.

Held to the document

The contract is tested against Google's own discovery document, so a field the old service had is a field this one has.

Guides by client

Each one is the two or three lines that change.

Map your thresholds first

The scores come from a different engine, so a threshold of 0.8 there is not 0.8 here. The replay tool takes a CSV of your texts with their old scores, runs them through this engine in memory, and shows the agreement and the threshold that keeps your queue the same size. Nothing is stored.

Open the replay tool

Before you switch

Research users
The Perspective API was free for research. So is the Research plan, for studying text rather than running a product: engine pinning included so a paper's numbers stay reproducible, a larger allowance for a one-off dataset on request, by application from the dashboard.
What is different
Every response also carries the Unprofane-Engine and Unprofane-Route headers, and the request counts as one check against the plan. Until the Civil Comments calibration ships, the scores are the engine's own scale rather than a fit to Perspective's; the replay tool says which is in force. The docs have the full list.