HTTP API
Add “Rewrite with Overwride” to your own product. One call rewrites a draft and stores its Overwride record; two free calls let anyone check a post or read a record. Rewrites need the Pro or API plan.
Rewrite a draft
POST https://overwride.com/api/v1/rewrite
Authorization: Bearer ow_live_…
Content-Type: application/json
{ "draft": "The draft text", "title": "Optional, only the owner sees it" }draft is required, up to 1,000 words. title is optional and shown only to the account owner. A 200 looks like this:
{
"id": "7Gx2kQm9Pa",
"rewrite": "The rewritten text",
"footer": "Overwride rewrite. Check: overwride.com/c/7Gx2kQm9Pa",
"draft_retained": true,
"balance": { "credits_mills": 0, "seat_remaining": 998 }
}Save id with your post and publish rewrite exactly as returned. If the author wants the footer, add a blank line and footer after it. Leave it off unless they ask. Allow up to 60 seconds for the call. Keep the key on your server and never send it to a browser.
From a shell:
curl https://overwride.com/api/v1/rewrite \
-H "Authorization: Bearer $OVERWRIDE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"draft": "ok so dark mode is live!! took way longer than we thought"}'Errors
Errors come back as { "error": "<code>", "message": "…" }.
| Status | error | What to do |
|---|---|---|
| 400 | empty_draft | Send a non-empty draft string. |
| 401 | unauthorized | The key is missing, wrong or revoked. |
| 402 | no_active_plan | The account has no active plan. |
| 402 | quota_exhausted | This month’s rewrites are used up and there isn’t enough credit. |
| 403 | plan_channel_not_allowed | The account is on Starter, which is web app only. |
| 413 | too_long | Drafts are limited to 1,000 words. |
| 502 | rewrite_failed | The model failed. Nothing was charged; try again. |
A rewrite that fails is never charged.
Check a post (free, no key)
POST https://overwride.com/api/v1/check
Content-Type: application/json
{ "text": "A whole post, footer included, or an overwride.com/c/… link" }An exact match returns the record’s id and link; anything else returns the no-match sentence:
{ "match": true, "claim": "…", "id": "7Gx2kQm9Pa", "url": "https://overwride.com/c/7Gx2kQm9Pa" }
{ "match": false, "claim": "We can't tell whether Overwride was used." }Limited to 30 checks a minute per caller. Checked text isn’t stored.
Read a record (free, no key)
GET https://overwride.com/api/v1/c/<id>Returns the public Overwride record as JSON: id, url, claim, draft, rewrite and created_at. It never includes the owner. An unknown id returns 404.
Billing
On Pro, each rewrite uses one of the plan’s 1,000 monthly rewrites, then credits at €0.018 each. The API plan (€129 a month +VAT) has no monthly cap and spends credits from the first rewrite. Credit packs are €10, €25 and €50 (+VAT) and last 12 months. See pricing.