If you are building a CMS publish hook, an agency batch processor, or a content platform that moderates AI-generated submissions, the AI rewriter cannot live behind a paste-and-copy UI. It has to be an endpoint your code calls. TextSight ships a REST AI rewriter at POST api.textsight.ai/v2/rewrite with JSON in and JSON out and an adjustable rewrite strength per request. The same endpoint runs the same humanization engine as the web app, the Chrome extension, and the WordPress plugin, so what you build against is the same backend every TextSight surface uses. Available on Pro and above.
A paste-and-copy UI is fine for individual writers. It stops being fine the moment you are shipping software that processes content on behalf of users.
If your CMS asks the user to leave for a separate AI rewriter site and paste output back, you have lost the workflow. The Rewrite button has to live inside your editor, calling your backend, which calls the AI rewriter endpoint. The user never sees the dependency. TextSight's REST API is what makes that integration shape possible without rebuilding the model yourself.
Programmatic SEO platforms and content factories generate batches of drafts and need every piece rewritten and detector-checked before publish. That is a script, not a sequence of browser tabs. The API is the only way to wire detect, rewrite, re-detect, publish into a single automated flow. Run it nightly, run it on demand, run it from your CI pipeline.
If you are reselling authenticity to your own users, you need one upstream subscription, one set of credentials, and a pricing model that does not punish growth. Per-word credit packs do exactly that: every active customer eats your margin. A flat monthly subscription with a generous word quota on Business scales more predictably as your user base grows.
A small, stable JSON envelope. Two required fields. The rest are optional return-shape controls. The response is symmetric: the rewrite plus the metadata you asked for.
POST to https://api.textsight.ai/v2/rewrite with a JSON body. Authenticate with either Authorization: Bearer sk_live_... or the x-api-key header. Content-Type is application/json. The key needs the humanize scope. One key, one header, one endpoint.
text (required) is the source string to rewrite, up to 50,000 characters per request. Optional controls: tone (conversational, professional, academic, blog, or email), strength (an integer 1–5 — higher rewrites more aggressively; default 3), and preserve (an array of strings to keep verbatim, such as citations, names, and numbers).
The response is JSON: rewritten (the rewritten text), humanization_score (0–100, higher is more human), ai_probability (0–1), score_reliable (false when the detector was degraded during scoring — the rewrite is still valid), and request_id for support tickets.
The call runs a single rewrite pass and returns synchronously, which keeps it within request timeouts. A single pass may leave some sentences unchanged; for the deepest rewrite, run the draft through the web-app humanizer, which iterates further. There is no streaming or async job variant on the public endpoint today.
Free and Starter cover the web app and extension. REST API access starts on Pro (5,000 calls/month); Business raises the quota to 10,000 calls/month and adds team seats. Enterprise goes to 50,000.
Billed $89.88/year — Save $30
Billed $179.88/year — Save $60
Billed $359.88/year — Save $120
Yearly billing saves 25%. View full pricing →
A single header on every request. No OAuth dance, no per-endpoint scopes to manage. The key is the only credential and rotating it is a single click in the dashboard.
Sign in to the web app and open the API Keys page in the dashboard. Click Generate, copy the value once (it is displayed a single time and never recoverable afterwards), and store it as an environment variable in your application. Treat it as a secret the same way you treat a database password. The key is visible only at creation; if you lose it, you generate a replacement and update your env.
Pass the key as Authorization: Bearer sk_live_... (or the x-api-key header) on every request. The endpoint reads it once, checks it against the issuing account's tier and scopes, and counts a successful call against that account's monthly API-call quota. The same key works across the /v2 endpoints (detect, score, rewrite) — one credential, gated by scopes.
Each key carries scopes (scan, humanize, read) — the rewrite endpoint requires humanize. If a key leaks, revoke it from the API Keys page and generate a replacement; the revoked key returns 401 on its next call. Keys inherit the tier limits of the account that created them, so a Business key carries the 10,000 calls/month quota and the 120 requests-per-minute limit automatically.
No SDK ships yet because a thin wrapper in any language takes about 30 lines. The three snippets below call the synchronous rewrite endpoint.
curl -X POST https://api.textsight.ai/v2/rewrite \
-H "Authorization: Bearer $TEXTSIGHT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "The draft to rewrite.",
"tone": "conversational",
"strength": 3
}'
const res = await fetch("https://api.textsight.ai/v2/rewrite", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TEXTSIGHT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: draft,
tone: "conversational",
strength: 3,
}),
});
const data = await res.json();
console.log(data.rewritten, data.humanization_score);
import os, requests
resp = requests.post(
"https://api.textsight.ai/v2/rewrite",
headers={"Authorization": f"Bearer {os.environ['TEXTSIGHT_API_KEY']}"},
json={
"text": draft,
"tone": "conversational",
"strength": 3,
},
timeout=60,
)
data = resp.json()
print(data["rewritten"], data["humanization_score"])
{
"rewritten": "The rewritten, human-feeling version of the draft.",
"humanization_score": 87,
"ai_probability": 0.13,
"score_reliable": true,
"request_id": "req_01HX..."
}
An OpenAPI specification for the public endpoints is on the roadmap. Until it lands, the contract on this page and the /api-docs page is the source of truth.
The endpoint returns a complete JSON response in one request. There is no streaming or async job queue on the public endpoint today — both are on the roadmap, not shipped.
A rewrite runs one pass and returns the full result. This keeps the call well inside normal request timeouts. Because it is a single pass, it may leave some sentences unchanged; if you need the deepest possible rewrite, run the draft through the web-app humanizer, which iterates further.
Two limits apply. A per-minute rate limit: Pro 60, Business 120, Enterprise 240 requests per minute — exceed it and you get HTTP 429. A monthly call quota: Pro 5,000, Business 10,000, Enterprise 50,000 calls — exhaust it (or call on a plan without API access) and you get HTTP 403. Both are shared across every key on the account.
Errors return { "error": { "code", "message" } }. 401 for a missing or invalid key, 403 for a missing scope / no API access / exhausted quota, 429 for the per-minute rate limit, 503 if the detector is briefly unavailable (retryable).
Three integration patterns recur across customer pipelines. Each one runs on the same endpoint with different orchestration logic.
A pre-publish hook in your CMS calls the AI rewriter endpoint with the draft, waits on the response, and replaces the draft body with the rewritten version before the editor sees the publish-ready preview. Editors land on human-feeling prose without copy-pasting into a separate tool, and your platform looks like a single integrated workflow.
Content agencies queue client articles overnight and rewrite the batch in bulk. The script reads articles from a queue, calls the AI rewriter endpoint per article, and writes the rewrite back the next morning. The 10,000 monthly calls on Business cover most mid-sized agency volumes; loop within the per-minute rate limit (120/min on Business) to pace the overnight batch.
Platforms that accept user-submitted content (forums, marketplaces, knowledge bases) increasingly auto-rewrite AI-generated drafts to keep platform quality consistent. Detect first with /v2/detect to flag AI-heavy submissions, route flagged drafts through /v2/rewrite, then publish the rewrite with an audit trail.
The main AI rewriter landing page covering all source models, not just developer API access.
Open AI rewriter →Six detector APIs ranked for developers in 2026. Same REST surface as the AI rewriter.
Open the ranking →UI queue plus API workflows for teams processing large batches of drafts.
Read the guide →Full tier breakdown for Free, Starter, Pro, and Business. Annual billing saves 25%.
See pricing →A REST AI rewriter, adjustable rewrite strength per request, the same backend as the web app and extension. Generate an API key in two minutes.
How TextSight works for other regions and setups.