Guide · text to STL API

Text-to-STL API — resin-printable meshes from a prompt

A text-to-STL API tuned for resin printers. Output is a watertight mesh with profiles for Anycubic Photon Mono M5s, Elegoo Saturn 3 Ultra, Elegoo Mars 4 Ultra, and Phrozen Sonic Mini 8K. Slicer-ready, not render-ready.

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

  1. 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.

  2. 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.

  3. 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.

Resin miniature with auto-supports Art-deco chess knight, 60mm tall, resin printer (Elegoo Saturn 3 Ultra). Miniature style. Auto-generate supports. Try →
Stylised figurine Low-poly dragon figurine, 80mm tall, cartoon style, Anycubic Photon Mono M5s. Optimise for minimal support contact area. Try →
Detail piece for terrain 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.