API Текстовода и MCP-сервер

Через API и MCP доступны те же сервисы, что на сайте: проверки текста, антиплагиат, ИИ-детектор, ИИ-сервисы, перевод субтитров, озвучка текста, распознавание записей и детектор ИИ-картинок. Запросы тратят знаки вашего ПРО, общие с сайтом.

Содержание

С чего начать

  1. Подключите ПРО: запросы списывают знаки ПРО.
  2. Создайте ключ на странице ключей API. Ключ показывается один раз.
  3. Передавайте ключ в заголовке Authorization: Bearer ваш_ключ.

Как устроен запрос

Работа идёт в два шага: отправить текст и получить результат по номеру задачи. Запросы и ответы в JSON, кодировка UTF-8.

Отправить текст

POST https://textovod.com/api/v2/text/{сервис}
Authorization: Bearer ваш_ключ
Content-Type: application/json
Accept: application/json

{"text": "Ваш текст", "lang": "ru"}
ПолеЗначение
textТекст. Обязательное поле, пределы длины зависят от сервиса.
langЯзык текста для проверок или язык ответа для ИИ-сервисов. По умолчанию ru.
idТолько для чата: номер предыдущей задачи, чтобы продолжить диалог.
searchТолько для чата: поиск в интернете перед ответом — on (всегда), auto (только для вопросов о фактах, новостях, ценах и законах) или off (по умолчанию). Каждый поиск — ещё 2 000 знаков ИИ; в ответе — поле result.sources с источниками, на которые ссылается текст ([1], [2]…).
modeТолько для перефраза: стиль — standard (по умолчанию), formal (официальный), simple (простыми словами), creative (творческий), shorten (короче примерно на 30 %), expand (длиннее примерно на 30 %).
strengthТолько для перефраза: сила изменений — 1 лёгкая правка, 2 обычная (по умолчанию), 3 максимальная уникальность.
freezeТолько для перефраза: слова и фразы через запятую, которые нужно оставить без изменений (термины, имена), до 300 знаков.
deny_domainТолько для уникальности: сайты через запятую, совпадения с которыми не учитываются (например, ваш сайт), поддомены тоже. В ответе — поле excluded.
voiceТолько для озвучки: голос — olga (по умолчанию), vera, nina, daria, pavel, igor, andrey или artem.

Ответ:

{"status": 3, "id": "9f1c2b7e-..."}

Получить результат

Пока задача в работе, приходит только статус. Готовый результат лежит в поле result. Результат хранится 7 дней.

POST https://textovod.com/api/v2/text/{сервис}/result
Authorization: Bearer ваш_ключ
Content-Type: application/json

{"id": "9f1c2b7e-..."}

Ответ:

{"status": 2, "id": "9f1c2b7e-...", "result": {"text": "..."}}

Статусы

3задача в очереди
1задача выполняется
2готово, результат в поле result
0ошибка, текст в messages, код в error
30нечем платить: знаки ПРО закончились или ПРО не подключён

Коды ошибок

no_charsЗнаки ПРО закончились. Докупите знаки на странице ПРО.
need_proПРО не подключён и остатка баланса нет.
too_shortТекст короче минимальной длины сервиса.
unavailableСервис временно недоступен, знаки не списаны.
in_progressПредыдущее сообщение чата ещё обрабатывается.
failedЗадачу выполнить не удалось.
rejectedЗапрос отклонён, причина в messages.
bad_fileФайл не подходит: формат, размер или картинка слишком маленькая, причина в messages.
too_longЗапись длиннее предела одного файла.
too_many_tasksСлишком много задач этого сервиса в работе одновременно или минут записи за час. Дождитесь результата предыдущих.
expiredФайл результата уже удалён по истечении срока хранения.
{"status": 30, "error": "no_chars", "messages": ["Знаки ПРО закончились. Каждая оплата ПРО сразу добавляет знаки: https://textovod.com/pro"]}

Коды HTTP

401ключ не передан или отозван
403задача принадлежит другому пользователю
404задача не найдена
422неверные поля запроса, подробности в errors
429слишком много запросов

Сервисы

