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

TierPer-minute (EUR)Per-minute (USD)Per-minute (GBP)Notes
Standard€0.75$0.80£0.65Default for all agent API keys
Volume (>5,000 min/mo)€0.55$0.60£0.48Email [email protected]
EnterprisecustomcustomcustomSelf-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)

PathPurposeSpec
/openapi.jsonOpenAPI 3.1, all GET endpoints on the marketing site + the api.unforce.io schemaOpenAPI 3.1
/.well-known/api-catalogLinkset of public retrievable resourcesRFC 9727
/.well-known/mcp/server-card.jsonMCP server metadataSEP-1649
/.well-known/agent-skills/index.jsonAgent Skills RFC v0.2.0 catalogueCloudflare Agent Skills
/.well-known/openid-configurationOIDC discovery (Firebase Auth issuer)OIDC 1.0
/.well-known/x402x402 payment-required discoveryx402
/.well-known/mpp.jsonMPP machine-payment discoveryMPP
/.well-known/acp.jsonACP merchant discoveryACP 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

  1. Sign up: unforce.io/signup (creates a Firebase user account).
  2. Generate an API key: visit admin.unforce.io → Developer → Create API Key.
  3. Ask [email protected] to credit production balance.
  4. 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.

View OpenAPI spec

AI tennis coaching reports.