Developer guide
Your workflow.
Our editor.
Bring multilingual rewriting and the same AI review process into your application.
Existing accounts only. Public registration is paused.
GET capabilities
POST rewrite + approved quote
GET operation → reviewed result
Availability & authentication
Returns availability, maxCharacters, charactersPerUnit and creditsPerUnit. Availability indicates server configuration, not a live inference health check.
Sign in with POST /api/v1/auth/login using email and password. Send the returned accessToken as a Bearer token. Keep credentials on your server.
Submit an approved rewrite
Requires Authorization and an Idempotency-Key header: 8–100 letters, digits, hyphens or underscores. Use a new UUID for each intentional rewrite; reuse it for retries of the exact same request.
Authorization: Bearer <accessToken>
Idempotency-Key: <unique-request-uuid>
Content-Type: application/json
{
"text": "Your original draft.",
"instructions": "An email to my team. Clear and friendly.",
"voiceSample": "",
"acceptedCredits": 2
}Calculate the quote
2 * Math.ceil(Array.from(text).length / 1000)Maximum 6,000 Unicode code points. Instructions: 600 UTF-16 units; voice sample: 1,200. The server recalculates the quote. Client-controlled models, endpoints and prompts are not accepted.
Retrieve the result
The rewrite response contains an operation ID. Poll every 2 seconds until COMPLETED, FAILED or CANCELLED. A cold worker can take several minutes. The result.data JSON contains text, language, context, changes, warnings and the AI review.
Download using GET /api/v1/operations/:id/download. Both endpoints enforce account ownership.
Retry safely
Final failures refund credits. An old key returns the same job, even after failure. Retry ambiguous network errors with the original key. Use a new key only for an intentional new attempt; do not automatically loop over failed rewrites.
Error reference
- 400
- Invalid input or changed quote
- 401
- Expired or missing session
- 402
- Insufficient credits
- 403
- Registration is closed
- 409
- Idempotency conflict
- 429
- Rate limit reached
- 503
- Editing unavailable
Polling failures do not imply the rewrite failed. Check history before creating another job. Previous file API endpoints remain available; text editing has its own endpoint and pricing.