Сервис Что делает Длина текста Знаки Языки
spelling Проверка орфографии. Находит орфографические ошибки и предлагает варианты исправления. Результат приходит сразу. 1 – 500 000 ИИ ru, en, de, fr, es, it, pt
punctuation Проверка пунктуации. Расставляет запятые и другие знаки препинания. 1 – 100 000 ИИ ru, en, fr, es, de, it, pt
unique Проверка уникальности. Антиплагиат: ищет совпадения текста в интернете и считает уникальность в процентах. 100 – 200 000 антиплагиат не задаётся
ai-detector ИИ-детектор. Оценивает, написан ли текст нейросетью, и показывает подозрительные фрагменты. 250 – 200 000 антиплагиат не задаётся
grammar Автокорректор. Исправляет грамматические, орфографические и пунктуационные ошибки, сохраняя смысл и стиль. 1 – 35 000 ИИ больше 100 языков
paraphrase Перефразирование. Переписывает текст другими словами с сохранением смысла. 1 – 35 000 ИИ больше 100 языков
rewrite Рерайт. Автоматический рерайт: заменяет слова и обороты, повышая уникальность текста. 1 – 100 000 ИИ ru
translate Переводчик. Переводит текст на язык, указанный в поле lang. 1 – 35 000 ИИ больше 100 языков
summarize Сокращение текста. Сокращает текст, оставляя главное. 1 – 35 000 ИИ больше 100 языков
expand Расширение текста. Дополняет и развивает текст. 1 – 35 000 ИИ больше 100 языков
write Написать текст по теме. Пишет текст по теме или заданию из поля text. 1 – 35 000 ИИ больше 100 языков
titletext Заголовок для текста. Придумывает заголовок к тексту. 1 – 35 000 ИИ больше 100 языков
dream Толкование снов. Толкует сон, описанный в тексте. 1 – 35 000 ИИ больше 100 языков
chat Чат с нейросетью. Отвечает на сообщение. Чтобы продолжить диалог, передайте id предыдущей задачи. 1 – 35 000 ИИ больше 100 языков
subtitle-translate Перевод субтитров. Переводит субтитры SRT на язык lang. Номера и таймкоды остаются как в исходнике, переводится только текст реплик; длинный файл переводится частями. 5 – 200 000 ИИ больше 100 языков
text-to-speech Озвучка текста. Читает текст вслух естественным голосом и возвращает MP3. Каждый знак текста тратит 2 знака ИИ. 2 – 50 000 ИИ ru, en, pt, es, fr, de, it

Что лежит в result

spelling count — число найденных ошибок; matches — список ошибок: offset и length — положение в тексте, mes — описание, rep — варианты замены; text — проверенный текст. Результат приходит сразу в ответе на отправку.
punctuation text — текст с расставленными знаками; marked — тот же текст, добавленные знаки в теге mark; details — правки по абзацам и статистика; paragraphs — абзацы текста после очистки, к которым относятся правки; original — исходный текст. Правка в details.punctuation: add — знак rep вставляется сразу после символа с номером offset; delete — убираются length символов начиная с offset; register — length символов начиная с offset заменяются на rep (смена регистра); ok — знак на месте. Правки абзаца применяются от конца к началу, по убыванию offset.
unique originality — уникальность в процентах; sources — источники совпадений: url, domain, similarity — доля совпадений в процентах; text — проверенный текст.
ai-detector verdict и verdict_title — итог; stats — доля ИИ-текста и подозрительных фрагментов; segments — фрагменты: start, end, type, confidence. Тот же текст, проверенный за последнюю неделю, знаков не тратит: готовый результат приходит сразу со статусом 2.
grammar text — исправленный текст.
paraphrase text — перефразированный текст.
rewrite text — переписанный текст; original — исходный текст.
translate text — перевод.
summarize text — сокращённый текст.
expand text — расширенный текст.
write text — готовый текст.
titletext text — заголовок.
dream text — толкование.
chat text — ответ; messages — весь диалог.
subtitle-translate text — переведённые субтитры SRT.
text-to-speech url — ссылка на MP3, работает без ключа до expires_at (24 часа); seconds — длительность звука; chars, voice, lang.

У ИИ-сервисов вместе с result приходит поле messages со всем диалогом, как и раньше.

Распознавание аудио и видео

Аудио или видео в текст с временем реплик и разделением по говорящим. Файл до 50 МБ отправляется одним запросом в поле file, больше — частями, до 2048 МБ и 5 часов записи. Только API 2, в MCP этого сервиса нет.

curl -X POST https://textovod.com/api/v2/media/transcribe \
  -H "Authorization: Bearer ваш_ключ" -H "Accept: application/json" \
  -F "file=@interview.mp3" -F "lang=ru" -F "speakers=1"

