Документация API TutuPP
Используйте REST API или протокол MCP, чтобы ИИ-ассистент напрямую выполнял печать фото, печать документов, управление заказами и все прочие операции.
Поддерживает 21 популярный ИИ-клиент, включая Claude, Gemini, Codex и Copilot.
Быстрый старт
Интегрируйте за три шага и сразу используйте ИИ для печати.
Регистрация аккаунта
Зайдите на сайт TutuPP и быстро зарегистрируйтесь по SMS-коду.
Создать ключ API
На странице «Ключи API» в личном кабинете создайте ключ одним кликом и сразу используйте.
Отправить запрос
Вызывайте REST API с ключом API или настройте его в ИИ-клиенте для использования MCP.
Аутентификация
Все запросы API аутентифицируются с помощью ключа API в HTTP-заголовке.
Authorization: Bearer tk_YOUR_API_KEY
Base URL
https://tutupp.comФормат ответа
Content-Type: application/jsonКонечная точка MCP
POST https://tutupp.com/api/mcpИнтеграция MCP
MCP (Model Context Protocol) — открытый протокол от Anthropic, позволяющий ИИ-ассистентам напрямую вызывать внешние инструменты.
После настройки вы можете на естественном языке заставить ИИ выполнить весь процесс «загрузить документ → создать заказ → оплатить балансом».
Сведения о протоколе
Конечная точка:https://tutupp.com/api/mcp
Протокол:JSON-RPC 2.0 over Streamable HTTP
Методы:initialize · tools/list · tools/call
Загрузка файлов:Поддерживает расширение multipart/form-data (message part + file parts, без base64, 100MB+) и стандарт application/json
Выберите ИИ-клиент 21
Добавить (Add)
claude mcp add --transport http tutupp https://tutupp.com/api/mcp --header "Authorization: Bearer tk_YOUR_API_KEY"
Добавьте --scope user для глобального, --scope project — только для текущего проекта
Заменить ключ (Replace)
claude mcp remove tutupp && claude mcp add --transport http tutupp ...(новый ключ)
Удалить (Remove)
claude mcp remove tutupp
Пример диалога с ИИ
ИИ вызывает автоматически:
1. upload_document → Загрузить файл
2. get_print_prices → Узнать цену A4 ч/б
3. create_order → Создать заказ
4. pay_with_balance → Оплатить балансом
Справочник REST API
Ключ API даёт доступ ко всем перечисленным ниже конечным точкам, покрывая все функции интерфейса.
Управление документами
/api/documents/upload Загрузить документ (multipart/form-data, PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX, ≤50MB)/api/documents Список моих документов/api/documents/{id} Получить сведения о документе/api/documents/{id} Удалить документУправление фотографиями
/api/photos/upload Загрузить фото (multipart/form-data, JPEG/PNG/WebP/HEIC, ≤120MB)/api/photos/{id} Получить сведения о фото/api/photos/{id} Удалить фото/api/photos/{id}/quality-check?size={size} Проверить качество печати фотоЗаказы
/api/orders Создать заказ печати/api/orders Список моих заказов/api/orders/{id} Получить сведения о заказе/api/orders/{id}/cancel Отменить заказ/api/orders/track/{order_no} Отследить по номеру заказа/api/orders/{id}/tracking Получить данные отслеживания доставкиОплата
/api/payment/create Создать сторонний платёж (Alipay/WeChat, возвращает payment_url)/api/payment/balance Оплатить заказ балансом/api/payment/status/{order_id} Запросить статус платежаБаланс
/api/user/balance Запросить баланс/api/user/balance/topup Начать пополнение (возвращает payment_url)/api/user/balance/transactions Операции по балансуКупоны
/api/user/coupons Список моих купонов/api/user/coupons/available Доступные купоны (фильтр по сумме/области)/api/user/coupons/redeem Активировать промокодАдреса доставки
/api/addresses Список адресов/api/addresses Создать адрес/api/addresses/{id} Изменить адрес/api/addresses/{id} Удалить адрес/api/addresses/parse Умный разбор текста адресаЗаказ для других (предзаказы)
/api/user/pre-orders Список предзаказов/api/user/pre-orders Создать предзаказ/api/user/pre-orders/{id} Сведения о предзаказе/api/user/pre-orders/{id} Обновить предзаказ/api/user/pre-orders/{id}/status Изменить статус предзаказа/api/user/pre-orders/{id}/submissions/{sid}/review Проверить отправку/api/user/pre-orders/{id}/submissions/{sid}/cancel Отменить отправкуОбмен предзаказами
/api/share/{code} Получить данные ссылки-обмена/api/share/{code}/submit Отправить фото по ссылке-обмену/api/share/{code}/submissions/{sid} Запросить статус отправки/api/share/{code}/my-submissions Список моих отправокПослепродажное обслуживание
/api/user/after-sales Список моих обращений в поддержку/api/after-sales Создать обращение (возврат/перепечать/переотправка)Регионы и доставка
/api/regions Список регионов (фильтр по уровню/родителю/ключевому слову)/api/regions/{id} Сведения о регионе и подрегионы/api/regions/tree Полное дерево регионов (провинция → город → район)/api/regions/coverage Статистика покрытия агентов/api/regions/{city_id}/city-coverage Покрытие по городам/районам/api/regions/{id}/express-delivery Проверить доставку в тот же день/api/regions/{id}/pickup-points Список пунктов самовывоза/api/agents/referral/{code} Найти агента по реферальному коду/api/shipping/config Настройки доставки (глобальные)/api/shipping/carriers Список перевозчиков (вкл. надбавку за удалённость)Запрос конфигурации
/api/prices Цены печати + скидки за объём ({prices, volume_tiers})/api/print-options/sizes Доступные размеры/api/print-options/paper-types Доступные типы бумагиИИ-восстановление фото
/api/photos/{id}/restore Запустить предпросмотр ИИ-восстановления/api/restorations/{id} Получить результат восстановленияДанные пользователя
/api/auth/me Получить данные текущего пользователя/api/auth/me Обновить профильСтатус печати
/api/printer/status Статус принтера/api/print-queue/status Статус очереди печати/api/orders/auto-print-schedule Получить окно автопечатиСамоуправление ключами API
/api/user/api-keys Список моих ключей API/api/user/api-keys Создать ключ API (полный ключ показывается один раз)/api/user/api-keys/{id} Отозвать ключ APIСостояние системы
/api/health Проверка здоровья сервиса (без авторизации, мониторинг/K8s probe)Список инструментов MCP69
Все инструменты ниже можно вызывать через протокол MCP; ИИ-клиенты обнаруживают их автоматически после настройки.
Управление документами
upload_document Загрузить документ (PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX) — one of: file_url / content (base64) / file_path (curl) file_url | content | file_path, filename?list_documents Список всех документов, загруженных текущим пользователем get_document_info Получить сведения о документе (число страниц, размер и т. д.) document_iddelete_document Удалить документ (только если не связан с активным заказом) document_idУправление фотографиями
upload_photo Загрузить фото (JPG/PNG/WebP/HEIC) — one of: file_url / content (base64) / file_path (curl) file_url | content | file_path, filename?get_photo Получить сведения о фото photo_iddelete_photo Удалить фото (только если не связано с активным заказом) photo_idcheck_photo_quality Проверить качество печати фото при заданном размере (DPI) photo_id, sizeЗаказы
create_order Создать заказ печати items[], delivery_method?, shipping_carrier_id?, coupon_id?list_orders Список всех заказов текущего пользователя get_order_status Запросить статус и детали заказа order_idcancel_order Отменить заказ (только при ожидании оплаты) order_idtrack_order Найти данные заказа по номеру (публично) order_noget_order_tracking Получить данные отслеживания доставки заказа order_idОплата и баланс
create_payment Создать сторонний платёж (возвращает payment_url, открыть в браузере для оплаты) order_id, payment_method?pay_with_balance Оплатить заказ балансом счёта order_idget_payment_status Запросить статус оплаты заказа order_idcreate_topup Создать заказ на пополнение баланса (возвращает payment_url) amount, payment_method?get_balance Запросить баланс счёта (всего/заморожено/доступно) get_balance_transactions Запросить историю операций по балансу page?, page_size?Купоны
list_coupons Список купонов текущего пользователя scope?get_available_coupons Получить доступные купоны (фильтр по сумме) amount?, scope?redeem_coupon Получить купон по промокоду codeАдреса доставки
list_addresses Список адресов доставки create_address Добавить адрес доставки name, phone, province, city, district, detail, ...update_address Обновить адрес доставки address_id, ...delete_address Удалить адрес доставки address_idparse_address Умный разбор текста адреса textЗаказ для других (предзаказы)
list_pre_orders Список всех предзаказов create_pre_order Создать предзаказ (ссылка для отправки другими) title, order_type, spec_mode, ...get_pre_order Получить сведения о предзаказе (со всеми отправками) pre_order_idupdate_pre_order Обновить настройки предзаказа pre_order_id, ...update_pre_order_status Изменить статус предзаказа pre_order_id, statusreview_submission Проверить отправку в предзаказ pre_order_id, submission_id, approved, reject_reason?cancel_submission Отменить отправку pre_order_id, submission_idОбмен предзаказами
get_share_info Получить данные ссылки-обмена share_codesubmit_share_photos Отправить фото по ссылке-обмену share_code, photo_ids[], password?, ...get_submission_status Запросить статус отправки и данные фото share_code, submission_idlist_my_submissions Список всех отправок по ссылке-обмену share_codeПослепродажное обслуживание
list_after_sales Список обращений в поддержку текущего пользователя create_after_sales Создать обращение (возврат/перепечать/переотправка) order_id, type, reason, ...Регионы и доставка
list_regions Запросить список регионов level?, parent_id?, search?get_region Получить сведения о регионе и подрегионы region_idget_region_tree Получить полное дерево регионов (провинция → город → район) get_region_coverage Получить статистику покрытия агентов get_city_coverage Получить покрытие по районам города city_idget_agent_by_referral Найти агента по реферальному коду referral_codecheck_express_delivery Проверить, поддерживается ли доставка в тот же день region_idget_shipping_config Получить настройки доставки (глобальные) get_shipping_carriers Получить список перевозчиков (вкл. надбавку за удалённость) list_pickup_points Запросить список пунктов самовывоза region_idКонфигурация и статус
get_print_prices Получить цены печати + уровни скидок за объём get_print_options Получить доступные размеры и типы бумаги get_printer_status Запросить статус принтера get_queue_status Запросить статус очереди печати Данные пользователя
get_profile Получить профиль текущего пользователя update_profile Обновить никнейм пользователя nicknameИИ-восстановление фото
restoration_preview Запустить предпросмотр ИИ-восстановления фото photo_idget_restoration Получить результат задачи ИИ-восстановления restoration_idСамоуправление ключами API
list_api_keys Список всех ключей API текущего пользователя create_api_key Создать новый ключ API (полный ключ показывается один раз) name, expires_in_days?revoke_api_key Отозвать конкретный ключ API api_key_idСистема
health_check Проверить состояние сервиса (база данных/платёжный шлюз/версия) get_auto_print_schedule Получить настройки окна автопечати Отзывы о заказах
submit_order_review Отправить один отзыв о заказе (оценка по 3 осям + комментарий); идемпотентно через ON CONFLICT; лимит 5/ч order_id, rating_print, rating_shipping?, rating_service?, comment?batch_submit_order_reviews Пакетный отзыв (макс. 20 · одна транзакция · атомарно); 5 звёзд в один тап items[{order_id, rating_print, ...}]list_my_order_reviews Список моих отзывов (постраничный конверт) page?, limit?get_order_review Получить сведения одного отзыва (с офиц. ответом) review_idmark_order_review_read Отметить офиц. ответ прочитанным (CTE предотвращает повтор, снижает счётчик nav-бейджа) review_idПримеры кода
Полный пример процесса «узнать цены → загрузить файл → создать заказ → оплатить балансом».
# 查询打印价格
curl https://tutupp.com/api/prices \
-H "Authorization: Bearer tk_YOUR_API_KEY"
# 上传文档
curl -X POST https://tutupp.com/api/documents/upload \
-H "Authorization: Bearer tk_YOUR_API_KEY" \
-F "file=@report.pdf"
# 创建订单
curl -X POST https://tutupp.com/api/orders \
-H "Authorization: Bearer tk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [{
"document_id": "uuid-here",
"size": "A4",
"paper_type": "matte",
"quantity": 1
}],
"delivery_method": "pickup"
}'
# 余额支付
curl -X POST https://tutupp.com/api/payment/balance \
-H "Authorization: Bearer tk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id": "uuid-here"}' Типичный рабочий процесс
Обработка ошибок
API использует стандартные коды состояния HTTP; ответы об ошибках содержат информацию об ошибке в JSON.
// Формат ответа об ошибке
{
"error": "Описание ошибки"
}retry_after_seconds + заголовок Retry-After.Готовы начать?
Зарегистрируйтесь, создайте ключ API и доверьте печать ИИ.