FREDFRED docs

3D printing quotes: prices, manufacturers and approval

Display prices and let FRED or your customer choose the manufacturer.

Published by FRED · Updated

Choose the model source

  • New file: POST /v1/storefront/quotes/upload, using multipart.
  • File already in the account: POST /v1/storefront/quotes with file_id.
  • Dashboard product: the same JSON request with product_id.
{
  "product_id": "prod_abc123",
  "quantity": 2,
  "color": "black",
  "destination": { "country": "FR", "postal_code": "34000" }
}

Send the API key and an Idempotency-Key with each creation request. Without a postal code, production prices can be compared but no delivered total is shown.

Optional settings

FieldDefaultUse
quantity1From 1 to 50 identical copies
materialPLAExact ID from GET /v1/materials, for example bambu-pla-matte; PLA remains the legacy alias
colorautoReference to a colour of this material; auto proposes a match for the file's colours
height_mmOriginal sizeProportional resizing, from 5 to 350 mm; may require approval
destination.countryFRDelivery country, two-letter code
destination.postal_codeAbsentRequired for a delivered price
product_variant_idDefault compatible variantOnly for a saved product
personalization{}Fields defined on the saved product

For multipart uploads, country and postal_code are separate form fields; the other options use the same names. For several different models, request a quote for each model. This interface covers one object, one configuration and one destination at a time.

Exact materials and colours

Call GET /v1/materials with your API key (quotes:read). The response contains materials, with each range's id, name, role and colors. Each colour provides id, code, label, hex and hexes (several shades for a multicolour filament). Only use ranges with role: "model" as the main material; the others are support filaments.

{
  "file_id": "file_abc123",
  "material": "bambu-pla-matte",
  "color": "bambu-pla-matte:11101",
  "quantity": 2,
  "destination": { "country": "FR", "postal_code": "34000" }
}

A PLA Basic colour cannot be combined with PLA Matte. References are compared against the manufacturer's exact stock and its price list for that material. The catalogue does not guarantee that a manufacturer or a qualified profile is available. Without a compatible offer, the quote remains unavailable: there is no silent substitution with PLA Basic. With color: "auto", a difference between the file's colours and the proposed shades may require preview approval.

Legacy requests using material: "PLA" with color: "black" are still accepted. For a new integration, use catalogue IDs and retain material and the response's colors with the quote.

Read the response

Each entry in options contains:

FieldWhat to display or use
idThe option_id to retain if you choose this manufacturer
supplierManufacturer ID, name, city and country
colorsref references and hex shades of the proposed manufacturing file
price.production_centsManufacturing and preparation for the entire quantity
price.service_centsFRED service fees
price.shipping_centsParcel shipping, or null
price.total_centsAmount to pay, or null while shipping is missing
dispatch_hoursExpected time before dispatch, after payment
transit_hoursExpected transit time, or null
delivery_hoursExpected overall lead time, or null
availableThis option can be selected now
reasonReason for unavailability, if any
expires_atEnd of the price's validity
estimate_sourceslicer after successful slicing
indicativeThe price or terms still need confirmation
estimation_noticeExplanation to display with the provisional price

During initial slicing, no provisional price option is published. The visual preview may already be available, but prices and measurements wait for successful slicing. Keep reading poll_url while the quote is being calculated. Only use an option with available: true to order, after completing any required approvals.

Lead times are estimates, not a capacity reservation. FRED ranks options according to its recommendation policy: lead time, quality, price and distance. recommended_option_id identifies the first orderable option. The cheapest manufacturer is therefore not necessarily the recommended one.

To let FRED choose when ordering, omit option_id. To preserve the choice made on your website, send it with quote_id. Availability is checked again before the order is created.

Wait or request approval

Quote statusAction for your website
processingRead poll_url every two seconds
needs_destinationRequest the postal code and calculate shipping
readyShow available options and allow ordering
action_requiredDisplay the preview and ask for model approval
unavailableDisplay issues, reason or unavailable_suppliers; do not offer payment

Get an exact price quickly

A storefront quote becomes ready as soon as an exact, available option can be ordered. It no longer waits for alternative profiles to finish slicing. comparison_complete: false means other manufacturers are still being calculated: you can keep reading poll_url to complete the comparison. The recommendation may change; send option_id to preserve the choice shown to your customer.

Slicing measurements are reused for the same account, prepared file, profile, material and palette. A new quantity or destination recalculates prices without slicing the unit again. Prices and availability are still checked for each new quote.

For a store, request a quote for each configuration you will sell before listing it, then wait for the comparison to finish. Customer requests can then reuse those measurements. New geometry, personalisation, size or machine settings may require initial slicing: an exact price within seconds is not guaranteed.

If approval_required is true, show the option's preview to your user, then call POST /v1/preparations/{preparation_id}/approve with {"artifact_id":"artifact_abc123"} after their explicit approval. Reload the quote afterwards. Approval does not replace missing technical qualification. Preview URLs also require authentication: serve them through your server without exposing the API key to the browser.

Changing the material, quantity, size, colour or model requires a new quote. An existing quote's price stays fixed; an expired result can no longer be ordered.

Was this page helpful?

On this page