Neuroslop API
AI-slop detector and text humanizer over HTTP. Deterministic checks with no LLM cost, humanization in 20 languages, unit-based billing, instant key.
Who it is for
Content platforms and CMS
Screen and QA text in the pipeline: flag machine slop before it goes live, humanize on demand.
Agencies and SEO tools
Check and humanize in bulk under your own product. One key, unit-based, no manual approval.
EdTech and writing tools
Score submissions and give writers a self-check with the exact markers, not a black-box percentage.
Why this API
Deterministic checks
/v1/check runs no LLM: the same text always returns the same score and markers. Fast, reproducible, cheap.
Detect and fix in one key
Check and humanization behind a single key. Score before and after comes back with the rewrite.
20 languages, instant key
Works across 20 languages. The key is issued on payment, with no waiting and no sales call.
MCP server
Connect neuroslop to your AI agent via MCP — it checks text for slop, humanizes it and strips hidden characters on its own. Works in Claude Code, Cursor, Codex, OpenClaw.
neuroslop_check
Liveliness score 0–100 and slop markers. Deterministic, no LLM call. 20 languages.
neuroslop_humanize
Rewrites machine text into natural writing, preserving meaning and length. Standard and Premium.
neuroslop_clean
Strips hidden characters: zero-width spaces, homoglyphs. Local, no key needed.
How to connect
- Buy an API key (in your account or the bot — issued instantly).
- Grab neuroslop-mcp.mjs (bundled with the skill) and add the config:
{
"mcpServers": {
"neuroslop": {
"command": "node",
"args": ["neuroslop-mcp.mjs"],
"env": { "NEUROSLOP_API_KEY": "ns_your_key" }
}
}
}
- Done — your agent gets three tools. In your account the key is filled in automatically.
Authentication
Every request carries the key in a header: Authorization: Bearer <key> or X-API-Key: <key>.
Get a key two ways, no manual approval:
- On the site — your profile → API: pick a pack, pay by card, SBP or USDT, the key is issued instantly.
- In the Telegram bot — @AITextChecker_bot → “🔌 API”: pay with Telegram Stars, the key arrives in the chat.
Pricing: units
A key has a monthly unit quota (resets each calendar month) plus a per-minute request limit. Calls spend units by weight:
| Call | Weight | What it does |
|---|---|---|
POST /v1/check | 1 | deterministic breakdown: score, verdict, markers |
POST /v1/rewrite tier=flash | 30 per 2,500 chars | humanization, Standard |
POST /v1/rewrite tier=pro | 100 per 7,500 chars | humanization, Premium: holds meaning and style deeper |
| Plan | Units / mo | Price | Requests / min |
|---|
A 3,000-unit pack is 3,000 checks, or 100 Standard humanizations, or 30 Premium. Checks are weight 1, Standard 30 per 2,500 characters, Premium 100 per 7,500.
POST/v1/check
Body: { "text": "...", "lang": "en" } (lang optional). Up to 8,000 characters.
curl -X POST https://neuroslop.net/v1/check \
-H "Authorization: Bearer ns_YOURKEY" \
-H "Content-Type: application/json" \
-d '{"text": "In today'"'"'s fast-paced world, it is important to note..."}'
Response:
{
"score": 34, // 0-100, lower = more slop
"verdict": "AI slop",
"lang": "en",
"words": 120,
"findingsCount": 9,
"findings": [ { "id": "cliche", "category": "Cliché", "severity": "high", "count": 4 }, ... ],
"remaining": 2999 // units left
}
POST/v1/rewrite
Body: { "text": "...", "tier": "flash" | "pro", "lang": "en" }. Defaults to tier=flash. Up to 8,000 characters.
curl -X POST https://neuroslop.net/v1/rewrite \
-H "Authorization: Bearer ns_YOURKEY" \
-H "Content-Type: application/json" \
-d '{"text": "...", "tier": "pro"}'
Response:
{
"text": "rewritten text",
"tier": "pro",
"scoreBefore": 34,
"scoreAfter": 96,
"remaining": 2870
}
GET/v1/balance
Key quota left: { plan, quota, used, remaining, resetMonth, perMinute }.
GET/v1/health
Service liveness, no key needed: { "ok": true, "llm": true }.
Errors
| Code | error | Meaning |
|---|---|---|
| 401 | no_api_key / unknown_key / disabled | missing or invalid key |
| 429 | rate_limited / quota | per-minute limit or monthly quota |
| 400 | text_required / too_long / bad_json | malformed request |
| 502/503 | rewrite_failed / llm_unavailable | LLM layer down, units not spent |