UNFORCE for AI agents: programmatic tennis video analysis
Pay-per-minute REST + MCP API for AI agents to analyze tennis videos. EU-hosted, prepaid credits, OpenAPI 3.1, MCP tools, and machine-payment discovery. Build coaching agents on UNFORCE.
If you're building an AI agent that helps tennis players improve, a coaching bot, a club-management tool, a training-platform integration, and you need a real per-shot video analysis backend, UNFORCE is built for that. Same pipeline that powers the UNFORCE iOS + Android app (TrackNet → court keypoints → MediaPipe pose → CatBoost shot/bounce classification → stroke quality), exposed as a clean pay-per-minute API.
This page is the public-facing entry point. The OpenAPI 3.1 spec is at openapi.json; the MCP server card is at /.well-known/mcp/server-card.json.
How it works
1. Sign up for an API key → POST https://api.unforce.io/v1/api-keys
2. Credit prepaid balance → admin-managed balance adjustment
3. Submit a video → POST https://api.unforce.io/v1/jobs
4. Poll for completion → GET https://api.unforce.io/v1/jobs/{jobId}
5. Fetch the analysis → GET https://api.unforce.io/v1/jobs/{jobId}/result
Or via MCP:
POST https://api.unforce.io/mcp
Authorization: Bearer phk_...
Content-Type: application/json
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "analyze_tennis_video",
"arguments": { "videoUrl": "https://..." } } }
Pricing
| Tier | Per-minute (EUR) | Per-minute (USD) | Per-minute (GBP) | Notes |
|---|---|---|---|---|
| Standard | €0.75 | $0.80 | £0.65 | Default for all agent API keys |
| Volume (>5,000 min/mo) | €0.55 | $0.60 | £0.48 | Email [email protected] |
| Enterprise | custom | custom | custom | Self-hosted GPU optional |
A 90-minute match costs about €67. A 5-minute serve drill costs €3.75.
The first €10 of credit is free for all new API keys, enough to process ~13 minutes and decide if UNFORCE fits your use case.
Auth
Authorization: Bearer phk_<24-byte-url-safe-random>
Keys are SHA-256-hashed at rest, never logged. Rotate at any time via the admin panel or the revokeApiKey callable.
Discovery surface (well-known endpoints)
| Path | Purpose | Spec |
|---|---|---|
/openapi.json | OpenAPI 3.1, all GET endpoints on the marketing site + the api.unforce.io schema | OpenAPI 3.1 |
/.well-known/api-catalog | Linkset of public retrievable resources | RFC 9727 |
/.well-known/mcp/server-card.json | MCP server metadata | SEP-1649 |
/.well-known/agent-skills/index.json | Agent Skills RFC v0.2.0 catalogue | Cloudflare Agent Skills |
/.well-known/openid-configuration | OIDC discovery (Firebase Auth issuer) | OIDC 1.0 |
/.well-known/x402 | x402 payment-required discovery | x402 |
/.well-known/mpp.json | MPP machine-payment discovery | MPP |
/.well-known/acp.json | ACP merchant discovery | ACP v0.1 |
Use cases for agent operators
- Tennis-coaching chatbots, agent uploads a user's match video, returns coaching tips. Pay per-minute, pass-through to your end-user pricing.
- Training-platform integrations, embed UNFORCE into a course platform; auto-analyze homework videos and surface stroke-quality scores in your LMS.
- Club-management software, analyze junior tournament matches in bulk, push reports to parents/coaches.
- Research / dataset enrichment, annotate large collections of tennis video for labeled-data products.
What we don't do
We're not a content marketplace. UNFORCE doesn't take a cut of an agent operator's downstream revenue. The pricing above is the only thing you pay; there are no per-impression or per-end-user surcharges.
Get started
- Sign up: unforce.io/signup (creates a Firebase user account).
- Generate an API key: visit admin.unforce.io → Developer → Create API Key.
- Ask [email protected] to credit production balance.
- First call:
curl -H "Authorization: Bearer phk_..." https://api.unforce.io/v1/healthz.
Email [email protected] with your project description for higher rate limits or volume pricing.
Related
Frequently asked questions
- Can my AI agent analyze a tennis video through UNFORCE?
- Yes. UNFORCE exposes a REST API at api.unforce.io and an MCP server at api.unforce.io/mcp. Both accept Bearer API keys (phk_…) and bill against prepaid credits. Submit a job, poll for status, fetch the analysis JSON when done, same shape as the in-app workflow but agent-callable.
- How much does it cost per video?
- Pricing is per minute of video processed at €0.75/min (USD ≈ $0.80, GBP ≈ £0.65). A typical 90-minute match costs about €67. Free tier gives 3 analyses/month with no API key required for evaluation; paid agent usage bills against prepaid API-key credit.
- What protocols do you support for agent payments?
- Prepaid API-key balances, plus machine-payment discovery files for agents to understand pricing and endpoints. See /.well-known/api-catalog for the full discovery chain.
- Is this an MCP server I can plug into Claude / ChatGPT?
- Yes. The MCP server at api.unforce.io/mcp uses Streamable HTTP transport and exposes tools, analyze_tennis_video, get_job_status, get_analysis_result, get_pricing, list_my_jobs, plus markdown resources (pricing, accuracy, how-it-works, faq). Bearer auth via the same API key as the REST endpoint.
- Where is video data hosted? GDPR-compliant?
- All uploaded video lives in europe-west1 (Belgium), processed by GPU workers in the same region. UNFORCE Inc. is a GDPR Article 28 sub-processor for any human end-user whose video an agent submits, agents acting on behalf of an EU resident must have their own lawful basis. DPA available on request.
- What's the rate limit for an API key?
- Default: 10 requests/min and 200 jobs/day per API key. Plan-tier keys (set via the user's billing settings) can raise these. Submit a support request if you need higher limits for production-scale agent operations.