Rewrite API

Their draft. Your voice.

Rewrite moves your AI-generated content toward your writer's habits and phrases, sounding more human and more like you, formatted for where it will be published, with every number, name and link checked against the source.

  • Voice profiles from 2 samples
  • Facts locked or the call fails
  • Blog, X, LinkedIn, email presets

Draft · AI-assisted

0.94

In today's fast-paced world, getting paid on time matters more than ever. That's why we're excited to introduce Smart Reminders, a game-changing way to streamline your invoicing. Invoices unpaid after 14 days are now escalated automatically. In our beta, teams recovered $32,960 in late payments. Ultimately, it's not just about reminders, it's about building lasting client relationships. Learn more at intactvoice.com/reminders.

BlogXLinkedInEmail

Headline, short paragraphs, link at the end

Smart Reminders

Late invoices were eating our customers' weeks. So reminders escalate on their own now: anything unpaid after 14 days gets a firmer nudge. Beta teams got $32,960 in late payments back.

Details: intactvoice.com/reminders

14 days$32,960linkai_likelihood 0.94 → 0.12

Example output on sample text.

How it works

One call. Four things happen.

  1. 1

    Send the draft

    Any draft, human or AI-assisted, up to 25,000 words. You get a job id back at once.

    text, platform

  2. 2

    Pick the voice

    Reference a voice profile learned from that writer's own samples, or use the neutral house voice.

    voice_id

  3. 3

    Facts get locked

    Numbers, units, names and links are extracted from the source and checked against the output.

    fidelity: strict

  4. 4

    Get the receipts

    The finished job lists every check it ran and the Detect scores before and after, so you can audit it.

    fidelity.checks[]

Interactive example

Same draft. Three writers. Four platforms.

Pick a voice, a platform and a strength. The facts stay highlighted so you can see they never move.

Source draft

In today's fast-paced world, getting paid on time matters more than ever. That's why we're excited to introduce Smart Reminders, a game-changing way to streamline your invoicing. Invoices unpaid after 14 days are now escalated automatically. In our beta, teams recovered $32,960 in late payments. Ultimately, it's not just about reminders, it's about building lasting client relationships. Learn more at intactvoice.com/reminders.

Voice

Platform Hook first, one idea per line

Strength Rewords and reorders sentences in the voice.

{
  "voice_id": "voice_8f2k1x",
  "platform": "linkedin",
  "strength": "standard",
  "fidelity": "strict"
}

Output · Founder voice

Example

Founder voice

Founder · 1st

Late invoices were eating our customers' weeks.

So reminders escalate on their own now: anything unpaid after 14 days gets a firmer nudge.

Beta teams got $32,960 in late payments back.

Details: intactvoice.com/reminders

Fidelity

pass 3/3

AI-likelihood

0.94 0.12

Voice match

14 days$32,960link 33 words billed

Voice profiles

A voice is a set of habits.

Adjectives like “warm” or “punchy” don't describe anyone. Sentence spread, punctuation, how a person opens and how they sign off do. We measure those from real samples and apply them on every call.

X post · sample 1 of 6

Shipped the invoice export. 4 days late. Worth it: CSVs now open in Excel without mangling the dates.

Blog · sample 2 of 6

We tried weekly planning for a month. It didn't stick. What replaced it: one doc, three columns, updated on Fridays.

Team email · sample 3 of 6

Quick status: migration is 80% done. Two tables left. I'll post again Thursday.

Founder voice

voice_8f2k1x · 6 samples · 4,210 words

Sentence length

sd 9.4 words · wide spread

Punctuation / 100 words

  • Period8.1
  • Colon1.4
  • Comma3.2
  • Question0.3
  • Em dash0.0

Opens with

a verb or a fact

Ends on

a status update

Reveals with

a colon

Detect baseline

0.19

2–20 samples

At least 1,200 words in total. More samples, steadier voice.

Style only

Facts in samples are never copied into rewrites.

Included in every plan

Basic API 3, Pro API 15 and Ultra API unlimited.

Fidelity checks

Fluent is easy. Faithful is the job.

A rewrite that sounds better and says something different is worse than no rewrite. Every protected fact is checked, and strict mode fails closed.

Source · support policy

3 protected facts

Escalate any ticket older than 14 days to a team lead. Credits above $500 need finance approval. Full policy: intactvoice.com/support-policy.

A typical humanizer

200 OK

Tickets that have been sitting for more than 14 weeks should go to a team lead. Credits over $500 need a sign-off from finance. See intactvoice.com/support-policy.

