UAE X10 AI REST API v1
Integrate world-class AI arrow detection, coaching, and analytics into your archery applications. Our API powers the same technology used by national teams and federations.
https://ai.uaex10.comBearer token via Authorization header
Free: 3/day | Pro: 100/day | Federation: 10K/day
All authenticated endpoints require a valid session token or API key. Include it in the Authorization header:
Generate API keys from your AI Dashboard settings. Keys are scoped to your subscription plan.
/api/ai/analyze-targetUpload a target photo for AI arrow detection and scoring. Returns arrow positions, scores, grouping, and bias analysis.
Request Body
{
"image": "data:image/jpeg;base64,...",
"targetType": "compound" // recurve, compound, wa_40cm, field, air_rifle_10m, etc.
}Response
{
"arrows": [
{ "num": 1, "score": "10", "x_pct": 50.2, "y_pct": 48.1, "clock": 2, "distance": 1.3 }
],
"totalScore": 58,
"xCount": 2,
"tenPlusXCount": 4,
"grouping": "tight",
"bias": "2-o-clock"
}/api/ai/chatSend a conversation to the AI Coach. Returns personalized coaching advice based on athlete data, training history, and recovery metrics.
Request Body
{
"messages": [
{ "role": "user", "content": "How should I adjust my training this week?" }
],
"sport": "archery",
"athleteContext": { ... } // Optional: structured athlete data
}Response
{
"message": "Based on your recent scores showing a 3% improvement..."
}/api/ai/athlete-contextRetrieve aggregated athlete context: recent training sessions, score trends, mental state, and WHOOP recovery data.
Response
{
"profile": { "name": "...", "bowType": "compound", "category": "senior" },
"recentSessions": [ ... ],
"scoreTrend": { "average": 92, "best": 97, "latest": 94, "direction": "improving" },
"mentalState": { "latest": { "mood": 8, "energy": 7, "focus": 9 } },
"recovery": { "recoveryScore": 78, "hrv": 65, "sleepScore": 82 }
}/api/ai/coachGenerate a comprehensive batch coaching report for an athlete based on their performance summary.
Request Body
{
"summary": "Athlete scored 678/720 in the WA 720 round...",
"athleteId": "athlete-uuid"
}Response
{
"report": "## Coaching Report\n\n### Executive Summary..."
}/api/ai/live-sessionCreate a new live scoring session. Returns a 6-character session code for multi-device sync.
Request Body
{
"targetType": "compound",
"sport": "archery"
}Response
{
"code": "ABC123",
"created": true,
"expiresIn": "4 hours"
}/api/ai/live-sessionPush arrow data or actions (new_end, end) to a live session. Broadcasts to all connected observers via SSE.
Request Body
{
"code": "ABC123",
"arrows": [ ... ],
"totalScore": 58,
"xCount": 2,
"action": "update" // or "new_end" or "end"
}Response
{
"updated": true,
"listeners": 3
}/api/ai/live-session?code=ABC123Connect to an SSE stream for live scoring updates. Events: init, update, new_end, session_ended.
Response
event: init
data: {"code":"ABC123","ownerName":"Ahmed","arrows":[...],"totalScore":58}
event: update
data: {"arrows":[...],"totalScore":67}| Code | Status | Description |
|---|---|---|
400 | Bad Request | Missing or invalid request parameters |
401 | Unauthorized | Missing or invalid authentication token |
403 | Forbidden | Insufficient plan or permissions |
404 | Not Found | Resource not found (e.g., invalid session code) |
429 | Rate Limited | Exceeded plan rate limit — retry after cooldown |
500 | Server Error | Internal processing error — contact support |
502 | AI Service Error | Upstream AI provider temporarily unavailable |
503 | Service Unavailable | AI service not configured or maintenance |
Need help integrating? Contact our developer team