{"status": 3, "id": "5b0e8d1a-...", "minutes": 12}
ПолеЗначение
filemp3, wav, m4a, ogg, oga, opus, flac, aac, wma, amr, 3gp, mp4, mov, webm, mkv, avi, mpeg, mpg, m4v, wmv
uploadЗагрузка частями: начните её с именем файла и размером в байтах, отправьте части по порядку (index с нуля, размер части приходит в поле chunk), затем передайте номер загрузки в поле upload вместо file. Незаконченная загрузка удаляется через 2 часа.
langЯзык записи: auto (по умолчанию, определяется по первым 30 секундам) или ru, en, uk, be, kk, de, fr, es, it, pt, pl, tr, zh, ja, ko, ar.
speakers1 — разделить текст по говорящим: реплики «Спикер 1: …» и номер говорящего у каждой реплики.
POST https://textovod.com/api/v2/media/transcribe/upload
{"name": "lecture.mp4", "size": 734003200}
→ {"upload": "c41f...", "chunk": 8388608}

POST https://textovod.com/api/v2/media/transcribe/upload/c41f...   (multipart: index=0, chunk=@part0)
→ {"received": 8388608}

POST https://textovod.com/api/v2/media/transcribe
{"upload": "c41f...", "lang": "auto"}
  • Минута записи тратит 1000 знаков ИИ, минуты округляются вверх; если распознать не удалось — знаки возвращаются. Одновременно в работе до 2 записей и не больше 600 минут записи за час, иначе отказ too_many_tasks.
  • Файл записи удаляется сразу после распознавания, текст хранится 7 дней.
POST https://textovod.com/api/v2/media/transcribe/result
{"id": "5b0e8d1a-..."}

{"status": 2, "id": "5b0e8d1a-...", "result": {"text": "Спикер 1: Добрый день.\nСпикер 2: Здравствуйте.", "lang": "ru", "duration": 704, "speaker_count": 2,
 "segments": [{"start": 0.4, "end": 1.6, "speaker": 1, "text": "Добрый день."}, {"start": 2.1, "end": 3.0, "speaker": 2, "text": "Здравствуйте."}], "file_name": "interview.mp3"}}

text — весь текст (с «Спикер N:», если говорящих разделяли); lang — язык записи; duration — длительность в секундах; speaker_count — сколько говорящих; segments — реплики: start и end в секундах, speaker — номер говорящего с единицы или null, text; file_name. Пока запись распознаётся, в ответе со статусом 1 есть progress в процентах.

Субтитры SRT или VTT готовой записи:

POST https://textovod.com/api/v2/media/transcribe/subtitles
{"id": "5b0e8d1a-...", "format": "srt"}

Детектор ИИ-картинок

Сервисы с файлом на входе есть только в API 2: в MCP модель не может передать инструменту файл. Картинка отправляется в multipart/form-data, результат забирается по номеру задачи, как у текстовых сервисов.

curl -X POST https://textovod.com/api/v2/media/ai-image-detector \
  -H "Authorization: Bearer ваш_ключ" -H "Accept: application/json" \
  -F "image=@photo.jpg"

{"status": 3, "id": "9f1c2b7e-..."}
  • Картинка: JPG, PNG, WebP или HEIC до 50 МБ, короткая сторона не меньше 128 px.
  • Картинка тратит 100 знаков антиплагиата, если проверить не удалось — знаки возвращаются. Одновременно в работе до 20 картинок, следующая получает отказ too_many_tasks.
  • Файл удаляется сразу после проверки, результат хранится 7 дней. Оценка — вероятность, а не доказательство.
POST https://textovod.com/api/v2/media/ai-image-detector/result
Authorization: Bearer ваш_ключ
Content-Type: application/json

{"id": "9f1c2b7e-..."}

{"status": 2, "id": "9f1c2b7e-...", "result": {"verdict": "ai", "score": 0.9731, "percent": 97, "percent_label": "97 %", "label": null, "generator": null, "width": 1024, "height": 1024, "file_name": "photo.jpg"}}

verdict — ai (похоже на ИИ), uncertain (не уверены), human (похоже на фото) или small (картинка слишком маленькая для вывода); score — оценка модели от 0 до 1; percent и percent_label — она же в процентах для показа; label — метка происхождения в самом файле (ai — файл помечен как созданный ИИ), generator — генератор из метки; width, height и file_name.

