Most text-to-3D services are built for game assets and renders: pretty mesh, non-manifold geometry, no thought to the print bed. Drop that STL into Chitubox or Lychee and you will see what needs fixing before you can print.
This guide walks through a text-to-STL API built the other way around: resin-print first. The output is a watertight mesh with profiles tuned to specific resin printers (Anycubic Photon Mono M5s, Elegoo Saturn 3 Ultra, Elegoo Mars 4 Ultra, Phrozen Sonic Mini 8K, plus a generic 4K fallback). SLA support trees can be auto-generated. FDM is not yet a first-class profile — generic STL still works in any FDM slicer, but printer-tuned FDM presets are on the roadmap.
Step by step
- 01
Describe the object — with a scale
"60mm tall chess knight, resin printer" beats "chess knight". Real-world size in millimetres is a first-class parameter (`target_size_mm`). Mention printer model and intended style (miniature, functional part, art) — the API respects these constraints during generation.
- 02
Pick a quality tier
Lite (~15s, $0.08) is great for iteration. Standard (~30s, $0.15) is the default for printable output. High (~60s, $0.25) increases polygon density. Ultra ($2.00, Tencent Hunyuan3D 3.0) is a separate higher-quality pipeline. Tier controls poly count and source model, not style.
- 03
Get an STL plus a printer-validation step
Response includes the mesh URL and a watertight check. Use the `validate_for_printer` tool to run wall-thickness and overhang checks against the chosen profile, and `generate_sla_supports` to add a tree-style support structure tuned to that printer.
Example prompts
Copy, click, tweak — the CTA opens the terminal with the prompt pre-loaded.
Art-deco chess knight, 60mm tall, resin printer (Elegoo Saturn 3 Ultra). Miniature style. Auto-generate supports. Try →Low-poly dragon figurine, 80mm tall, cartoon style, Anycubic Photon Mono M5s. Optimise for minimal support contact area. Try →Gothic gargoyle gargoyle bust, 40mm tall, Phrozen Sonic Mini 8K. Style: dark fantasy, high-detail surface texture. Try →API call
Standard REST. Bearer token, JSON body, URL response. Works in any HTTP client, n8n, Make, Zapier, or MCP agent.
curl -X POST https://api.42rows.com/v1/3d-creative \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "art-deco chess knight, 60mm, resin printer",
"quality": "standard",
"target_size_mm": 60,
"printer": "elegoo_saturn_3_ultra",
"format": "stl"
}'Pricing
Lite $0.08 (~15s) · Standard $0.15 (~30s) · High $0.25 (~60s) · Ultra $2.00 (Tencent Hunyuan3D 3.0). Pay-per-call.
FAQ
Will the STL print without manual repair?
In most runs the mesh is watertight and slicer-ready. We do not have a published validation rate yet — that benchmark is on the roadmap. The `validate_for_printer` tool flags wall thickness or overhang issues against the chosen printer profile so you catch problems before slicing.
Which printers are supported as first-class profiles?
Resin: Anycubic Photon Mono M5s, Elegoo Saturn 3 Ultra, Elegoo Mars 4 Ultra, Phrozen Sonic Mini 8K, plus a Generic 4K fallback. FDM is not yet a first-class profile — the generic STL output still loads in any FDM slicer, but FDM-specific tuning is roadmap.
Can I input a reference photo instead of text?
Yes — pass `image_url` instead of (or alongside) `prompt`. Single object on a plain background works best. Cluttered photos confuse the reconstructor and produce noisy meshes.
How are SLA supports generated?
Select a resin printer profile and call `generate_sla_supports` — the API runs a tree-based generator (ported from PrusaSlicer) tuned to the chosen printer. Pass `supports: false` to skip.
Do I get billed for previewing or validating?
Mesh inspection (`get_model_info`, `list_printer_presets`, `get_manual`) is free. Validate ($0.02–$0.05), supports ($0.08), preview render ($0.15), painted render ($0.40), format conversion ($0.03) are charged separately when used.
Ship it
Use the first example prompt as a starter — the button opens the public terminal with it pre-filled.