Rewrite
Rewrite text
Moves a draft toward a writer's measured habits and phrasing, so it reads more human and more like them. Every number, unit, name and link in the source is checked against the output; a changed fact fails the job instead of shipping. Rewrites run as asynchronous jobs; completion time depends on text length, selected stages and queue depth.
Billing. Billed on input words. Requests that fail a strict fidelity check are not billed. Credits & pricing
Body
application/jsontextstringrequiredSource text, 20–25,000 words.
voice_idstringA voice profile created with POST /voices. Omit to use the neutral house voice.
platformenumdefault: genericApplies platform conventions: length, formatting, hooks, hashtags.
blogxthreadlinkedinemailgenericstrengthenumdefault: standardlight edits wording only; deep may restructure the argument.
lightstandarddeepfidelityenumdefault: strictstrict fails the request if any protected fact changes; standard returns warnings.
strictstandardpreservestring[]Exact strings that must appear unchanged (product names, quotes, prices).
return_diffbooleandefault: falseInclude a token-level diff between source and output.
asyncbooleandefault: trueDefault. Returns a job immediately (202); the result arrives by webhook or GET /jobs/{job_id}. Set false to hold the connection open for short texts (times out after 120 s).
webhook_urlstringCalled with the finished job. Recommended for production.
Response
200 · application/jsonidstringJob id, e.g. job_01J…
statusenumqueued on creation; poll or wait for the webhook. The finished job's result holds the rewrite.
estimated_secondsintegerRough time to completion for this length and strength.
result.textstringOn the finished job: the rewritten text.
result.fidelityobjectOn the finished job: status (pass | warn | fail) and every fact check performed.
result.signalsobjectOn the finished job: Detect scores for the source and the output, for comparison.
result.usageobjectOn the finished job: words_in, words_out and words_billed.