Documentação da API do TutuPP
Use a API REST ou o protocolo MCP para que um assistente de IA realize diretamente impressão de fotos, impressão de documentos, gestão de pedidos e todas as demais operações.
Compatível com 21 clientes de IA populares, incluindo Claude, Gemini, Codex e Copilot.
Início rápido
Integre em três passos e comece a usar a IA para imprimir imediatamente.
Criar uma conta
Acesse o site da TutuPP e cadastre-se rápido com um código de verificação por SMS.
Criar uma API Key
Na página «Chaves API» da central da conta, crie uma chave com um clique e use na hora.
Fazer uma requisição
Chame a API REST com sua API Key, ou configure em um cliente de IA para usar MCP.
Autenticação
Todas as requisições à API autenticam com a API Key em um cabeçalho HTTP.
Authorization: Bearer tk_YOUR_API_KEY
Base URL
https://tutupp.comFormato de resposta
Content-Type: application/jsonEndpoint MCP
POST https://tutupp.com/api/mcpIntegração MCP
MCP (Model Context Protocol) é um protocolo aberto da Anthropic que permite aos assistentes de IA chamar ferramentas externas diretamente.
Depois de configurado, você pode usar linguagem natural para a IA executar o fluxo completo «enviar documento → criar pedido → pagar com saldo».
Informações do protocolo
Endpoint:https://tutupp.com/api/mcp
Protocolo:JSON-RPC 2.0 over Streamable HTTP
Métodos:initialize · tools/list · tools/call
Upload de arquivos:Suporta a extensão multipart/form-data (message part + file parts, sem base64, 100MB+) e o padrão application/json
Escolha seu cliente de IA 21
Adicionar (Add)
claude mcp add --transport http tutupp https://tutupp.com/api/mcp --header "Authorization: Bearer tk_YOUR_API_KEY"
Adicione --scope user para global, --scope project apenas para o projeto atual
Substituir chave (Replace)
claude mcp remove tutupp && claude mcp add --transport http tutupp ...(nova chave)
Remover (Remove)
claude mcp remove tutupp
Exemplo de conversa com IA
A IA chama automaticamente:
1. upload_document → Enviar o arquivo
2. get_print_prices → Consultar o preço de A4 P&B
3. create_order → Criar o pedido
4. pay_with_balance → Pagar com saldo
Referência da API REST
Uma API Key pode acessar todos os endpoints abaixo, cobrindo todas as funções da interface.
Gestão de documentos
/api/documents/upload Enviar um documento (multipart/form-data, PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX, ≤50MB)/api/documents Listar meus documentos/api/documents/{id} Obter detalhes do documento/api/documents/{id} Excluir um documentoGestão de fotos
/api/photos/upload Enviar uma foto (multipart/form-data, JPEG/PNG/WebP/HEIC, ≤120MB)/api/photos/{id} Obter detalhes da foto/api/photos/{id} Excluir uma foto/api/photos/{id}/quality-check?size={size} Verificar a qualidade de impressão da fotoPedidos
/api/orders Criar um pedido de impressão/api/orders Listar meus pedidos/api/orders/{id} Obter detalhes do pedido/api/orders/{id}/cancel Cancelar um pedido/api/orders/track/{order_no} Rastrear por número do pedido/api/orders/{id}/tracking Obter info de rastreamento do envioPagamento
/api/payment/create Criar pagamento de terceiros (Alipay/WeChat, retorna payment_url)/api/payment/balance Pagar pedido com saldo/api/payment/status/{order_id} Consultar status do pagamentoSaldo
/api/user/balance Consultar saldo/api/user/balance/topup Iniciar uma recarga (retorna payment_url)/api/user/balance/transactions Extrato do saldoCupons
/api/user/coupons Minha lista de cupons/api/user/coupons/available Cupons disponíveis (filtrar por valor/escopo)/api/user/coupons/redeem Resgatar um código de cupomEndereços de entrega
/api/addresses Lista de endereços/api/addresses Criar um endereço/api/addresses/{id} Atualizar um endereço/api/addresses/{id} Excluir um endereço/api/addresses/parse Analisar texto de endereçoPedir por outros (pré-pedidos)
/api/user/pre-orders Lista de pré-pedidos/api/user/pre-orders Criar um pré-pedido/api/user/pre-orders/{id} Detalhes do pré-pedido/api/user/pre-orders/{id} Atualizar um pré-pedido/api/user/pre-orders/{id}/status Alterar status do pré-pedido/api/user/pre-orders/{id}/submissions/{sid}/review Revisar um envio/api/user/pre-orders/{id}/submissions/{sid}/cancel Cancelar um envioCompartilhamento de pré-pedidos
/api/share/{code} Obter info do link de compartilhamento/api/share/{code}/submit Enviar fotos a um link de compartilhamento/api/share/{code}/submissions/{sid} Consultar status do envio/api/share/{code}/my-submissions Minha lista de enviosPós-venda
/api/user/after-sales Minha lista de pós-venda/api/after-sales Iniciar solicitação de pós-venda (reembolso/reimpressão/reenvio)Regiões e entrega
/api/regions Lista de regiões (filtrar por nível/pai/palavra-chave)/api/regions/{id} Detalhes da região e sub-regiões/api/regions/tree Árvore de regiões completa (província → cidade → distrito)/api/regions/coverage Estatísticas de cobertura de agentes/api/regions/{city_id}/city-coverage Cobertura por cidade/distrito/api/regions/{id}/express-delivery Verificar entrega no mesmo dia/api/regions/{id}/pickup-points Lista de pontos de retirada/api/agents/referral/{code} Encontrar agente por código de indicação/api/shipping/config Configuração de frete (global)/api/shipping/carriers Lista de transportadoras (incl. sobretaxa remota)Consulta de configuração
/api/prices Preços de impressão + descontos por volume ({prices, volume_tiers})/api/print-options/sizes Tamanhos disponíveis/api/print-options/paper-types Tipos de papel disponíveisRestauração de fotos com IA
/api/photos/{id}/restore Iniciar prévia de restauração com IA/api/restorations/{id} Obter o resultado da restauraçãoInformações do usuário
/api/auth/me Obter info do usuário atual/api/auth/me Atualizar o perfilStatus de impressão
/api/printer/status Status da impressora/api/print-queue/status Status da fila de impressão/api/orders/auto-print-schedule Obter a janela de impressão automáticaAutogestão de chaves API
/api/user/api-keys Listar minhas API Keys/api/user/api-keys Criar uma API Key (a chave completa é exibida uma única vez)/api/user/api-keys/{id} Revogar uma API KeySaúde do sistema
/api/health Verificação de saúde do serviço (sem auth, monitoramento/K8s probe)Lista de ferramentas MCP69
Todas as ferramentas abaixo podem ser chamadas via protocolo MCP; os clientes de IA as descobrem automaticamente após configurados.
Gestão de documentos
upload_document Enviar um documento (PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX) — one of: file_url / content (base64) / file_path (curl) file_url | content | file_path, filename?list_documents Listar todos os documentos enviados pelo usuário atual get_document_info Obter detalhes do documento (nº de páginas, tamanho, etc.) document_iddelete_document Excluir um documento (apenas se não vinculado a um pedido ativo) document_idGestão de fotos
upload_photo Enviar uma foto (JPG/PNG/WebP/HEIC) — one of: file_url / content (base64) / file_path (curl) file_url | content | file_path, filename?get_photo Obter detalhes da foto photo_iddelete_photo Excluir uma foto (apenas se não vinculada a um pedido ativo) photo_idcheck_photo_quality Verificar a qualidade de impressão da foto em um tamanho dado (DPI) photo_id, sizePedidos
create_order Criar um pedido de impressão items[], delivery_method?, shipping_carrier_id?, coupon_id?list_orders Listar todos os pedidos do usuário atual get_order_status Consultar status e detalhes do pedido order_idcancel_order Cancelar um pedido (apenas com pagamento pendente) order_idtrack_order Consultar info do pedido por número (público) order_noget_order_tracking Obter o rastreamento do envio do pedido order_idPagamento e saldo
create_payment Criar pagamento de terceiros (retorna payment_url, abrir no navegador para pagar) order_id, payment_method?pay_with_balance Pagar um pedido com o saldo da conta order_idget_payment_status Consultar status de pagamento do pedido order_idcreate_topup Criar um pedido de recarga de saldo (retorna payment_url) amount, payment_method?get_balance Consultar o saldo da conta (total/congelado/disponível) get_balance_transactions Consultar o histórico de transações de saldo page?, page_size?Cupons
list_coupons Listar os cupons do usuário atual scope?get_available_coupons Obter cupons disponíveis (filtrar por valor) amount?, scope?redeem_coupon Resgatar um cupom por código codeEndereços de entrega
list_addresses Listar os endereços de entrega create_address Adicionar um endereço de entrega name, phone, province, city, district, detail, ...update_address Atualizar um endereço de entrega address_id, ...delete_address Excluir um endereço de entrega address_idparse_address Analisar texto de endereço textPedir por outros (pré-pedidos)
list_pre_orders Listar todos os pré-pedidos create_pre_order Criar um pré-pedido (compartilhar um link para outros enviarem) title, order_type, spec_mode, ...get_pre_order Obter detalhes do pré-pedido (incl. todos os envios) pre_order_idupdate_pre_order Atualizar as configurações do pré-pedido pre_order_id, ...update_pre_order_status Alterar o status do pré-pedido pre_order_id, statusreview_submission Revisar um envio de pré-pedido pre_order_id, submission_id, approved, reject_reason?cancel_submission Cancelar um envio pre_order_id, submission_idCompartilhamento de pré-pedidos
get_share_info Obter info do link de compartilhamento share_codesubmit_share_photos Enviar fotos a um link de compartilhamento share_code, photo_ids[], password?, ...get_submission_status Consultar status do envio e detalhes das fotos share_code, submission_idlist_my_submissions Listar todos os envios de um link de compartilhamento share_codePós-venda
list_after_sales Listar os registros de pós-venda do usuário atual create_after_sales Criar uma solicitação de pós-venda (reembolso/reimpressão/reenvio) order_id, type, reason, ...Regiões e entrega
list_regions Consultar a lista de regiões level?, parent_id?, search?get_region Obter detalhes da região e sub-regiões region_idget_region_tree Obter a árvore de regiões completa (província → cidade → distrito) get_region_coverage Obter estatísticas de cobertura de agentes get_city_coverage Obter a cobertura por distrito dentro de uma cidade city_idget_agent_by_referral Encontrar agente por código de indicação referral_codecheck_express_delivery Verificar se há entrega no mesmo dia region_idget_shipping_config Obter a configuração de frete (global) get_shipping_carriers Obter a lista de transportadoras (incl. sobretaxa remota) list_pickup_points Consultar a lista de pontos de retirada region_idConfiguração e status
get_print_prices Obter preços de impressão + faixas de desconto por volume get_print_options Obter tamanhos e tipos de papel disponíveis get_printer_status Consultar o status da impressora get_queue_status Consultar o status da fila de impressão Informações do usuário
get_profile Obter o perfil do usuário atual update_profile Atualizar o apelido do usuário nicknameRestauração de fotos com IA
restoration_preview Executar uma prévia de restauração com IA em uma foto photo_idget_restoration Obter o resultado da tarefa de restauração com IA restoration_idAutogestão de chaves API
list_api_keys Listar todas as API Keys do usuário atual create_api_key Criar uma nova API Key (a chave completa é exibida uma única vez) name, expires_in_days?revoke_api_key Revogar uma API Key específica api_key_idSistema
health_check Verificar a saúde do serviço (banco de dados/gateway de pagamento/versão) get_auto_print_schedule Obter as configurações da janela de impressão automática Avaliações de pedidos
submit_order_review Enviar uma avaliação de pedido (nota em 3 dimensões + comentário); idempotente via ON CONFLICT; limite 5/h order_id, rating_print, rating_shipping?, rating_service?, comment?batch_submit_order_reviews Avaliação em lote (máx. 20 · transação única · atômica); 5 estrelas com um toque items[{order_id, rating_print, ...}]list_my_order_reviews Listar minhas avaliações (envelope paginado) page?, limit?get_order_review Obter os detalhes de uma avaliação (incl. resposta oficial) review_idmark_order_review_read Marcar a resposta oficial como lida (CTE evita replay, reduz a contagem do badge de nav) review_idExemplos de código
Um exemplo completo do fluxo «consultar preços → enviar arquivo → criar pedido → pagar com saldo».
# 查询打印价格
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"}' Fluxo de trabalho típico
Tratamento de erros
A API usa códigos de status HTTP padrão; as respostas de erro contêm a info do erro em JSON.
// Formato da resposta de erro
{
"error": "Descrição do erro"
}retry_after_seconds + o cabeçalho Retry-After.Pronto para começar?
Crie uma conta, gere uma API Key e deixe a IA cuidar das suas impressões.