Neuroslop API

Connect detection, detailed analysis and humanization to your app or AI assistant through API and MCP.

Get an API key Endpoints

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

The website's rule-based check is reproducible for the same input, settings, engine version and rule/dictionary snapshot.

Detect and fix in one key

Check and humanization behind a single key. Score before and after comes back with the rewrite.

Language-aware results

The response reports applicability. Russian and English have the most developed prose rules; other languages can have limited analysis.

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

Check AI writing signals, recurring constructions, rhythm and text structure. See the specific passages and explanations behind the result. Free and keyless through the hosted HTTPS API; anti-abuse rate limits apply.

neuroslop_humanize

Humanize AI drafts: reshape the delivery, make the language more natural and compare versions while checking important details. Only neuroslop_humanize requires an API key.

neuroslop_clean

Strips hidden characters: zero-width spaces, homoglyphs. Local, no key needed.

How to connect

  1. Free and keyless through the hosted HTTPS API; anti-abuse rate limits apply. Strips hidden characters: zero-width spaces, homoglyphs. Local, no key needed. Only neuroslop_humanize requires an API key.
  2. Download neuroslop-mcp.mjs and add the config:
{
  "mcpServers": {
    "neuroslop": {
      "command": "node",
      "args": ["neuroslop-mcp.mjs"]
    }
  }
}
  1. Replace the absolute path. NEUROSLOP_API_KEY is optional and is used only by neuroslop_humanize; neuroslop_check and neuroslop_clean work without a key.

Connect to your agent (MCP) Get a key in your account

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:

Pricing: units

API checking and rewriting for apps, bots and MCP. Unit costs depend on the operation and text length. The quota terms are shown for each pack; existing keys retain their purchased terms.

CallWeightWhat it does
POST /v1/check1deterministic breakdown: score, verdict, markers
POST /v1/rewrite tier=flash30 per 2,500 charshumanization, Standard
POST /v1/rewrite tier=pro100 per 7,500 charshumanization, Premium: holds meaning and style deeper
PlanUnitsPriceRequests / 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 20,000 characters.

Default limit for both endpoints: 20,000 UTF-16 code units, including spaces. A deployment may set a lower cap; GET /v1/health reports limits.maxInputChars, and too_long errors report max.

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": "Сильный нейрослоп — текст читается как сгенерированный",
  "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 20,000 characters.

curl -X POST https://neuroslop.net/v1/rewrite \
  -H "Authorization: Bearer ns_YOURKEY" \
  -H "Idempotency-Key: 018f-request-unique-id" \
  -H "Content-Type: application/json" \
  -d '{"text": "...", "tier": "pro"}'

Response:

{
  "text": "rewritten text",
  "tier": "pro",
  "scoreBefore": 34,
  "scoreAfter": 96,
  "qualityBasis": "editorial_review",
  "remaining": 2870
}
Units are spent only for an accepted rewrite. Returning the original does not spend units.

qualityBasis is editorial_review when an AI editorial review was confirmed, or unverified otherwise; it is not a guarantee of accuracy. unchanged=true returns the original with spent=0. reason is quality_unverified, no_improvement, or unchanged. A higher detector score is not required for an approved rewrite.

{
  "text": "original text",
  "tier": "pro",
  "scoreBefore": 90,
  "scoreAfter": 90,
  "unchanged": true,
  "reason": "quality_unverified",
  "qualityBasis": "unverified",
  "spent": 0,
  "remaining": 2870
}
For safe retries, send a unique Idempotency-Key with each rewrite. The same key and request replay the original response without another rewrite or charge; a changed request returns 409. This opt-in keeps the terminal response encrypted for up to 24 hours in a separate live cache excluded from application-managed backups. Without this header no response cache is created.

GET/v1/balance

Key quota left: { plan, quota, used, remaining, resetMonth, perMinute }.

quotaMode: "one_time", resetMonth: null
One-time unit pack. No monthly refill.
quotaMode: "monthly"
Monthly quota. Refills each calendar month.

GET/v1/health

Service liveness, no key needed: { "ok": true, "llm": true, "limits": { "maxInputChars": 20000 } }.

Errors

CodeerrorMeaning
401no_api_key / unknown_key / disabledmissing or invalid key
429rate_limited / quotaper-minute limit or exhausted units
409idempotency_conflict / idempotency_in_progressrequest key reused with another body, or the first request is still running
400text_required / too_long / bad_jsonmalformed request
502/503rewrite_failed / llm_unavailableLLM layer down, units not spent
Get an API key