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
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.
Token types
| Prefix | Use |
|---|---|
| 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" } }.
| Status | Meaning |
|---|---|
| 200 | OK |
| 400 | Bad request — missing or invalid text, see message |
| 401 | Missing or invalid API key |
| 403 | Key missing the required scope, plan has no API access, or monthly quota used up — see message |
| 429 | Too many requests this minute (rate limit) — back off and retry |
| 503 | Detector temporarily unavailable — retryable, try again shortly |
| 500 | Our 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.
Request body
| Field | Description |
|---|---|
| textstringREQUIRED | The English text to analyze, up to 50,000 characters per call. A per-sentence breakdown is always returned. |
Response
| Field | Description |
|---|---|
| humanization_scoreint | 0–100. Higher = more human. |
| ai_probabilityfloat | 0–1. Roll-up AI confidence. |
| verdictstring | human · mixed · ai |
| sentencesarray | Per-sentence object: text, score (0–1 AI probability), label (human/ai). |
| confidencefloat | 0–1. Detector confidence in the verdict. |
| modelstring | Which detector produced the result. |
| request_idstring | For 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.
Request body
| Field | Description |
|---|---|
| textstringREQUIRED | The text to rewrite. |
| tonestring | conversational · professional · academic · blog · email. Default conversational. |
| preservearray | Strings to lock as-is (citations, names, numbers). Anchored verbatim in the rewrite. |
| strengthint | 1–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.
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.
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.
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
| Date | Change |
|---|---|
| Jul 2026 | API v2 live: /v2/detect, /v2/score, /v2/rewrite. |