# Changelog and versioning

REST v1 uses explicit versioned paths and a stable snake_case contract.

## 1.0.0 — initial API contract

- Six POST endpoints under `/api/v1`: paraphrase, grammar, detect, translate, summarize and cite.
- Bearer keys, per-key rates/UTC monthly quotas, usage accounting and revocation.
- SSE for paraphrase rewrites, translation and summarization; consistent JSON errors and exact fix links.
- Grammar/citation/extractive summaries with zero LLM token cost.
- Public OpenAPI 3.1, Markdown pages, llms.txt/full, language samples, SDK archives, Postman and Insomnia exports.
- Origin-restricted paraphraser widget with a public identifier and no frontend secret key.

## Compatibility policy

Breaking changes to request/response meaning, removed fields, renamed fields, changed required parameters or incompatible error behavior require a new major REST path such as `/api/v2`. Additive optional fields, new optional parameters, new enum values and improved wording may be released within v1. Clients should tolerate unknown response fields and handle documented errors by `error.code`, not English message text. New enum values should be handled with a fallback in UI code.

OpenAPI `info.version` and SDK versions describe the contract release. SDK patch releases can fix client behavior without changing the API version. Keep the OpenAPI checksum with generated artifacts. Provider/model choice is runtime configuration and can change wording or model cost without a new API version; the response always reports the provider/model used.

Plans and deployment limits can change; runtime OpenAPI input limits and response rate/quota headers are authoritative. Deprecated endpoints will remain documented with a migration guide and a dated notice before removal. No prior versions or deprecation dates exist yet. This is an early access deployment with Free/Pro placeholders and no payments.
