Overview
The AXIS Avatar Foundry API provides programmatic access to avatar generation, mesh processing, and multi-platform export. All endpoints require authentication via API key.
https://api.axisfoundry.com/api
Available Endpoints
| Method | Endpoint | Description |
| GET | /health | Health check |
| GET | /api/platforms | List supported platforms |
| POST | /api/generate | Generate avatar from text/preset |
| POST | /api/process | Process uploaded mesh |
| POST | /api/process/stream | Process with SSE progress |
| POST | /api/batch-generate | Batch generation |
| POST | /api/batch-generate/stream | Batch with SSE streaming |
| GET | /api/preview | WebGL preview page |
| GET | /openapi.json | OpenAPI 3.0.3 spec |
Authentication
All API requests require an API key sent via the Authorization header.
Authorization: Bearer sk-your-api-key-here
You can also use the X-API-Key header as an alternative.
Generate an API Key
Navigate to Settings → API Keys in your dashboard to create and manage keys. Keys support scoping: read, write, admin.
Generate Avatar
{
"preset": "warrior",
"prompt": "tall athletic male",
"platform": "unity",
"morph_targets": true,
"lods": true,
"no_face": false
}
Response
{
"stage_reached": "export_ready",
"vertex_count": 5432,
"face_count": 10864,
"preset": "warrior",
"platform": "unity",
"exported": true,
"morph_targets": true,
"review_session_id": "review_abc123",
"glb_size": 2048576,
"errors": []
}
Process Mesh
curl -X POST https://api.axisfoundry.com/api/process \
-H "Authorization: Bearer sk-your-key" \
-F "file=@character.glb" \
-F "platform=unity"
Batch Generation
{
"items": [
{"preset": "warrior", "platform": "unity"},
{"prompt": "slim female elf", "platform": "unreal"},
{"preset": "mage", "platform": "godot"}
]
}
WebSocket API
Connect to ws://api.axisfoundry.com/ws for real-time bidirectional communication.
{"action": "process", "path": "/mesh.glb", "platform": "unity"}
{"action": "validate", "path": "/mesh.glb"}
{"action": "cancel"}
{"action": "ping"}
{"type": "progress", "stage": "rigging", "progress": 0.42}
{"type": "result", "avatar_id": "uuid-..."}
{"type": "error", "error": "description"}
{"type": "pong"}
Error Handling
All error responses follow a consistent structure:
{
"error": "Validation Failed",
"error_code": "VALIDATION_ERROR",
"detail": "Mesh has degenerate faces",
"suggestions": [
{
"title": "Clean Mesh Geometry",
"description": "Remove degenerate faces before import",
"confidence": 0.9,
"auto_fixable": true
}
]
}