TutuPrints
73 MCP tools + full REST API

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.

1

Register an account

Visit the TutuPrints website and register quickly with a phone verification code.

2

Create an API Key

On the “API keys” page in your account center, create a key with one click and use it right away.

3

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.com

Response format

Content-Type: application/json

MCP endpoint

POST https://tutupp.com/api/mcp
Open platform: after registering, create an API Key with no approval needed and use all API and MCP features immediately.

MCP 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

Claude Code — mcs_desc_cli

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

You: Print report.pdf from my desktop, A4 black & white, and pay with my balance

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

AI: Done! Order PP2026040612345, A4 B&W ×1, ¥0.50 deducted from your balance.

REST API reference

An API Key can access all the endpoints below, covering every feature in the UI.

adt0

POST /api/documents/upload
GET /api/documents
GET /api/documents/{id}
DELETE /api/documents/{id}

adt1

POST /api/photos/upload
GET /api/photos/{id}
DELETE /api/photos/{id}
GET /api/photos/{id}/quality-check?size={size}

adt2

POST /api/orders
GET /api/orders
GET /api/orders/{id}
PUT /api/orders/{id}/cancel
GET /api/orders/track/{order_no}
GET /api/orders/{id}/tracking

adt3

POST /api/payment/create
POST /api/payment/balance
GET /api/payment/status/{order_id}

adt4

GET /api/user/balance
POST /api/user/balance/topup
GET /api/user/balance/transactions

adt5

GET /api/user/coupons
GET /api/user/coupons/available
POST /api/user/coupons/redeem

adt6

GET /api/addresses
POST /api/addresses
PUT /api/addresses/{id}
DELETE /api/addresses/{id}
POST /api/addresses/parse

adt7

GET /api/user/pre-orders
POST /api/user/pre-orders
GET /api/user/pre-orders/{id}
PUT /api/user/pre-orders/{id}
PUT /api/user/pre-orders/{id}/status
POST /api/user/pre-orders/{id}/submissions/{sid}/review
PUT /api/user/pre-orders/{id}/submissions/{sid}/cancel

adt8

GET /api/share/{code}
POST /api/share/{code}/submit
GET /api/share/{code}/submissions/{sid}
GET /api/share/{code}/my-submissions

adt9

GET /api/user/after-sales
POST /api/after-sales

adt10

GET /api/regions
GET /api/regions/{id}
GET /api/regions/tree
GET /api/regions/coverage
GET /api/regions/{city_id}/city-coverage
GET /api/regions/{id}/express-delivery
GET /api/regions/{id}/pickup-points
GET /api/agents/referral/{code}
GET /api/shipping/config
GET /api/shipping/carriers

adt11

GET /api/prices
GET /api/print-options/sizes
GET /api/print-options/paper-types

adt12

POST /api/photos/{id}/restore
GET /api/restorations/{id}

adt13

GET /api/auth/me
PUT /api/auth/me

adt14

GET /api/printer/status
GET /api/print-queue/status
GET /api/orders/auto-print-schedule

adt15

GET /api/user/api-keys
POST /api/user/api-keys
DELETE /api/user/api-keys/{id}

adt16

GET /api/health

MCP tool list73

All the tools below can be called via the MCP protocol; AI clients discover them automatically once configured.

adt17

upload_document add65
list_documents add66
get_document_info add67
delete_document add68

adt18

upload_photo add69
get_photo add70
delete_photo add71
check_photo_quality add72

adt19

create_order add73
list_orders add74
get_order_status add75
cancel_order add76
track_order add77
get_order_tracking add78

adt20

create_payment add79
pay_with_balance add80
get_payment_status add81
create_topup add82
get_balance add83
get_balance_transactions add84

adt21

list_coupons add85
get_available_coupons add86
redeem_coupon add87

adt22

list_addresses add88
create_address add89
update_address add90
delete_address add91
parse_address add92

adt23

list_pre_orders add93
create_pre_order add94
get_pre_order add95
update_pre_order add96
update_pre_order_status add97
review_submission add98
cancel_submission add99

adt24

get_share_info add100
submit_share_photos add101
get_submission_status add102
list_my_submissions add103

adt25

list_after_sales add104
create_after_sales add105

adt26

list_regions add106
get_region add107
get_region_tree add108
get_region_coverage add109
get_city_coverage add110
get_agent_by_referral add111
check_express_delivery add112
get_shipping_config add113
get_shipping_carriers add114
list_pickup_points add115

adt27

get_print_prices add116
get_print_options add117
get_printer_status add118
get_queue_status add119

adt28

get_profile add120
update_profile add121

adt29

restoration_preview add122
get_restoration add123
create_restore_share add_sh1
list_my_restore_shares add_sh2
revoke_restore_share add_sh3
claim_restore_share add_sh4

adt30

list_api_keys add124
create_api_key add125
revoke_api_key add126

adt31

health_check add127
get_auto_print_schedule add128

adt32

submit_order_review add129
batch_submit_order_reviews add130
list_my_order_reviews add131
get_order_review add132
mark_order_review_read add133

Code 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

Upload file Look up prices Create order Pay with balance Done

Error handling

The API uses standard HTTP status codes; error responses contain error info in JSON.

// Error response format
{
  "error": "Error description"
}
400
add134 ade0
401
add135 ade1
403
add136 ade2
404
add137 ade3
409
add138 ade4
413
add139 ade5
422
add140 ade6
429
add141 ade7
500
add142 ade8
Rate limiting: only sensitive write operations like login / register / verification codes are protected against attacks; normal usage never triggers it, and thresholds are configurable in the admin console. Responses carry a 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.

Manage API keys