PDF-отчёт о готовой проверке:

POST https://textovod.com/api/v2/media/ai-image-detector/report
Authorization: Bearer ваш_ключ
Content-Type: application/json

{"id": "9f1c2b7e-..."}

Остатки

Знаки ПРО по двум счётчикам, срок ПРО и остаток старого рублёвого баланса. Поле pack совпадает с pro.ai, pro.images — сколько картинок хватит проверить детектором ИИ-картинок, pro.audio_minutes — сколько минут записи хватит распознать.

POST https://textovod.com/api/v2/text/balance
Authorization: Bearer ваш_ключ

{"balance": 0, "pack": 500000, "pro": {"active": true, "until": "2026-10-31 12:00:00", "unique": 300000, "ai": 500000, "images": 3000, "audio_minutes": 500}}

Оплата и лимиты

  • Проверка уникальности, ИИ-детектор и детектор ИИ-картинок тратят знаки антиплагиата, все остальные сервисы, включая распознавание записи, тратят знаки ИИ.
  • Сначала тратится месячная квота ПРО, потом запас. Если знаки закончились, списывается остаток старого баланса, пока он есть.
  • У ИИ-сервисов считаются и текст запроса, и ответ.
  • Расход по дням виден в кабинете на странице «Расход знаков».
  • Лимит: 300 запросов в минуту на ключ, включая получение результата.

MCP-сервер

MCP позволяет подключить сервисы Текстовода к ИИ-клиентам: Claude Code, Cursor и другим программам с поддержкой MCP. Адрес сервера: https://textovod.com/mcp

Список инструментов открыт без ключа. Для вызова инструмента нужен тот же ключ API в заголовке Authorization: Bearer.

Инструмент ждёт результат до 20 секунд. Если задача ещё в работе, он возвращает её номер, а результат отдаёт инструмент get-result. Проверка уникальности и ИИ-детектор идут дольше и сразу возвращают номер задачи.

Подключение в Claude Code:

claude mcp add --transport http textovod https://textovod.com/mcp --header "Authorization: Bearer ваш_ключ"

Подключение через файл настроек (Cursor и другие клиенты):

{
  "mcpServers": {
    "textovod": {
      "url": "https://textovod.com/mcp",
      "headers": {"Authorization": "Bearer ваш_ключ"}
    }
  }
}

Инструменты

ИнструментЧто делает
check-spellingПроверка орфографии
check-punctuationПроверка пунктуации
check-uniquenessПроверка уникальности
detect-ai-textИИ-детектор
autocorrectАвтокорректор
paraphraseПерефразирование
rewriteРерайт
translateПереводчик
summarizeСокращение текста
expandРасширение текста
write-textНаписать текст по теме
make-titleЗаголовок для текста
interpret-dreamТолкование снов
chatЧат с нейросетью
translate-subtitlesПеревод субтитров
text-to-speechОзвучка текста
get-resultРезультат задачи, которую инструмент не успел дождаться. Знаки не тратит.
get-balanceОстатки знаков ПРО, срок ПРО и баланс.

Описание OpenAPI

Машинное описание API 2 для генерации клиентов и проверки запросов: https://textovod.com/api-docs/openapi.json

API 1, прежняя версия

API 1 отключается 1 декабря 2026. До этого дня он работает без изменений. Перейдите на API 2: в нём те же четыре сервиса и единый формат.

Номер пользователя и ключ передаются в теле запроса. Они указаны на странице ключей API. Сервисы: punctuation, spelling, unique, rewrite.

POST https://textovod.com/api/{сервис}/user/add
{"user_id": 123, "api_key": "ваш_ключ", "text": "Ваш текст", "lang": "ru"}

POST https://textovod.com/api/{сервис}/user/status
{"user_id": 123, "api_key": "ваш_ключ", "text_id": "..."}

Статусы: 0 — ошибка, 3 — в очереди, 1 — обработка, 2 — готово. Орфография отвечает сразу статусом 1. Ошибка приходит в поле info.

В готовом ответе пунктуации приходят поля punctuation, result, text и resultText; уникальности — originality, position, text и urls; орфографии — result, count и text; рерайта — rewrite и text. Списки result и urls приходят строкой JSON.

Лимит: 60 запросов в минуту, для уникальности 180. Слишком длинный текст обрезается: пунктуация и рерайт до 100 тыс. знаков, уникальность до 200 тыс., орфография до 500 тыс.