# Unprofane > A profanity and toxicity API that is hard to fool: one call answers whether a text can be shown (profanity, insults, slurs, threats, sexual content, sexual content involving a minor, which every policy blocks, and rudeness and the writer's own self-harm, which a standard policy holds for review), with the evidence (which words, where, how they were disguised, how severe), a one-sentence reason and a censored version. Byte-compatible Perspective API drop-in. No request text is stored. Base URL: https://api.unprofane.com. Auth: `Authorization: Bearer up_live_…`. The MCP server is at https://api.unprofane.com/mcp. The full docs in one file: https://unprofane.com/llms-full.txt ## Start - [Overview](https://unprofane.com/docs/) - [Quickstart](https://unprofane.com/docs/quickstart/) - [Examples](https://unprofane.com/docs/examples/) ## Guides - [Contexts](https://unprofane.com/docs/contexts/): What the text is changes how it is read. Usernames are split into words and checked backwards; comments are read as prose. - [Policies](https://unprofane.com/docs/policies/): How strict to be. Four presets, or your own map of category to allow, review or block, saved on the project. - [Evasion tags](https://unprofane.com/docs/evasion-tags/): Every way a writer disguises a word is normalised and named in the response, so you can see how the filter was fooled and choose what to do about it. - [Engine versions](https://unprofane.com/docs/engine-versions/): Versions are dated and immutable. Pin one per project or per request, read the changelog, and replay a sample before you move. - [Lists](https://unprofane.com/docs/lists/): Allow, block and reserved lists per project, from the dashboard or the API. Terms are folded the way the engine folds text, so a listed word matches its disguises too. - [Publishable keys](https://unprofane.com/docs/publishable-keys/): A key that may live in a browser or a game client, limited to /v1/check and to the origins you allow, with a per-address limit. - [Edge-only projects](https://unprofane.com/docs/edge-only/): A project setting that guarantees no text is ever sent to a model. The model client is not constructed, so no code path can reach it. - [Rate limits and quotas](https://unprofane.com/docs/rate-limits/): Bursts per key per minute by plan, the monthly allowance, what happens past it, how test keys are capped, and what a key does with no plan. - [Batch checks](https://unprofane.com/docs/batch/): Up to 100 texts in one request, each with its own id, answered in order. One bad item never fails the batch. - [Feedback](https://unprofane.com/docs/feedback/): Send a correction when a result is wrong. Corrections feed the lexicon, the innocent list and the calibration, never a silent change inside a pinned version. - [Perspective migration](https://unprofane.com/docs/perspective-migration/): Change the base URL and keep your client. The same path, the same JSON, the same errors, the key as ?key=. - [Privacy for developers](https://unprofane.com/docs/privacy/): What the API keeps and what it never keeps, in the terms a developer needs to answer their own users and their own lawyer. - [SDKs](https://unprofane.com/docs/sdks/): The JavaScript and Python clients: typed, no dependencies beyond the runtime, retries with jitter, and a batch helper for any number of texts. - [MCP server](https://unprofane.com/docs/mcp/): The same engine as a Model Context Protocol server, for coding agents and assistants. Three tools, the same keys, Streamable HTTP. ## Reference - [API reference](https://unprofane.com/docs/api/) - [Errors](https://unprofane.com/docs/errors/) - [openapi.json](https://unprofane.com/openapi.json) - [llms-full.txt](https://unprofane.com/llms-full.txt) - [OpenAPI document](https://api.unprofane.com/openapi.json) ## Optional - [Benchmarks](https://unprofane.com/bench/) - [The Scunthorpe Test: disguised spellings and innocent words, a public split to download](https://unprofane.com/bench/scunthorpe/) - [Head to head: Unprofane, the Perspective API, OpenAI moderation and the npm filters on the same judged texts](https://unprofane.com/bench/head-to-head/) - [Pricing](https://unprofane.com/pricing/) - [Perspective API migration](https://unprofane.com/perspective/) - [Username recipes](https://unprofane.com/usernames/) - [Privacy](https://unprofane.com/legal/privacy/)