REST API v2

Detect & rewrite, from your backend.

JSON in, JSON out. Detect AI content and run the AI Rewriter over REST. Detection is English-language.

3
Live endpoints
REST
JSON in / out
EN
English detection
5K → 50K
Calls / mo · Pro → Ent

Introduction

The TextSight API exposes core dashboard actions over REST: detect AI content, run the AI Rewriter, and pull per-sentence scores. Detection is English-language.

Base URL: https://api.textsight.ai/v2

All requests use JSON. All responses are JSON.

Available on

Free / StarterNot included
Pro5,000 calls/mo
Business10,000 calls/mo
Enterprise50,000 calls/mo

Every live endpoint is available on Pro and above; what each key can do is controlled by its scopes, not by tier.

Authentication

Send your key in every request — either as a Authorization: Bearer sk_live_… header or as x-api-key: sk_live_…. Generate one in Settings → API Keys. Keep it server-side; never in client JS.

Header Authorization: Bearer sk_live_…

Token types

PrefixUse
sk_live_…Your API key. Every call counts toward your monthly quota. What a key can do is set by its scopes: scan · humanize · read · admin.

Errors & rate limits

Standard HTTP status codes. Errors return a JSON body shaped { "error": { "code", "message" } }.

StatusMeaning
200OK
400Bad request — missing or invalid text, see message
401Missing or invalid API key
403Key missing the required scope, plan has no API access, or monthly quota used up — see message
429Too many requests this minute (rate limit) — back off and retry
503Detector temporarily unavailable — retryable, try again shortly
500Our problem. Try again; if it persists, ping support.

Rate limits

  • Pro: 60 requests / min · Business: 120 / min · Enterprise: 240 / min
  • Limits are per account (shared across all your keys), separate from your monthly call quota.
  • Hit the limit and you get a 429. Back off and retry.

Detect AI content

The bread-and-butter endpoint. Submit text, get back sentence-level scores and an Authenticity Score.

POST /v2/detect

Request body

FieldDescription
textstringREQUIREDThe English text to analyze, up to 50,000 characters per call. A per-sentence breakdown is always returned.

Response

FieldDescription
humanization_scoreint0–100. Higher = more human.
ai_probabilityfloat0–1. Roll-up AI confidence.
verdictstringhuman · mixed · ai
sentencesarrayPer-sentence object: text, score (0–1 AI probability), label (human/ai).
confidencefloat0–1. Detector confidence in the verdict.
modelstringWhich detector produced the result.
request_idstringFor support tickets.

Rewrite AI text

Rewrite AI-sounding text so it reads like a human. Returns the rewritten text plus the before/after Authenticity Score.

POST /v2/rewrite

Request body

FieldDescription
textstringREQUIREDThe text to rewrite.
tonestringconversational · professional · academic · blog · email. Default conversational.
preservearrayStrings to lock as-is (citations, names, numbers). Anchored verbatim in the rewrite.
strengthint1–5. Higher = more aggressive rewrite. Default 3.

Response

Returns { rewritten, humanization_score, ai_probability, score_reliable, request_id }. score_reliable is false when the detector was degraded while scoring — the rewrite is still valid; re-scan for a confirmed score. Runs a single pass to stay within request timeouts.

Score only

Just the Authenticity Score, no per-sentence breakdown — a lighter payload than /v2/detect.

POST /v2/score

Body: { text }. Returns { humanization_score, ai_probability, confidence, request_id }. Typical latency 1–3s (longer on a cold detector).

Bulk scan

🚧 Coming soon — async batch detection over many documents in one call.

POST /v2/bulk

Not yet available. Today, loop /v2/detect over your documents within your plan's monthly call quota. This section updates when async batch ships.

Job status

🚧 Coming soon — pairs with /v2/bulk to poll async job progress.

GET /v2/jobs/<job_id>

Not yet available — ships with bulk scan.

Model attribution

🚧 Roadmap — not yet available. TextSight detects whether text is AI-generated; attributing it to a specific model family (ChatGPT vs Claude vs Gemini) is planned but not live. The API does not return an attribution object today.

Webhooks

🚧 Coming soon. Webhooks for async work (bulk jobs, long-running rewrites) are planned and ship alongside bulk scan. Today, all live endpoints respond synchronously.

Official SDKs

🚧 Coming soon. Official SDKs aren't published yet — the API is plain JSON over HTTPS, so any HTTP client works today (see the cURL example). This section will list install commands once the SDKs are released.

Changelog

DateChange
Jul 2026API v2 live: /v2/detect, /v2/score, /v2/rewrite.

Ready to ship?

Create an API key from your dashboard and start with a few lines of JSON. Available on Pro and above.

Get an API key See API pricing