Base URL
text
https://api.geometry-labs.com
All endpoints are prefixed with /api. For example, the health check is at https://api.geometry-labs.com/api/health.
Availability by plan
| Plan | API access |
|---|---|
| Free | No |
| Basic | No |
| Pro | Yes |
| Team | Yes |
Quick start
- Log in and obtain a token (see Authentication).
- Check connectivity with the health endpoint.
- Start a conversion and poll for the result.
bash
# 1. Authenticate
TOKEN=$(curl -s -X POST https://api.geometry-labs.com/api/user/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-password"}' | jq -r .token)
# 2. Start a conversion
JOB=$(curl -s -X POST https://api.geometry-labs.com/api/converter/convert \
-H "Authorization: Bearer $TOKEN" \
-F "file=@model.obj" \
-F "inputFormat=obj" \
-F "outputFormat=glb" | jq -r .id)
# 3. Poll until completed
curl -s "https://api.geometry-labs.com/api/converter/status/$JOB"
# 4. Download
curl -s "https://api.geometry-labs.com/api/converter/download/$JOB" | jq -r .downloadUrl
Errors
Errors return a consistent JSON envelope with a human-readable message:
json
{ "error": "Description of what went wrong" }
| Status | Meaning |
|---|---|
400 | Invalid request or parameters. |
401 | Missing or invalid authentication. |
403 | Daily quota reached, or feature not available on your plan. |
404 | Resource not found. |
413 | File exceeds the upload limit for your plan. |
429 | Too many requests. |
500 | Server error. |