PartPacket for developers

Your fabrication interface.

One router for your website, script or agent. Base URL: https://partpacket.com. Live today: Slant 3D and Craftcloud FDM estimates from STL files. Craftcloud returns up to three shop quotes, including the lowest returned landed cost and fastest production option, with minimum charges and country shipping confirmed before display. It reuses one provider upload per file across quantities during the seven-day retention period. Fabworks is not connected yet.

All amounts are USD. Provider subtotal and configurable PartPacket fee (currently 10%) are separate. Shipping and tax are excluded. Unknown lead time or expiry is null. No endpoint places a production order or takes payment.

Quickstart

curl https://partpacket.com/api/v1/quotes \
  -F file=@part.stl \
  -F process=fdm \
  -F 'material=PLA black' \
  -F quantity=1 -F units=mm

Quote creation needs no account. The response includes a private quoteAccessToken. Keep it; retrieving the quote or requesting order review requires it. Never put it in a public URL or log.

GET /api/v1/providers

Returns provider IDs, live or not-connected status, supported processes and file types. Check this before uploading. An unavailable provider never produces a placeholder price.

POST /api/v1/quotes

Send multipart form data. Files are sent to eligible connected providers. STL coordinates are interpreted as millimeters.

FieldMeaning
fileRequired part file. Currently STL; max 8 MiB.
processRequired. fdm is live. Reserved: sheet-metal, tube, 3d-print, cnc.
materialRequired material, e.g. PLA or PETG. Combined forms such as PLA black also work.
colorOptional FDM color. Defaults to black for a bare material. Conflicting combined and separate colors are rejected.
quantityRequired integer, 1–10000.
unitsOptional; only mm is supported.
countryCodeOptional two-letter code; defaults to US. Used for Craftcloud shipping estimates; Slant shipping remains unpriced.

The response contains id, status, quotes[], providers[], retention information and an access token. A provider failure produces a saved request with status: failed and an empty quote list. It never becomes a zero-dollar quote.

{
  "provider": "slant3d",
  "source": "slant-public-mcp",
  "kind": "estimate",
  "currency": "USD",
  "providerTotalPrice": 2.44,
  "partpacketFeeRate": 0.1,
  "partpacketFee": 0.24,
  "totalPrice": 2.68,
  "leadTimeText": "3–5 business days",
  "shipping": {
    "price": null,
    "included": false
  },
  "expiresAt": null
}

This example uses a live quote for our 20 × 20 × 4 mm spacer fixture; it is not a price promise for your part. Slant public MCP pricing includes that route’s setup fees. Craftcloud prices use its confirmed cart breakdown, including minimum production charges; raw price and shipping display fields are never mixed. Per-unit amounts are rounded; the total is authoritative. Lead times retain the provider’s wording, including business days or weeks.

GET /api/v1/quotes/:id

curl https://partpacket.com/api/v1/quotes/REQUEST_ID \
  -H 'Authorization: Bearer YOUR_QUOTE_ACCESS_TOKEN'

Quote access expires after seven days. Missing or incorrect tokens and expired quotes return 404. Uploaded files are private and have no public download URL.

POST /api/v1/orders

Creates a reviewed order request, when review notifications are connected. Use the quote access token and select an id from the saved quote list. orderRequestsAvailable in the quote response indicates availability. Otherwise this endpoint returns 503 and creates no order.

curl https://partpacket.com/api/v1/orders \
  -H 'Authorization: Bearer YOUR_QUOTE_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"quoteRequestId":"REQUEST_ID","quoteId":"QUOTE_ID","contactEmail":"you@example.com"}'

A successful 202 response has status: review_requested, an order-request reference and notification: delivered , queued or unconfirmed. Repeating the same quote and contact email returns the same request. Unconfirmed email delivery is retained for operator review and is not automatically resent. Estimates older than 24 hours must be refreshed. Final price, shipping, taxes and manufacturability require review. Nothing is charged or submitted to a fab.

MCP server

Connect your MCP client using Streamable HTTP at https://partpacket.com/mcp. No account is required to quote. The server supports JSON responses, initialization and these tools:

ToolArguments
list_providersNone
create_quotefile_name, file_base64, process, material, quantity; optional color, countryCode
get_quoteid, quoteAccessToken
request_order_reviewquoteRequestId, quoteId, quoteAccessToken, contactEmail; optional notes
{
  "mcpServers": {
    "partpacket": {
      "type": "http",
      "url": "https://partpacket.com/mcp"
    }
  }
}

Configuration shape varies by client. Schemas are available through tools/list. Every tool shares the REST router, validation, private quote access and limits.

Limits & errors

Up to 20 quote requests per IP per UTC day and 100 across the service during initial launch. Quoting may take up to a minute. Do not retry an upload automatically after a lost response. REST errors are JSON with an error field.

StatusMeaning
400 / 415Invalid fields, file or content type
404Unknown or expired private quote, or invalid token
409Estimate needs refreshing
413File or request too large
422No connected provider supports this process/file
429Daily limit reached
503Service or order review unavailable

See how files and contact details are handled.