# API проверки текста по ключу и обычному JSON.

> Как запускать проверку текста на признаки ИИ из своего кода: ключ, эндпоинты, примеры на curl, Python и Node.js, ошибки и лимиты.

- URL: https://authortext.com/ru/developers
- Language: ru
- Site: AuthorText (https://authortext.com/)

Тот же анализ, что на сайте, для ваших программ: оценка, метрики, места в тексте с цитатами, очистка и разметка. Запросы и ответы в JSON.

## Эндпоинты

Ключ работает для этих запросов. Запросы кабинета и оплаты по ключу не проходят.

| Method | Path | Body | Purpose |
| --- | --- | --- | --- |
| POST | `/api/analyze` | `{"text": "..."}` | Оценка, метрики, места в тексте с цитатами, водяные знаки |
| POST | `/api/clean` | `{"text": "..."}` | Очистка: удаление скрытых символов и типографики; слишком длинный текст обрезается до лимита тарифа (truncated, limit) |
| POST | `/api/highlight` | `{"text": "..."}` | Разметка найденных мест для подсветки |
| POST | `/api/fetch-url` | `{"url": "..."}` | Загрузка страницы по адресу и анализ её текста |
| POST | `/api/extract-file` | `файл` | Текст из файла: PDF, DOCX, ODT, RTF, EPUB, FB2, HTML, TXT |
| GET | `/api/me` |  | Тариф ключа и его пределы |

## Что важно знать

- **Без хранения.** Текст живёт только в памяти: на диск он не пишется и в журналы не попадает.
- **Ключ и тариф.** Ключ создаётся в кабинете и показывается один раз: сервер хранит только его отпечаток. Новый ключ заменяет старый.
- **Один формат ошибок.** Ошибка всегда приходит в виде {"error": {"code", "message"}}, без трассировок.
- **Текст, ссылка, файл.** Можно отправить текст, адрес страницы или целый документ.

## API по ключу: тарифы «Про» и «Макс»

Цены и лимиты берутся с сервера, поэтому не расходятся с реальными. Live data: https://authortext.com/api/plans.

- Ключ API входит в тарифы «Про» и «Макс».
- Все виды анализа и разбор по фрагментам
- Заголовок Authorization: Bearer для анализа, очистки, разметки, загрузки по ссылке и из файла
- Ключ работает, пока идёт оплаченный период

## Ошибки и ограничения

| Код HTTP | code | Когда |
| --- | --- | --- |
| 400 | `invalid_json` | Тело запроса - невалидный JSON |
| 413 | `payload_too_large` | Запрос слишком большой |
| 415 | `unsupported_media_type` | Content-Type не application/json |
| 422 | `empty_text / invalid_text` | Поле text пустое, не передано или не строка |
| 422 | `text_too_long` | Текст длиннее предела тарифа; в ответе limit и plan |
| 429 | `rate_limited` | Запросов слишком много, подождите: сколько именно, сказано в заголовке Retry-After |

- Запросы считаются «пачкой»: сначала можно отправить подряд столько запросов, сколько указано выше, а дальше - столько в секунду. Загрузка по ссылке и из файла стоит 5 запросов; текст длиннее 100 000 знаков стоит ещё по 1 запросу за каждые 100 000.
- Если ключа нет, он неверный или просрочен, ошибки не будет: запрос пройдёт как бесплатный, с бесплатными пределами (3 000 знаков). Какой тариф сейчас действует, видно в GET /api/me.
- Оценка - ориентир, а не доказательство авторства.

## Ключ создаётся в кабинете

Оформите подписку «Про» или «Макс», зайдите в кабинет, найдите раздел «Ключ API» и нажмите «Создать ключ».

## Links

- [Home](https://authortext.com/ru/index.md)
- [plans](https://authortext.com/ru/plans.md)
- [help](https://authortext.com/ru/help.md)
- [developers](https://authortext.com/ru/developers.md)
- [about](https://authortext.com/ru/about.md)
- [method](https://authortext.com/ru/method.md)
- [faq](https://authortext.com/ru/faq.md)
- [privacy](https://authortext.com/ru/privacy.md)
- [terms](https://authortext.com/ru/terms.md)
- [articles](https://authortext.com/ru/articles/index.md)
