Raw schema
{
"type": "object",
"properties": {
"model_url": {
"type": "string",
"format": "uri",
"description": "Public https URL to the 3D model file (STL, 3MF, OBJ, PLY, or STEP). The server fetches it. Use this OR model_base64."
},
"model_base64": {
"type": "string",
"description": "Base64-encoded model file bytes (STL/3MF/OBJ/PLY/STEP), an alternative to model_url for inline data. Provide `filename` too."
},
"filename": {
"type": "string",
"description": "File name incl. extension, e.g. 'bracket.stl'. Sets the file type; required with model_base64."
},
"printer": {
"type": "string",
"description": "3D printer id from list_printers (elegoo-neptune4-max, bambu-a1, bambu-a1-mini, bambu-p1s, bambu-x1c, prusa-mk4, prusa-mini, ender3-v3, creality-k1, creality-k1-max, voron-24-350, anycubic-kobra2). Default elegoo-neptune4-max."
},
"material": {
"type": "string",
"description": "Filament/material id (pla, pla-cf, petg, petg-cf, abs, abs-cf, asa, asa-cf, nylon, pc, pet, tpu). Default pla."
},
"quantity": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Number of parts (1-10000). Volume discounts apply automatically. Default 1."
},
"quality": {
"type": "string",
"enum": [
"draft",
"standard",
"fine"
],
"description": "Print quality preset: draft 0.28mm | standard 0.20mm | fine 0.12mm layer height."
},
"layer_height": {
"type": "number",
"description": "Explicit layer height in mm (0.04-0.6); overrides `quality` if both are given."
},
"infill_percent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Sparse infill density percent (0-100). Used for the material-saving delta in a full DFM report."
},
"supports": {
"type": "string",
"enum": [
"auto",
"none",
"tree"
],
"description": "Support generation style."
},
"currency": {
"type": "string",
"description": "Bring-your-own pricing: 2-8 letter currency code (e.g. USD, EUR). Default USD."
},
"machine_rate_per_hour": {
"type": "number",
"description": "Bring-your-own pricing: machine time cost per hour, in `currency`. Default FabTally's rate."
},
"margin": {
"type": "number",
"description": "Bring-your-own pricing: fractional margin on top of cost, e.g. 0.3 = 30%. Default FabTally's margin."
},
"setup_fee": {
"type": "number",
"description": "Bring-your-own pricing: flat per-quote setup fee, in `currency`. Default FabTally's fee."
},
"minimum_price": {
"type": "number",
"description": "Bring-your-own pricing: price floor per unit, in `currency`. Default FabTally's minimum."
},
"material_cost_per_kg": {
"type": "number",
"description": "Bring-your-own pricing: override the material's $/kg cost. Default FabTally's material pricing."
},
"markup_percent": {
"type": "number",
"description": "Bring-your-own pricing: extra percent markup applied on top of margin. Default 0."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}