TutuPrints API docs
Use the REST API or MCP protocol to let an AI assistant handle photo printing, document printing, order management and every other operation directly.
Supports 21 mainstream AI clients including Claude, Gemini, Codex and Copilot.
Quick start
Integrate in three steps and start using AI for printing right away.
Register an account
Visit the TutuPrints website and register quickly with a phone verification code.
Create an API Key
On the “API keys” page in your account center, create a key with one click and use it right away.
Make a request
Call the REST API with your API Key, or configure it in an AI client to use MCP.
Authentication
All API requests authenticate by carrying the API Key in an HTTP header.
Authorization: Bearer tk_YOUR_API_KEY
Base URL
https://tutupp.comResponse format
Content-Type: application/jsonMCP endpoint
POST https://tutupp.com/api/mcpMCP integration
MCP (Model Context Protocol) is an open protocol from Anthropic that lets AI assistants call external tools directly.
Once configured, you can use natural language to have the AI run the full “upload document → create order → pay with balance” flow.
Protocol info
Endpoint: https://tutupp.com/api/mcp
Protocol: JSON-RPC 2.0 over Streamable HTTP
Methods: initialize · tools/list · tools/call
File upload: Supports the multipart/form-data extension (message part + file parts, zero base64, 100MB+) and standard application/json
Choose your AI client 21
Add (Add)
claude mcp add --transport http tutuprints https://tutupp.com/api/mcp --header "Authorization: Bearer tk_YOUR_API_KEY"
Add --scope user for global, --scope project for the current project only
Replace key (Replace)
claude mcp remove tutuprints && claude mcp add --transport http tutuprints ...(new key)
Remove (Remove)
claude mcp remove tutuprints
AI conversation example
AI calls automatically:
1. upload_document → Upload the file
2. get_print_prices → Look up A4 B&W pricing
3. create_order → Create the order
4. pay_with_balance → Pay with balance
REST API reference
An API Key can access all the endpoints below, covering every feature in the UI.
adt0
/api/documents/upload add0/api/documents add1/api/documents/{id} add2/api/documents/{id} add3adt1
/api/photos/upload add4/api/photos/{id} add5/api/photos/{id} add6/api/photos/{id}/quality-check?size={size} add7adt2
/api/orders add8/api/orders add9/api/orders/{id} add10/api/orders/{id}/cancel add11/api/orders/track/{order_no} add12/api/orders/{id}/tracking add13adt3
/api/payment/create add14/api/payment/balance add15/api/payment/status/{order_id} add16adt4
/api/user/balance add17/api/user/balance/topup add18/api/user/balance/transactions add19adt5
/api/user/coupons add20/api/user/coupons/available add21/api/user/coupons/redeem add22adt6
/api/addresses add23/api/addresses add24/api/addresses/{id} add25/api/addresses/{id} add26/api/addresses/parse add27adt7
/api/user/pre-orders add28/api/user/pre-orders add29/api/user/pre-orders/{id} add30/api/user/pre-orders/{id} add31/api/user/pre-orders/{id}/status add32/api/user/pre-orders/{id}/submissions/{sid}/review add33/api/user/pre-orders/{id}/submissions/{sid}/cancel add34adt8
/api/share/{code} add35/api/share/{code}/submit add36/api/share/{code}/submissions/{sid} add37/api/share/{code}/my-submissions add38adt9
/api/user/after-sales add39/api/after-sales add40adt10
/api/regions add41/api/regions/{id} add42/api/regions/tree add43/api/regions/coverage add44/api/regions/{city_id}/city-coverage add45/api/regions/{id}/express-delivery add46/api/regions/{id}/pickup-points add47/api/agents/referral/{code} add48/api/shipping/config add49/api/shipping/carriers add50adt11
/api/prices add51/api/print-options/sizes add52/api/print-options/paper-types add53adt12
/api/photos/{id}/restore add54/api/restorations/{id} add55adt13
/api/auth/me add56/api/auth/me add57adt14
/api/printer/status add58/api/print-queue/status add59/api/orders/auto-print-schedule add60adt15
/api/user/api-keys add61/api/user/api-keys add62/api/user/api-keys/{id} add63adt16
/api/health add64MCP tool list73
All the tools below can be called via the MCP protocol; AI clients discover them automatically once configured.
adt17
upload_document add65 file_url | content | file_path, filename?list_documents add66 get_document_info add67 document_iddelete_document add68 document_idadt18
upload_photo add69 file_url | content | file_path, filename?get_photo add70 photo_iddelete_photo add71 photo_idcheck_photo_quality add72 photo_id, sizeadt19
create_order add73 items[], delivery_method?, shipping_carrier_id?, coupon_id?list_orders add74 get_order_status add75 order_idcancel_order add76 order_idtrack_order add77 order_noget_order_tracking add78 order_idadt20
create_payment add79 order_id, payment_method?pay_with_balance add80 order_idget_payment_status add81 order_idcreate_topup add82 amount, payment_method?get_balance add83 get_balance_transactions add84 page?, page_size?adt21
list_coupons add85 scope?get_available_coupons add86 amount?, scope?redeem_coupon add87 codeadt22
list_addresses add88 create_address add89 name, phone, country, province, city, district, detail, ...update_address add90 address_id, ...delete_address add91 address_idparse_address add92 text, countryadt23
list_pre_orders add93 create_pre_order add94 title, order_type, spec_mode, ...get_pre_order add95 pre_order_idupdate_pre_order add96 pre_order_id, ...update_pre_order_status add97 pre_order_id, statusreview_submission add98 pre_order_id, submission_id, approved, reject_reason?cancel_submission add99 pre_order_id, submission_idadt24
get_share_info add100 share_codesubmit_share_photos add101 share_code, photo_ids[], password?, ...get_submission_status add102 share_code, submission_idlist_my_submissions add103 share_codeadt25
list_after_sales add104 create_after_sales add105 order_id, type, reason, ...adt26
list_regions add106 level?, parent_id?, search?get_region add107 region_idget_region_tree add108 get_region_coverage add109 get_city_coverage add110 city_idget_agent_by_referral add111 referral_codecheck_express_delivery add112 region_idget_shipping_config add113 get_shipping_carriers add114 list_pickup_points add115 region_idadt27
get_print_prices add116 get_print_options add117 get_printer_status add118 get_queue_status add119 adt28
get_profile add120 update_profile add121 nicknameadt29
restoration_preview add122 photo_idget_restoration add123 restoration_idcreate_restore_share add_sh1 restoration_ids[], message?, expire_days?, max_claims?, with_passcode?list_my_restore_shares add_sh2 page?, limit?revoke_restore_share add_sh3 share_idclaim_restore_share add_sh4 code, passcode?adt30
list_api_keys add124 create_api_key add125 name, expires_in_days?revoke_api_key add126 api_key_idadt31
health_check add127 get_auto_print_schedule add128 adt32
submit_order_review add129 order_id, rating_print, rating_shipping?, rating_service?, comment?batch_submit_order_reviews add130 items[{order_id, rating_print, ...}]list_my_order_reviews add131 page?, limit?get_order_review add132 review_idmark_order_review_read add133 review_idCode examples
A full example of the “look up prices → upload file → create order → pay with balance” flow.
# Query prices
curl https://tutupp.com/api/prices \
-H "Authorization: Bearer tk_YOUR_API_KEY"
# Upload document
curl -X POST https://tutupp.com/api/documents/upload \
-H "Authorization: Bearer tk_YOUR_API_KEY" \
-F "file=@report.pdf"
# Create order
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"
}'
# Pay with balance
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"}' Typical workflow
Error handling
The API uses standard HTTP status codes; error responses contain error info in JSON.
// Error response format
{
"error": "Error description"
}retry_after_seconds field + a Retry-After header.Ready to get started?
Register an account, create an API Key, and let AI handle your printing.