Shipped with a different policy. “14 days” became “14 weeks”. No error, no warning, and the reader can't tell.

IntactVoice · fidelity: strict

Anything open longer than 14 days goes to a team lead. Credits over $500 need finance to approve them first. The full policy is at intactvoice.com/support-policy.

  • number_unit

    14 days

  • currency

    $500

  • url

    link

200 OK · fidelity.status: "pass"

“14 days” → “14 weeks” is a real output from a humanizer we tested. Source: our lab test, Oct 2026. Example text rewritten for illustration.

Numbers & units

14 days stays 14 days. Not two weeks, not 14 weeks.

Money & percentages

$32,960 and 80% come out exactly as they went in.

Names

People, products and places are matched against the source.

Links

URLs are compared character for character.

Your exact strings

Anything in preserve must appear unchanged: quotes, prices, taglines.

Tech specs

Endpoint

POST /v1/rewrite · model rewrite-2026-10

Base URL https://api.intactvoice.com/v1

Input

20 to 25,000 words of plain text per request

Platforms

blog x thread linkedin email generic

Each applies its own length, hook and formatting conventions

Strength

light wording only · standard rewords and reorders · deep may restructure

deep is included on Pro API, Ultra API and Enterprise

Fidelity modes

strict fails the request with 422 if any protected fact changes. Not billed.

standard returns the text plus warnings for you to review

Voice profiles

2 to 20 samples, at least 1,200 words in total

Samples shape style only; their facts are never copied into rewrites

Samples are deleted once the profile is built

Async-first

Every rewrite is a job by default: 202 with a job id, then a signed webhook or GET /v1/jobs/{job_id}

async: false waits on short texts, with a 120 s timeout

Response extras

Token-level diff with return_diff

Detect scores for source and output

words_in, words_out and words_billed on every call

Turnaround

Depends on length, strength and queue depth; each job returns an estimate

Results arrive by webhook, or poll the job

Availability

Async jobs wait for worker capacity

Current service status

Rate limits

Basic API 60 req/min, Pro API 180 req/min and Ultra API 600 req/min

Enterprise: by agreement

Billing

1 word of allowance per word rewritten

Requests that fail a strict fidelity check use no words

Past the allowance: pay as you go at $0.55 per 1,000 words, only if you switch it on, with a spend cap

Your text

Deleted when processing finishes

Results deleted once delivered, or after 60 minutes if not collected

What happens to your text

API

The contract.

Everything on this page maps to a documented field. Here's the request, its parameters and the endpoints around it.

Request
curl -X POST https://api.intactvoice.com/v1/rewrite \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "Many businesses struggle to create useful blog posts because the writer receives only a topic. Escalate any case older than 14 days.",
  "voice_id": "voice_8f2k1x",
  "platform": "blog",
  "strength": "standard",
  "fidelity": "strict"
}'
Response
{
  "id": "job_01JD4QC7",
  "object": "job",
  "type": "rewrite",
  "status": "queued",
  "estimated_seconds": 35,
  "poll_url": "/v1/jobs/job_01JD4QC7"
}
POST/rewriteapi.intactvoice.com/v1

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.

ParameterTypeDescription
textrequiredstringSource text, 20–25,000 words.
voice_idstringA voice profile created with POST /voices. Omit to use the neutral house voice.
platformblog | x | thread | linkedin | email | genericApplies platform conventions: length, formatting, hooks, hashtags.Default generic.
strengthlight | standard | deeplight edits wording only; deep may restructure the argument.Default standard.
fidelitystrict | standardstrict fails the request if any protected fact changes; standard returns warnings.Default strict.
preservestring[]Exact strings that must appear unchanged (product names, quotes, prices).
return_diffbooleanInclude a token-level diff between source and output.Default false.
asyncbooleanDefault. 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).Default true.
webhook_urlstringCalled with the finished job. Recommended for production.

Billed on input words. Requests that fail a strict fidelity check are not billed.

FAQ

Questions, answered.

Something missing? Email support@intactvoice.com.

It can, and we're open about it. We score how your text reads to AI detectors, rewrite it so it sounds less like a machine and more like you, and show you the before-and-after scores on every job. The scores move because the writing changes; we don't use hidden characters or other tricks, and we don't promise any particular result from any third-party detector. Using it for coursework or exams, by students or in academic settings, or to get around a government or licensing requirement is prohibited. See the Acceptable Use Policy.

Your writers, at scale.

Create a voice from two samples, send a draft, and read the receipts. Annual plans cost 10 months' price for 12.

  • Annual: 2 months free
  • Failed fidelity checks use no words
  • Cancel anytime