API: model export checker
Send an IFC file or a CSV/TSV schedule export, get back a JSON list of problems before the model goes to the next team. Built for AI agents and scripts. Pay per call with x402; no account or API key.
What it checks
- IFC: ISO-10303-21 header and schema, truncated files, duplicate STEP ids, invalid or duplicate GlobalIds, elements with no Name, missing unit assignment, no storeys, no property sets, elements not contained in the spatial structure.
- CSV schedules: blank or duplicate headers, rows with the wrong field count, missing or duplicate IDs (ID, GUID, Mark, Tag, UniqueId columns), empty cells per column, mixed units in one column (for example ft and mm), numbers mixed with text.
Price and payment
$0.36 per call, paid in USDC on Base (network eip155:8453, scheme exact, amount 360000 atomic units). Calls with bad input are rejected before payment is settled. Max upload 2 MB.
Endpoints
GET /api/health: status and payment details. Free.GET /api/v1/model-export-check/sample: runs the checker on a built-in sample schedule so you can see the output format. Free.POST /api/v1/model-export-check: body is the raw file text. Optional?format=ifcor?format=csv(auto-detected otherwise). Paid.
How a call works
- POST without payment. You get HTTP 402 with the payment requirements in the JSON body and in the base64
PAYMENT-REQUIREDheader. - Your x402 client signs a USDC payment and retries with the
PAYMENT-SIGNATUREheader. - We verify, run the check, settle, and return the JSON result with a
PAYMENT-RESPONSEheader.
curl -i -X POST --data-binary @schedule.csv https://aecagents.si/api/v1/model-export-checkResponse
{ "format": "csv", "ok": false, "counts": {"error": 3, "warning": 2, "info": 0},
"summary": {...}, "issues": [{"severity": "error", "code": "CSV_DUP_ID", "message": "Mark 'B2' duplicated on rows 3 and 4", "row": 4}] }Limits
Text checks only: it does not open geometry, clash models or check code compliance. Files are processed in memory and not stored. Results must be reviewed by a qualified person.