REST API for STL simplification
Programmatic mesh decimation. Upload STL, get simplified STL. No auth key for read endpoints; POST /simplify uses 60 req/min per IP rate limit.
—Simplified
—Tris removed
—Bytes processed
—Uptime
Endpoints
GET
/api/v1/info
Service info and limits
Request
curl https://retop.app/api/v1/info
Response
{
"service": "retop",
"version": "1.0.0",
"status": "ok",
"limits": {
"max_file_mb": 50,
"max_triangles": 2000000,
"supported_formats": ["stl"]
}
}
GET
/api/v1/stats
Aggregate processing stats
Request
curl https://retop.app/api/v1/stats
Response
{
"simplified_total": 1284,
"triangles_removed_total": 48392104,
"bytes_processed_total": 3827492104,
"uptime_seconds": 86400
}
POST
/api/v1/simplify
Reduce STL triangle count
Request
curl -X POST \
"https://retop.app/api/v1/simplify?ratio=0.5" \
-F "file=@model.stl" \
-o simplified.stl
Response headers
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="simplified.stl"
X-Original-Triangles: 428392
X-Simplified-Triangles: 214196
X-Reduction-Ratio: 0.500
X-Processing-Ms: 847
Parameters
ratio— target vertex ratio,0.05–0.99. Default0.5. Lower = more aggressive simplification.format— output format. Onlystlfor now.
Rate limits
- Read endpoints (
info,stats): unlimited. POST /simplify: 60 requests per minute per IP.- Max file size: 50 MB.
- Max input triangles: 2M (larger files are rejected to protect the queue).
Error codes
400— invalid STL or bad parameters413— file too large429— rate limit exceeded500— simplification failed (unusual mesh topology)
Pricing
Free for personal and open-source use. Commercial / high-volume: write to hi@retop.app.