Wyntek Agent API Reference
Wyntek's agent API is a small public REST API under https://wyntek.tech/api/agent. It returns the live catalog and dollar estimates as JSON, with no key or account, and mirrors the MCP server's tools for agents that prefer plain HTTP.
Updated 30 Sep 2026 · 3 min read · By Wyntek
Endpoints
| Method and path | Purpose |
|---|---|
| GET /api/agent/catalog | Processes, materials by plan, plans, file formats, and quantity limits. Cached for up to 5 minutes. |
| POST /api/agent/estimate | A dollar estimate for one part design |
| GET /api/agent/openapi.json | OpenAPI 3.1 description of this API |
| GET /.well-known/api-catalog | API catalog linkset (RFC 9727) pointing to the OpenAPI file and llms.txt |
| GET /llms.txt | Plain-text overview of Wyntek for language models |
Get the catalog
curl -s https://wyntek.tech/api/agent/catalog{
"provider": "Wyntek",
"currency": "USD",
"processes": [
{
"id": "fdm",
"name": "FDM 3D printing",
"typical_lead_time_days": 3,
"materials": [
{
"id": "pla",
"name": "PLA",
"process": "fdm",
"available_on_plans": [
"free",
"pro",
"max",
"enterprise"
]
}
]
}
],
"file_formats": {
"instant_estimate": [
"stl",
"obj"
],
"manual_review": [
"3mf",
"step",
"stp",
"iges",
"igs",
"sldprt",
"f3d",
"dxf"
]
},
"quantity": {
"min": 1,
"max": 100
},
"ordering": {
"summary": "Orders are placed by a signed-in person on wyntek.tech. Agents can prepare a prefilled order link; the person uploads the file, reviews the final price and submits.",
"requires_account": true,
"agent_payment_supported": false
}
}Estimate a price
Send JSON with process, material, an optional quantity, and exactly one of volume_cm3 or files. The arguments match the MCP estimate_price tool.
curl -s -X POST https://wyntek.tech/api/agent/estimate \
-H "Content-Type: application/json" \
-d '{"process":"fdm","material":"pla","volume_cm3":8}'{
"process": "fdm",
"material": {
"id": "pla",
"name": "PLA"
},
"quantity": 1,
"currency": "USD",
"available_on_plans": [
"free",
"pro",
"max",
"enterprise"
],
"typical_lead_time_days": 3,
"order_url": "https://wyntek.tech/jobs/new?service=fdm&material=pla",
"note": "Estimate only, excluding shipping. The binding price is calculated from the uploaded file when the order is submitted on wyntek.tech.",
"status": "estimated",
"volume_cm3": 8,
"unit_price": {
"amount_cents": 100,
"formatted": "$1"
},
"total_price": {
"amount_cents": 100,
"formatted": "$1"
}
}To price a mesh, send it inline as base64. STL and OBJ files in millimetres are measured. 3MF, STEP, IGES, SLDPRT, F3D, and DXF come back with status manual_review and a reason, because those formats are priced after review.
B64=$(base64 < bracket.stl | tr -d '\n')
curl -s -X POST https://wyntek.tech/api/agent/estimate \
-H "Content-Type: application/json" \
-d "{\"process\":\"fdm\",\"material\":\"petg\",\"quantity\":10,\"files\":[{\"name\":\"bracket.stl\",\"content_base64\":\"$B64\"}]}"Order links
Every estimate includes an order_url, and you can build one yourself: https://wyntek.tech/jobs/new?service=fdm&material=pla&quantity=10. The person who opens it signs in, uploads the file, reviews the binding price, and submits. The API cannot place or pay for orders.
Errors and limits
Errors share one shape, an error object with a code and a message. CORS is open to any origin and no credentials are used, so the API can be called from a browser.
{
"error": {
"code": "unknown_material",
"message": "Material \"unobtainium\" is not available for FDM. Available: pla, petg, abs, nylon"
}
}| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request, unknown_material, unparseable_file | The input failed validation, the material is not orderable for that process, or a mesh could not be measured |
| 413 | too_large | Body over about 4.4 MB; inline files are limited to 3 MB |
| 415 | invalid_request | Content-Type is not application/json |
| 429 | rate_limited | About 30 estimates a minute per client; wait for the Retry-After header |
| 503 | unavailable | Pricing is briefly unavailable; try again shortly |