Polymath
Documentation

API Reference

Programmatic access to the Polymath CAD translation service.

Authentication

Generate an API key from your dashboard settings. Include it in every request:

X-Api-Key: pw_live_your_key_here
POST/api/extract

Upload an NX .prt file for feature extraction. Returns feature count and pricing.

Request

Content-Type: multipart/form-data
Body: file=@your_model.prt

Response

{
  "featureCount": 12,
  "features": [{"type": "Extrusion", "name": "Extrude1"}, ...],
  "totalCents": 120,
  "totalFormatted": "$1.20"
}
POST/api/jobs

Create a conversion job. Returns a Stripe checkout URL.

Response

{
  "jobId": "uuid",
  "checkoutUrl": "https://checkout.stripe.com/...",
  "featureCount": 12,
  "totalCents": 120
}
GET/api/jobs/:jobId

Poll for job status. Returns result URL when complete.

Status Values

pending_paymentpaidsubmittedprocessingcompletedfailed
GET/api/jobs/:jobId/download

Redirects to the S3 presigned URL for the .sldprt file. Only available when status is "completed".

Code Examples

curl

# Extract features from a .prt file
curl -X POST https://your-domain.com/api/extract \
  -H "X-Api-Key: pw_live_your_key" \
  -F "file=@model.prt"

Python

import requests

with open("model.prt", "rb") as f:
    resp = requests.post(
        "https://your-domain.com/api/extract",
        headers={"X-Api-Key": "pw_live_your_key"},
        files={"file": f},
    )
print(resp.json())

Supported Feature Types

CategoryTypes
Sketch
ProfileFeature3DProfileFeature
Extrusion
ExtrusionICE
Revolution
RevolutionRevCut
Edge
FilletChamfer
Body
Shell
Hole
HoleWzd
Pattern
CirPatternLPatternMirrorPattern
Datum
RefPlaneRefAxis

Error Codes

CodeMeaning
400Invalid file or missing fields
401Missing or invalid API key
413File exceeds 100 MB
429Server busy — retry shortly
503Extraction or reconstruction service unavailable