DEV Community

Polyform Prints
Polyform Prints

Posted on

How to get live 3D print pricing in Google Sheets with one formula

If you sell 3D printed items on Etsy (or anywhere else), you've probably done the maths in your head or in a scrappy spreadsheet. Filament cost, electricity, time, markup - it adds up, and getting it wrong means you're working for free.

I built PolyQuote to solve this - a REST API that calculates an accurate recommended sale price from your print parameters. And recently I added a CSV endpoint so you can pull live pricing directly into Google Sheets with a single formula. No scripts, no code, no setup.

Here's how to do it.


The formula

Paste this into any cell in Google Sheets:

=IMPORTDATA("https://3d-print-quote-api.polyform-api.workers.dev/demo/quote/csv?filament_type=PETG&weight_grams=85&print_hours=3.5&markup_percent=120")
Enter fullscreen mode Exit fullscreen mode

Click "Allow access" if Sheets prompts you, and you'll get this:

PolyQuote data in Google Sheets

Row 1 is headers. Row 2 is your live pricing data - material cost, electricity cost, total base cost, and recommended sale price, all calculated from the parameters you passed in.


What the parameters mean

Parameter What it is
filament_type PLA, PETG, ABS, TPU, PLA+, PLA-SILK, PLA-MATTE, PETG-MATTE
weight_grams How much filament your slicer says the print uses
print_hours Total print time in hours
markup_percent Your profit margin - 100 means double your cost

So the formula above is asking: what should I charge for a PETG print that uses 85g of filament and takes 3.5 hours, with a 120% markup?

The answer comes back as £3.06.


Making it dynamic

The real power is linking the parameters to cells instead of hardcoding them. Set up a simple input table:

A B
Filament type PETG
Weight (g) 85
Print hours 3.5
Markup % 120

Then build the formula dynamically:

=IMPORTDATA(
  "https://3d-print-quote-api.polyform-api.workers.dev/demo/quote/csv"
  &"?filament_type=" & B1
  &"&weight_grams=" & B2
  &"&print_hours=" & B3
  &"&markup_percent=" & B4
)
Enter fullscreen mode Exit fullscreen mode

Change any input cell and the pricing updates automatically. Price a whole catalogue of prints by copying the formula down with different parameters per row.


What the API calculates

The response breaks down:

  • material_cost_gbp - filament weight × cost per kg (system defaults or your own)
  • electricity_cost_gbp - print time × printer wattage × your electricity rate
  • total_base_cost_gbp - everything combined before markup
  • recommended_price_gbp - base cost with your markup applied

The full API (with an API key) also supports failure rate buffer, packaging cost, printer depreciation, and platform fee breakdowns for Etsy, eBay, and Shopify. The demo endpoint keeps it simple - the four core parameters that cover most use cases.


Limits on the demo endpoint

The demo endpoint allows 5 requests per hour per IP - enough for testing and light use. For production use (pricing a full catalogue, running a batch script, or building a tool for other sellers), sign up for a free API key at api.polyformprints.co.uk. The free tier gives you 200 calls/month, no credit card required.


Why I built this

I run a small 3D printing business on Etsy - Polyform Prints - and kept pricing by gut feel. At the end of the month I'd realise I'd undercharged on half my listings.

PolyQuote started as a personal tool and I opened it up as a public API when I realised the problem wasn't unique to me. The Sheets integration came next because most small sellers live in spreadsheets, not terminal windows.

If you sell prints and want accurate pricing without building anything yourself, give it a try.

API landing page: api.polyformprints.co.uk

Docs: api.polyformprints.co.uk/docs.html

Postman collection: Run in Postman


Top comments (0)