Integrate the 3D printing API into your store
Quotes, orders and tracking for your store, configurator or application.
Published by FRED · Updated
FRED manufactures and ships the objects sold on your website. Your application supplies the 3D model or the ID of a saved product; FRED offers manufacturers, calculates shipping and tracks the order to your customer.
MCP
Connect Claude Code, Codex or Cursor to FRED: copy-paste configuration, account connection and examples for integrating the API into your project.
The integration has two main operations: get a quote, then place an order. Requests come from your server using the key created in the dashboard.
The JavaScript examples run on a Node.js 22+ server. For Python, install requests with pip install requests. Replace example IDs with those returned by your API calls.
1. Upload an object and get its price
curl https://api.fredpod.com/v1/storefront/quotes/upload \
-H "X-API-Key: $FRED_API_KEY" \
-H "Idempotency-Key: devis-panier-1042-v1" \
-F "file=@figurine.3mf" \
-F "country=FR" \
-F "postal_code=34000"STL, OBJ and 3MF are accepted. Defaults: one piece, PLA, original size and
file colours where supported (color=auto). The country defaults to
FR when omitted. The postal code is optional when comparing manufacturing;
it is required for a delivered total.
The response contains id, status, options and recommended_option_id.
Each option provides a manufacturer, its manufacturing price, FRED fees,
shipping and lead times. Amounts are in euro cents. Values in the reference examples are illustrative; only your quote gives the actual price.
A new file may return 202, with status: "processing" and no
price options. The visual preview may be available during calculation; the price waits
for successful slicing. Read poll_url every two seconds to get
confirmed options (estimate_source: "slicer"). Reusable analysis may return
its result immediately. This request does not create an order.
curl https://api.fredpod.com/v1/storefront/quotes/est_abc123 \
-H "X-API-Key: $FRED_API_KEY"Display options[].price.total_cents only when it has a value.
Unknown shipping costs are null, never “free”. For a store that selects
the manufacturer automatically, use the recommended option. You can also
show alternatives to your buyer.
2. Place the order
Once the quote is ready and the buyer has accepted the price:
curl https://api.fredpod.com/v1/storefront/orders \
-H "X-API-Key: $FRED_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: commande-boutique-1042" \
-d '{
"quote_id": "est_abc123",
"external_ref": "BOUTIQUE-1042",
"shipping_address": {
"name": "Camille Dupont",
"line1": "10 rue de la Paix",
"postal_code": "34000",
"city": "Montpellier",
"country": "FR"
}
}'Without option_id, FRED selects the best available option. To keep the
choice shown to the buyer, send its option_id. The country and postal code
must match the quote; otherwise, recalculate shipping.
Without approval_mode, FRED follows the brand's review settings, or the
account settings when there is no brand. auto respects the brand's delay and any
manual review requirement. A 201 response means that the
order exists: read status and payment_status to find out whether any action
is still required. Manufacturing starts only after confirmed payment.
approval_mode: "manual" leaves the order awaiting review in the dashboard.
Keep the same Idempotency-Key and body if a response is lost.
Use a new key for a new order.
Adapt the integration to your website
| Need | Guide |
|---|---|
| Display prices, manufacturers, colours and lead times | Quotes and manufacturers |
| Add a personalised card to the parcel | Parcel inserts |
| Calculate shipping before payment | Shipping |
| Order a saved model | Dashboard products |
| Understand approval, payment and retries | Orders |
| Update your website and provide tracking | Webhooks and tracking |
The reference below is limited to requests useful for a storefront integration. Account settings, printers and administration remain in the dashboard.