POST
/v1/auth/tokenObtain access token
{
"access_token": "eyJ...",
"expires_in": 3600,
"token_type": "Bearer"
}TECHAIM
Developers
Integrate precision scoring and analytics into your applications with our REST API and real-time WebSocket feeds.
Obtain a bearer token via POST /v1/auth/token using your client credentials. Include the token in all subsequent requests:
Authorization: Bearer {access_token}/v1/auth/tokenObtain access token
{
"access_token": "eyJ...",
"expires_in": 3600,
"token_type": "Bearer"
}/v1/sessionsList shooting sessions
{
"data": [
{
"id": "sess_001",
"athlete_id": "ath_001",
"started_at": "2026-03-15T10:00:00Z",
"shot_count": 60
}
]
}/v1/sessionsCreate a new session
{
"id": "sess_002",
"status": "active"
}/v1/sessions/{id}/shotsGet shots for a session
{
"data": [
{
"id": "shot_001",
"x": 0.42,
"y": -0.38,
"score": 10.2,
"timestamp": "2026-03-15T10:01:23Z"
}
]
}/v1/athletesList athletes
{
"data": [
{
"id": "ath_001",
"name": "Jane Smith",
"club": "National Range"
}
]
}/v1/competitionsList competitions
{
"data": [
{
"id": "comp_001",
"name": "National Championships 2026",
"status": "active"
}
]
}Real-time scoring feed. Subscribe to lane or session events.
/ws/v1/scoring{
"type": "shot",
"data": {
"lane": 1,
"x": 0.42,
"y": -0.38,
"score": 10.2
}
}shot.registeredFired when a new shot is detected and scoredsession.startedFired when a training or competition session beginssession.completedFired when a session endscompetition.updatedFired when competition standings changeTry endpoints with mock responses (sandbox coming soon)
Click Send Request to see mock response
Get started
Contact engineering for API credentials and sandbox access.