Score a game
API · /tennis-api
Tennis Score API
Tennis scoring maths as an API, computed locally and deterministically — the game, set and match logic a scoring app, umpire tool or tennis league runs on. The game endpoint plays a game from a sequence of who won each point and returns the proper tennis score: points run 0, 15, 30, 40 and then game, but at 40-40 it is Deuce and a player must lead by two — Advantage, then game — so a,a,a,a is 40-0 and a win, while three-all is Deuce; a tiebreak flag scores to seven by two instead (and keeps going at 7-7). The set endpoint reads a set from the games each player has won: a set is taken at six games with a two-game lead, 6-6 triggers a tiebreak that ends it 7-6, and 7-5 wins if a player pulls ahead first. The match endpoint settles the match from the sets won — best-of-three is decided by two sets, best-of-five by three — and tells you the winner the moment it is reached. Everything is computed locally and deterministically, so it is instant and private. Ideal for tennis, racket-sport, scoring, umpiring and league app developers, scoreboard and live-scoring tools, and club software. Pure local computation — no key, no third-party service, instant. Scoring logic, not analytics. Live, nothing stored. 3 compute endpoints.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 91 ms
- Server probes · 24h
- Subscribers
- 3,736
- active
- Total calls
- 4
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 6,980 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 6,980 calls/month
- 2 req/sec
- Game + set + match scoring
- No credit card
Starter
€4.28 /month
- 55,600 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 55,600 calls/month
- 6 req/sec
- Deuce/advantage, tiebreaks, best-of-5
- Email support
Pro
€11.82 /month
- 228,300 calls / month
- 15 requests / second
- Hard cap (429 above quota, no overage)
- 228,300 calls/month
- 15 req/sec
- Live-scoring & scoreboard pipelines
- Priority support
Mega
€37.55 /month
- 1,333,000 calls / month
- 40 requests / second
- Hard cap (429 above quota, no overage)
- 1,333,000 calls/month
- 40 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Farkle Score API
Farkle dice-scoring maths as an API, computed locally and deterministically — the points a Farkle (Zilch, Ten Thousand) scoring app tallies a roll by. The score endpoint takes up to six dice and returns the value by the common ruleset: a single 1 is 100 and a single 5 is 50; three of a kind scores the face times 100 (three 1s being the exception at 1000); four, five and six of a kind are 1000, 2000 and 3000; a 1-to-6 straight or three pairs is 1500; and two triplets is 2500 — so 1-1-1-5-5-5 scores 2500 as two triplets rather than 1100, a 1-2-3-4-5-6 straight is 1500, and 6-6-6-2-3 is 600 with the 2 and 3 dead. It flags a farkle when nothing scores (you lose the turn’s points) and tells you whether every die counted — a hot dice that lets you roll all six again. Rulesets vary, so it scores the widely-used set and says so. Everything is computed locally and deterministically, so it is instant and private. Ideal for dice-game, party-game and scoring app developers, score-helper and game-night tools, and board-game-companion software. Pure local computation — no key, no third-party service, instant. Scores a roll; it does not roll the dice. Live, nothing stored. 1 compute endpoint.
api.oanor.com/farkle-api
Cribbage Score API
Cribbage hand-scoring maths as an API, computed locally and deterministically — the count a cribbage player, app or league tallies a hand by. The score endpoint takes the four-card hand and the starter (cut) card and returns the full breakdown by the rules: every distinct combination of cards summing to fifteen scores 2, each pair scores 2 (so three of a kind is 6 and four is 12), each run of three or more consecutive cards scores its length — counting the duplicate runs that pairs create — a four-card flush in the hand is 4 (five with the starter is 5, and the crib only scores a five-card flush), and his nobs, a Jack in hand matching the starter’s suit, is 1. It correctly scores the famous best hand, J-5-5-5 with a fifth 5 cut, at the maximum 29. The count endpoint tallies just fifteens, pairs and runs for any one to eight cards — useful for checking part of a hand or the pegging pile. Everything is computed locally and deterministically, so it is instant and private. Ideal for cribbage, card-game, board-game-companion and scoring app developers, score-verification and teaching tools, and game software. Pure local computation — no key, no third-party service, instant. Cards as rank+suit (5H, TD, JS). Live, nothing stored. 2 compute endpoints.
api.oanor.com/cribbage-api
Yahtzee Score API
Yahtzee scoring maths as an API, computed locally and deterministically — the category scores and totals a dice-game scoring app runs on. (It scores a given roll; it does not roll the dice.) The score endpoint takes five dice and returns the value of every one of the thirteen boxes at once: the upper boxes (ones through sixes) score the sum of that number, three- and four-of-a-kind and chance score all five dice, a full house is 25, a small straight (four in a row) 30, a large straight (five in a row) 40 and a Yahtzee (five of a kind) 50 — so 3-3-3-5-6 is worth 20 in three-of-a-kind, 4-4-4-5-5 is a 25-point full house, and it flags the highest-scoring box for you. The total endpoint adds up a finished card: the 35-point upper-section bonus when the upper boxes reach 63 (and how many points you still need for it), plus 100 for each extra Yahtzee, to give the grand total. Everything is computed locally and deterministically, so it is instant and private. Ideal for dice-game, board-game-companion, family-game and scorekeeping app developers, score-sheet and tournament tools, and game software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 compute endpoints. For random rolls use a dice API.
api.oanor.com/yahtzee-api
Bowling Score API
Ten-pin bowling maths as an API, computed locally and deterministically — the scoring, handicap and average numbers a bowler, league or scoring app runs on. The score endpoint plays a full game from a comma list of the pins knocked down on each roll and applies the real rules: a strike scores 10 plus your next two rolls, a spare 10 plus the next one, an open frame just the pins, with the 10th frame’s bonus rolls handled — so twelve strikes is a perfect 300, twenty 9-then-miss frames are 90, and all spares with a 5 bonus is 150, returned frame by frame with the running total. The handicap endpoint levels a league: handicap per game = ⌊(basis − average) × percent⌋, never below zero, so a 150 average on the common 90 %-of-220 setup earns 63 pins a game and 189 over a three-game series. The average endpoint divides total pins by games (dropping the fraction, as leagues do), rolls in a new series to update it, and works out the pins you need over the next games to reach a target average. Everything is computed locally and deterministically, so it is instant and private. Ideal for bowling-league, scoring, sports and recreation app developers, scorekeeping and handicap tools, and centre-management software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints.
api.oanor.com/bowling-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Tennis Score API?
What's the rate limit for Tennis Score API?
How much does Tennis Score API cost?
Can I cancel my subscription anytime?
Is Tennis Score API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/tennis-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/tennis-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/tennis-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/tennis-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.