Description
n8n-nodes-livetennisapi



This is an n8n community node for the Live Tennis API — real-time
tennis scores, match data, player profiles, fixtures, rankings, head-to-head records and a
1968–2022 results archive across all 5 tours: ATP, WTA, Challenger, ITF and juniors.
n8n is a fair-code licensed
workflow automation platform.
- Installation
- Credentials
- Operations
- Quotas and rate limits
- Authentication details
- Usage notes
- Compatibility
- Resources
- Match → Get Many takes filters for tour (
atp,wta,challenger,itf, - H2H and Archive → Get Career are keyed by name fragments (min 3 characters) —
- Archive covers ATP and WTA results 1968–2022 (1968-onward main draws, qualifying,
- Ranking → Get Many lists exactly one system per call (
atp,wta,itf_jt, - On a FREE key (100 requests/day), poll no faster than every 15 minutes. For an
- Every response carries
X-RateLimit-Limit/X-RateLimit-Remaining/X-RateLimit-Reset - The node turns API errors into actionable n8n errors instead of bare status codes:
score.pointsare strings ("0","15","30","40","AD"), not numbers.score.serverisnullon roughly 7% of live reads — handle the null.score.gamesis[gamesp1, gamesp2], where each entry is a per-set array that growsdata_completeness.known/.ofarenullfor doubles teams (with an explanatorynote) —- The
tourfield on a response record is granular (challengermen,juniorsgirls) and - Fixture Get Many may occasionally include already-finished fixtures or return an empty
- Bulk completed-match paging (Get Many with Status =
completed) is **not available on - Return All pages through results 200 at a time with no delay between pages — one API
- Archive serve statistics exist from 1991 onward only; earlier rows have
stats: null - Live Tennis API documentation
- Get a free API key
- Live Tennis API Discord
- Live Tennis API on GitHub
- n8n community nodes documentation
Installation
Follow the installation guide
in the n8n community nodes documentation. The package name is n8n-nodes-livetennisapi.
In short: Settings → Community Nodes → Install, enter n8n-nodes-livetennisapi, and
restart if prompted. The Live Tennis API node then appears in the node picker.
Credentials
Sign up for a free API key (100 requests/day, 30/minute, no card) at
livetennisapi.com/subscribe/free.
Create a Live Tennis API credential in n8n and paste the key (it looks like
twjp_...). The node sends it as an X-API-Key header. The credential test performs a
one-match list request.
Operations
| Resource | Operation | Endpoint | Plan |
|—|—|—|—|
| Match | Get Many | /matches | FREE — Status = Completed needs BASIC or any History plan |
| Match | Get | /matches/{id} | FREE — market embed at PRO, analysis embed at ULTRA |
| Match | Get Score | /matches/{id}/score | FREE |
| Match | Get Statistics | /matches/{id}/statistics | ULTRA |
| Player | Search | /players | FREE |
| Player | Get | /players/{id} | FREE |
| Fixture | Get Many | /fixtures | FREE |
| H2H | Get | /h2h | BASIC, or any History plan — per-player stats block at ULTRA |
| Archive | Get Many Matches | /history/archive/matches | BASIC, or any History plan |
| Archive | Get Match | /history/archive/matches/{id} | BASIC, or any History plan |
| Archive | Get Many Players | /history/archive/players | BASIC, or any History plan |
| Archive | Get Career | /history/archive/career | BASIC, or any History plan |
| Ranking | Get Many (rank-ordered listing) | /rankings?system= | PRO |
| Ranking | Get for Player (point-in-time records) | /rankings?player= | ULTRA |
| Status | Get | /health | no key needed |
Notes on the less obvious ones:
juniors), country (3-letter IOC-style code), a from/to date window, and a player ID.
Unknown filter values are a 400, never silently ignored.
archive people have no roster IDs. An ambiguous fragment is refused with the candidate
list rather than summing two people into one record.
challengers and futures). It is a separate ID space from live matches and ends where the
API’s own point-by-point coverage begins (2023).
itfmt, itfwt); UTR has no listing (it is a rating, not a ranking) and is read per
player. Get for Player answers “what was the ranking as of a date” — everywhere
else the API joins today’s rank.
Quotas and rate limits
| Plan | Per minute | Per day | Price |
|—|—|—|—|
| FREE | 30 | 100 | $0 |
| BASIC | 60 | 1,000 | $9.99/mo |
| PRO | 300 | 10,000 | $29.99/mo |
| ULTRA | 600 | 500,000 | $99.99/mo |
always-on dashboard, BASIC is the recommended floor.
headers; 429s carry Retry-After.
– Daily 429 — the error shows the daily limit and resets_at, the absolute ISO
instant the quota resets (trust that instant, not an assumed fixed UTC boundary).
– 429 abuse_throttled — keys that keep hammering the API after the cap is spent
are blocked for 24 hours; the error converts retryatepoch to an ISO time and says
to fix the retry loop (add a Wait node, back off on 429s).
– Per-minute 429 — the error carries the Retry-After seconds.
– 403 upgrade_required — the error names the tier that unlocks the operation and
where to upgrade. It does not mean your key is invalid.
Authentication details
The API accepts Authorization: Bearer (preferred for new integrations) and
X-API-Key: . This node sends X-API-Key. Keys are prefixed twjp_. Only
/health is unauthenticated.
Usage notes
These reflect real behaviour of the live feed — the node passes the data through untouched:
as the match progresses.
null means “not applicable”, which is distinct from 0.
uppercase for doubles teams (ATP). It is an opaque label — it is not the same vocabulary as
the tour filter, which accepts exactly atp, wta, challenger, itf, juniors and
returns a 400 on anything else.
list (a known upstream quirk); the node passes the response through as-is.
the FREE tier at all — it returns a 403 upgrade_required. It needs the BASIC** tier
($9.99/mo) or any History plan — upgrade at
livetennisapi.com/subscribe/upgrade. Fetching
a single completed match by ID with Get stays free.
request per page. On a large bucket that can hit the per-minute rate limit mid-pagination
and fail with a 429, and repeated Return All runs over big result sets (completed
matches can span thousands of records) can exhaust the FREE tier’s 100 requests/day
cap. Prefer Limit with an explicit value on large buckets, or use a higher plan tier.
(the era never recorded them — nothing is synthesised).
Compatibility
Requires n8n 1.x. Built declaratively with zero runtime dependencies.
Resources
Affiliate program
Know developers who need tennis data? The affiliate program pays 51% recurring commission for the life of every referred subscription — 30-day cookie, and the people you refer get 10% off.
License
MIT © Live Tennis API