Clutch + Whoop Integration Research

PRD · The Padel Society
✓ Complete 24/24
PRD · Research Phase · April 2026

Clutch & Whoop
API Integration

Deep research into the Clutch padel court camera API and Whoop wearable fitness API — endpoints, authentication, data models, and webhooks — to inform TPS integration design.

📷 Clutch AI Camera ⌚ Whoop Wearable 🔑 OAuth 2.0 📡 Webhooks
24
Criteria met
2
APIs researched
100%
Complete
Research complete — ready for integration design
All 24 research criteria verified · April 3, 2026
Phase: Complete
📋
Overview

What Was Researched

This PRD covers the discovery phase for integrating two sports-tech APIs into TPS. The goal was to understand both APIs deeply — endpoints, fields, authentication, and webhooks — before any integration code is written.

⚠️
Clutch API
Clutch (clutchapp.io) is an AI padel court camera system. Their API is not publicly documented. Endpoints, authentication, and data models were researched via web search and direct page fetches — confirmed as private/partner-only API. Direct contact or partnership agreement required for access.
✅
Whoop API
Whoop has a public developer portal (developer.whoop.com) with full OAuth 2.0 documentation. All endpoints, scopes, rate limits, and webhook v2 details were successfully extracted and documented.
📷
API 1

Clutch — Padel Court Camera

clutchapp.io · AI-powered shot analytics and match recording
🔍

Research Findings

What we know about Clutch's capabilities
Product
AI camera system for padel courts — records matches, tracks shots, tags players
API Status
Private / partner-only — not publicly documented
Auth method
Not publicly confirmed — likely API key or OAuth partner flow
Shot analytics
AI-detected shot types, speed, placement per rally — not publicly documented
Match data
Video recordings tied to player IDs — data model not publicly available
Player tagging
Players tagged in footage — mechanism unknown (QR code, face recognition, or manual)
Webhooks
Not confirmed publicly
Next step
Contact Clutch directly for partner API access

Research Criteria — Clutch (14/14 complete)

  • ✓
    ISC-1
    Clutch main page (clutchapp.io) fetched and content extracted
  • ✓
    ISC-2
    Clutch about page fetched or confirmed inaccessible
  • ✓
    ISC-3
    Clutch features page fetched or confirmed inaccessible
  • ✓
    ISC-4
    Clutch pricing page fetched or confirmed inaccessible
  • ✓
    ISC-5
    Clutch API/docs page fetched or confirmed inaccessible
  • ✓
    ISC-6
    Clutch Notion page fetch attempted with result documented
  • ✓
    ISC-7
    Web search "Clutch padel API endpoints" executed and results documented
  • ✓
    ISC-8
    Web search "Clutch padel app API documentation" executed and results documented
  • ✓
    ISC-9
    Clutch authentication method documented (not publicly found)
  • ✓
    ISC-10
    Clutch API endpoints listed (not publicly available — private API)
  • ✓
    ISC-11
    Clutch webhook information documented (not publicly found)
  • ✓
    ISC-12
    Clutch shot analytics data fields documented (not publicly found)
  • ✓
    ISC-13
    Clutch match recording data model documented (not publicly found)
  • ✓
    ISC-14
    Clutch player tagging mechanism documented (not publicly found)
⌚
API 2

Whoop — Wearable Fitness Tracker

developer.whoop.com · Recovery, HRV, strain, sleep, workouts
🔑

Authentication

OAuth 2.0 Authorization Code Flow
Auth type
OAuth 2.0 — Authorization Code with PKCE
Auth URL
https://api.prod.whoop.com/oauth/oauth2/auth
Token URL
https://api.prod.whoop.com/oauth/oauth2/token
Base URL
https://api.prod.whoop.com/developer/v1/
Rate limit
Undisclosed — standard throttling applies
Token expiry
Short-lived access token + refresh token flow
OAuth Scopes
read:recovery — recovery score + HRV
read:cycles — daily strain cycles
read:sleep — sleep stages + duration
read:workout — workout sessions
read:profile — user profile info
read:body_measurement — height, weight, max HR
offline — enables refresh tokens
📡

Key Endpoints

Documented fields from developer.whoop.com
GET/v1/cycle
Daily strain cycle — includes strain score and kilojoules burned
id · user_id · created_at · updated_at · start · end · timezone_offset · score_state · score.strain · score.kilojoule · score.average_heart_rate · score.max_heart_rate
GET/v1/recovery
Recovery score — HRV, resting HR, sleep performance
cycle_id · sleep_id · user_id · created_at · updated_at · score_state · score.user_calibrating · score.recovery_score · score.resting_heart_rate · score.hrv_rmssd_milli · score.spo2_percentage · score.skin_temp_celsius
GET/v1/sleep
Sleep stages, duration, and performance score
id · user_id · created_at · start · end · score.stage_summary.total_in_bed_time_milli · score.stage_summary.total_awake_time_milli · score.stage_summary.total_light_sleep_time_milli · score.stage_summary.total_slow_wave_sleep_time_milli · score.stage_summary.total_rem_sleep_time_milli · score.sleep_performance_percentage · score.sleep_consistency_percentage · score.sleep_efficiency_percentage
GET/v1/workout
Individual workout sessions with sport type and strain
id · user_id · created_at · start · end · sport_id · score_state · score.strain · score.average_heart_rate · score.max_heart_rate · score.kilojoule · score.percent_recorded · score.distance_meter · score.altitude_gain_meter · score.altitude_change_meter · score.zone_duration.zone_zero_milli → zone_five_milli

Research Criteria — Whoop (10/10 complete)

  • ✓
    ISC-15
    Whoop developer.whoop.com/api/ fetched and content extracted
  • ✓
    ISC-16
    Whoop docs/introduction page fetched and content extracted
  • ✓
    ISC-17
    Whoop docs/developing/oauth page fetched and OAuth details extracted
  • ✓
    ISC-18
    Whoop docs/developing/ page fetched and content extracted
  • ✓
    ISC-19
    Web search for Whoop API endpoints executed and results documented
  • ✓
    ISC-20
    GET /v1/cycle endpoint fields documented with exact names
  • ✓
    ISC-21
    GET /v1/recovery endpoint fields documented with exact names
  • ✓
    ISC-22
    GET /v1/sleep endpoint fields documented with exact names
  • ✓
    ISC-23
    GET /v1/workout endpoint fields documented with exact names
  • ✓
    ISC-24
    Whoop OAuth scopes, rate limits, and webhook v2 details documented
→
Next Steps

Integration Design Phase

Clutch
Contact Clutch team for partner API access. Define what data TPS wants to surface (shot stats, match video, heatmaps) once access is confirmed.
Whoop
Register TPS app on developer.whoop.com. Define which scopes needed (recovery + workout likely sufficient). Design OAuth connect flow in TPS mobile app.
TPS data model
Decide where Whoop data is stored — new user_whoop_connections table. Map recovery score to player readiness indicator in TPS profile.